[BACK]Return to essvar.h CVS log [TXT][DIR] Up to [local] / sys / dev / isa

Annotation of sys/dev/isa/essvar.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: essvar.h,v 1.5 2002/03/14 03:16:05 millert Exp $      */
        !             2: /*     $NetBSD: essvar.h,v 1.14 1999/03/18 06:03:31 mycroft Exp $      */
        !             3: /*
        !             4:  * Copyright 1997
        !             5:  * Digital Equipment Corporation. All rights reserved.
        !             6:  *
        !             7:  * This software is furnished under license and may be used and
        !             8:  * copied only in accordance with the following terms and conditions.
        !             9:  * Subject to these conditions, you may download, copy, install,
        !            10:  * use, modify and distribute this software in source and/or binary
        !            11:  * form. No title or ownership is transferred hereby.
        !            12:  *
        !            13:  * 1) Any source code used, modified or distributed must reproduce
        !            14:  *    and retain this copyright notice and list of conditions as
        !            15:  *    they appear in the source file.
        !            16:  *
        !            17:  * 2) No right is granted to use any trade name, trademark, or logo of
        !            18:  *    Digital Equipment Corporation. Neither the "Digital Equipment
        !            19:  *    Corporation" name nor any trademark or logo of Digital Equipment
        !            20:  *    Corporation may be used to endorse or promote products derived
        !            21:  *    from this software without the prior written permission of
        !            22:  *    Digital Equipment Corporation.
        !            23:  *
        !            24:  * 3) This software is provided "AS-IS" and any express or implied
        !            25:  *    warranties, including but not limited to, any implied warranties
        !            26:  *    of merchantability, fitness for a particular purpose, or
        !            27:  *    non-infringement are disclaimed. In no event shall DIGITAL be
        !            28:  *    liable for any damages whatsoever, and in particular, DIGITAL
        !            29:  *    shall not be liable for special, indirect, consequential, or
        !            30:  *    incidental damages or damages for lost profits, loss of
        !            31:  *    revenue or loss of use, whether such damages arise in contract,
        !            32:  *    negligence, tort, under statute, in equity, at law or otherwise,
        !            33:  *    even if advised of the possibility of such damage.
        !            34:  */
        !            35:
        !            36: /*
        !            37: ** @(#) $RCSfile: essvar.h,v $ $Revision: 1.5 $ (SHARK) $Date: 2002/03/14 03:16:05 $
        !            38: **
        !            39: **++
        !            40: **
        !            41: **  essvar.h
        !            42: **
        !            43: **  FACILITY:
        !            44: **
        !            45: **     DIGITAL Network Appliance Reference Design (DNARD)
        !            46: **
        !            47: **  MODULE DESCRIPTION:
        !            48: **
        !            49: **     This module contains the structure definitions and function
        !            50: **     prototypes for the ESS Technologies 1887/888 sound chip
        !            51: **     driver.
        !            52: **
        !            53: **  AUTHORS:
        !            54: **
        !            55: **     Blair Fidler    Software Engineering Australia
        !            56: **                     Gold Coast, Australia.
        !            57: **
        !            58: **  CREATION DATE:
        !            59: **
        !            60: **     May 12, 1997.
        !            61: **
        !            62: **  MODIFICATION HISTORY:
        !            63: **
        !            64: **--
        !            65: */
        !            66: #define ESS_DAC_PLAY_VOL       0
        !            67: #define ESS_MIC_PLAY_VOL       1
        !            68: #define ESS_LINE_PLAY_VOL      2
        !            69: #define ESS_SYNTH_PLAY_VOL     3
        !            70: #define ESS_CD_PLAY_VOL                4
        !            71: #define ESS_AUXB_PLAY_VOL      5
        !            72: #define ESS_INPUT_CLASS                6
        !            73:
        !            74: #define ESS_MASTER_VOL         7
        !            75: #define ESS_PCSPEAKER_VOL      8
        !            76: #define ESS_OUTPUT_CLASS       9
        !            77:
        !            78: #define ESS_RECORD_MONITOR     10
        !            79: #define ESS_MONITOR_CLASS      11
        !            80:
        !            81: #define ESS_RECORD_VOL         12
        !            82: #define        ESS_RECORD_SOURCE       13
        !            83: #define ESS_RECORD_CLASS       14
        !            84:
        !            85: #define ESS_1788_NDEVS         15
        !            86:
        !            87: #define ESS_DAC_REC_VOL                15
        !            88: #define ESS_MIC_REC_VOL                16
        !            89: #define ESS_LINE_REC_VOL       17
        !            90: #define ESS_SYNTH_REC_VOL      18
        !            91: #define ESS_CD_REC_VOL         19
        !            92: #define ESS_AUXB_REC_VOL       20
        !            93: #define ESS_MIC_PREAMP         21
        !            94:
        !            95: #define ESS_1888_NDEVS         22
        !            96: #define ESS_MAX_NDEVS          22
        !            97:
        !            98: struct ess_audio_channel
        !            99: {
        !           100:        int     drq;                    /* DMA channel */
        !           101: #define IS16BITDRQ(drq) ((drq) >= 4)
        !           102:        int     irq;                    /* IRQ line for this DMA channel */
        !           103:        int     ist;
        !           104:        void    *ih;                    /* interrupt vectoring */
        !           105:        u_long  nintr;                  /* number of interrupts taken */
        !           106:        void    (*intr)(void *);        /* ISR for DMA complete */
        !           107:        void    *arg;                   /* arg for intr() */
        !           108:
        !           109:        /* Status information */
        !           110:        int     active;                 /* boolean: channel in use? */
        !           111:
        !           112:        /* Polling state */
        !           113:        int     polled;                 /* 1 if channel is polled */
        !           114:        int     dmapos;                 /* last DMA pointer */
        !           115:        int     buffersize;             /* size of DMA buffer */
        !           116:        /* (The following is only needed due to the stupid block interface.) */
        !           117:        int     dmacount;               /* leftover partial block */
        !           118:        int     blksize;                /* current block size */
        !           119: };
        !           120:
        !           121: struct ess_softc
        !           122: {
        !           123:        struct  device sc_dev;          /* base device */
        !           124:        struct  device *sc_isa;
        !           125:        isa_chipset_tag_t sc_ic;
        !           126:        bus_space_tag_t sc_iot;         /* tag */
        !           127:        bus_space_handle_t sc_ioh;      /* handle */
        !           128:        struct timeout sc_tmo1, sc_tmo2;
        !           129:
        !           130:        int     sc_iobase;              /* I/O port base address */
        !           131:
        !           132:        u_short sc_open;                /* reference count of open calls */
        !           133:
        !           134:        int ndevs;
        !           135:        u_char  gain[ESS_MAX_NDEVS][2]; /* kept in input levels */
        !           136: #define ESS_LEFT 0
        !           137: #define ESS_RIGHT 1
        !           138:
        !           139:        u_int   out_port;               /* output port */
        !           140:        u_int   in_mask;                /* input ports */
        !           141:        u_int   in_port;                /* XXX needed for MI interface */
        !           142:
        !           143:        u_int   spkr_state;             /* non-null is on */
        !           144:
        !           145:        struct ess_audio_channel sc_audio1; /* audio channel for record */
        !           146:        struct ess_audio_channel sc_audio2; /* audio channel for playback */
        !           147:
        !           148:        u_int   sc_model;
        !           149: #define ESS_UNSUPPORTED 0
        !           150: #define ESS_1888       1
        !           151: #define ESS_1887       2
        !           152: #define ESS_888                3
        !           153: #define ESS_1788       4
        !           154: #define ESS_1869       5
        !           155: #define ESS_1879       6
        !           156: #define ESS_1868       7
        !           157: #define ESS_1878       8
        !           158:
        !           159:        u_int   sc_version;             /* Legacy ES688/ES1688 ID */
        !           160: };
        !           161:
        !           162: int    essmatch(struct ess_softc *);
        !           163: void   essattach(struct ess_softc *);
        !           164:

CVSweb