[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

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