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 /*      $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 

Cache object: d7b670238487c820b12b91a0457ffb3b


[ 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.