The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/isa/essvar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 8ca28847b20e72ffaf6a7d87b9635b8a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.