Annotation of sys/dev/pci/esovar.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: esovar.h,v 1.3 2002/06/09 02:31:20 mickey Exp $ */
2: /* $NetBSD: esovar.h,v 1.2 1999/08/02 17:37:43 augustss Exp $ */
3:
4: /*
5: * Copyright (c) 1999 Klaus J. Klein
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. The name of the author may not be used to endorse or promote products
17: * derived from this software without specific prior written permission.
18: *
19: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26: * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29: * SUCH DAMAGE.
30: */
31:
32: #ifndef _DEV_PCI_ESOVAR_H_
33: #define _DEV_PCI_ESOVAR_H_
34:
35: /*
36: * Definitions exported for the purpose of sharing with attached
37: * device drivers.
38: */
39:
40: /*
41: * Mixer identifiers
42: */
43: /* Identifiers that have a gain value associated with them */
44: #define ESO_DAC_PLAY_VOL 0
45: #define ESO_MIC_PLAY_VOL 1
46: #define ESO_LINE_PLAY_VOL 2
47: #define ESO_SYNTH_PLAY_VOL 3
48: #define ESO_MONO_PLAY_VOL 4
49: #define ESO_CD_PLAY_VOL 5 /* AuxA */
50: #define ESO_AUXB_PLAY_VOL 6
51:
52: #define ESO_MASTER_VOL 7
53: #define ESO_PCSPEAKER_VOL 8
54: #define ESO_SPATIALIZER 9
55:
56: #define ESO_RECORD_VOL 10
57: #define ESO_DAC_REC_VOL 11
58: #define ESO_MIC_REC_VOL 12
59: #define ESO_LINE_REC_VOL 13
60: #define ESO_SYNTH_REC_VOL 14
61: #define ESO_MONO_REC_VOL 15
62: #define ESO_CD_REC_VOL 16
63: #define ESO_AUXB_REC_VOL 17
64: /* Used to keep software state */
65: #define ESO_NGAINDEVS (ESO_AUXB_REC_VOL + 1)
66:
67: /* Other, non-gain related mixer identifiers */
68: #define ESO_RECORD_SOURCE 18
69: #define ESO_MONOOUT_SOURCE 19
70: #define ESO_RECORD_MONITOR 20
71: #define ESO_MIC_PREAMP 21
72: #define ESO_SPATIALIZER_ENABLE 22
73:
74: /* Classes of the above */
75: #define ESO_INPUT_CLASS 23
76: #define ESO_OUTPUT_CLASS 24
77: #define ESO_MICROPHONE_CLASS 25
78: #define ESO_MONITOR_CLASS 26
79: #define ESO_RECORD_CLASS 27
80:
81:
82: /*
83: * Software state
84: */
85: struct eso_softc {
86: struct device sc_dev;
87: pci_intr_handle_t * sc_ih;
88: unsigned int sc_revision; /* PCI Revision ID */
89: void * sc_powerhook;
90:
91: /* Optionally deferred configuration of Audio 1 DMAC I/O space */
92: struct pci_attach_args sc_pa;
93: bus_size_t sc_vcsize; /* original size of mapping */
94:
95: /* DMA */
96: bus_dma_tag_t sc_dmat;
97: struct eso_dma * sc_dmas;
98:
99: /* I/O Base device */
100: bus_space_tag_t sc_iot;
101: bus_space_handle_t sc_ioh;
102:
103: /* Audio/FM device */
104: bus_space_tag_t sc_sb_iot;
105: bus_space_handle_t sc_sb_ioh;
106:
107: /* Audio 1 DMAC device */
108: unsigned int sc_dmac_configured;
109: bus_space_tag_t sc_dmac_iot;
110: bus_space_handle_t sc_dmac_ioh;
111:
112: /* MPU-401 device */
113: bus_space_tag_t sc_mpu_iot;
114: bus_space_handle_t sc_mpu_ioh;
115: struct device *sc_mpudev;
116:
117: /* Game device */
118: bus_space_tag_t sc_game_iot;
119: bus_space_handle_t sc_game_ioh;
120:
121: /* MI audio interface: play/record interrupt callbacks and arguments */
122: void (*sc_pintr)(void *);
123: void * sc_parg;
124: void (*sc_rintr)(void *);
125: void * sc_rarg;
126:
127: /* Audio 2 state */
128: uint8_t sc_a2c2; /* Audio 2 Control 2 */
129:
130: /* Mixer state */
131: uint8_t sc_gain[ESO_NGAINDEVS][2];
132: #define ESO_LEFT 0
133: #define ESO_RIGHT 1
134: unsigned int sc_recsrc; /* record source selection */
135: unsigned int sc_monooutsrc; /* MONO_OUT source selection */
136: unsigned int sc_recmon; /* record monitor setting */
137: unsigned int sc_preamp; /* microphone preamp */
138: unsigned int sc_spatializer; /* spatializer enable */
139: };
140:
141: #endif /* !_DEV_PCI_ESOVAR_H_ */
CVSweb