61#define MIX_ENT(name, reg_l, pol_l, pos_l, len_l, reg_r, pol_r, pos_r, len_r) \
62 {{reg_l, pol_l, pos_l, len_l}, {reg_r, pol_r, pos_r, len_r}}
64#define PMIX_ENT(name, reg_l, pos_l, len_l, reg_r, pos_r, len_r) \
65 {{reg_l, 0, pos_l, len_l}, {reg_r, 0, pos_r, len_r}}
67#define MIX_NONE(name) MIX_ENT(name, 0,0,0,0, 0,0,0,0)
74#define MSS_INDEX (0 + 4)
75#define MSS_IDXBUSY 0x80
90#define MSS_IDXMASK 0x1f
92#define MSS_IDATA (1 + 4)
100#define MSS_STATUS (2 + 4)
114#define io_Polled_IO(d) ((d)->io_base+3+4)
148#define BD_F_MCE_BIT 0x0001
149#define BD_F_IRQ_OK 0x0002
150#define BD_F_TMR_RUN 0x0004
151#define BD_F_MSS_OFFSET 0x0008
152#define BD_F_DUPLEX 0x0010
153#define BD_F_924PNP 0x0020
193#define MSS_REC_DEVICES \
194 (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD|SOUND_MASK_IMIX)
219MIX_ENT(SOUND_MIXER_SYNTH, 2, 1, 0, 5, 3, 1, 0, 5),
220MIX_ENT(SOUND_MIXER_PCM, 6, 1, 0, 6, 7, 1, 0, 6),
221MIX_ENT(SOUND_MIXER_SPEAKER, 26, 1, 0, 4, 0, 0, 0, 0),
222MIX_ENT(SOUND_MIXER_LINE, 18, 1, 0, 5, 19, 1, 0, 5),
223MIX_ENT(SOUND_MIXER_MIC, 0, 0, 5, 1, 1, 0, 5, 1),
224MIX_ENT(SOUND_MIXER_CD, 4, 1, 0, 5, 5, 1, 0, 5),
225MIX_ENT(SOUND_MIXER_IMIX, 13, 1, 2, 6, 0, 0, 0, 0),
228MIX_ENT(SOUND_MIXER_IGAIN, 0, 0, 0, 4, 1, 0, 0, 4),
235#define MODE2_MIXER_DEVICES \
236 (SOUND_MASK_SYNTH | SOUND_MASK_PCM | SOUND_MASK_SPEAKER | \
237 SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | \
238 SOUND_MASK_IMIX | SOUND_MASK_IGAIN )
240#define MODE1_MIXER_DEVICES \
241 (SOUND_MASK_SYNTH | SOUND_MASK_PCM | SOUND_MASK_MIC | \
242 SOUND_MASK_CD | SOUND_MASK_IMIX | SOUND_MASK_IGAIN )
245MIX_ENT(SOUND_MIXER_VOLUME, 22, 1, 0, 4, 23, 1, 0, 4),
248MIX_ENT(SOUND_MIXER_SYNTH, 4, 1, 0, 4, 5, 1, 0, 4),
249MIX_ENT(SOUND_MIXER_PCM, 6, 1, 1, 5, 7, 1, 1, 5),
250MIX_ENT(SOUND_MIXER_LINE, 18, 1, 1, 4, 19, 1, 1, 4),
252MIX_ENT(SOUND_MIXER_MIC, 21, 1, 0, 4, 22, 1, 0, 4),
253MIX_ENT(SOUND_MIXER_CD, 2, 1, 1, 4, 3, 1, 1, 4),
264#define OPTI930_MIXER_DEVICES \
265 (SOUND_MASK_VOLUME | SOUND_MASK_SYNTH | SOUND_MASK_PCM | \
266 SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD )
273MIX_ENT(SOUND_MIXER_VOLUME, 22, 1, 1, 5, 23, 1, 1, 5),
276MIX_ENT(SOUND_MIXER_SYNTH, 4, 1, 1, 4, 5, 1, 1, 4),
277MIX_ENT(SOUND_MIXER_PCM, 6, 1, 0, 5, 7, 1, 0, 5),
279MIX_ENT(SOUND_MIXER_LINE, 18, 1, 1, 4, 19, 1, 1, 4),
280MIX_ENT(SOUND_MIXER_MIC, 0, 0, 5, 1, 1, 0, 5, 1),
281MIX_ENT(SOUND_MIXER_CD, 2, 1, 1, 4, 3, 1, 1, 4),
285MIX_ENT(SOUND_MIXER_IGAIN, 0, 0, 0, 4, 1, 0, 0, 4),
287MIX_ENT(SOUND_MIXER_LINE1, 16, 1, 1, 4, 17, 1, 1, 4),
292#define OPTI931_MIXER_DEVICES \
293 (SOUND_MASK_VOLUME | SOUND_MASK_SYNTH | SOUND_MASK_PCM | \
294 SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | \
295 SOUND_MASK_IGAIN | SOUND_MASK_LINE1 )
300#define OPL3SAx_POWER 0x01
301#define OPL3SAx_POWER_PDX 0x01
302#define OPL3SAx_POWER_PDN 0x02
303#define OPL3SAx_POWER_PSV 0x04
304#define OPL3SAx_POWER_ADOWN 0x20
306#define OPL3SAx_SYSTEM 0x02
307#define OPL3SAx_SYSTEM_VZE 0x01
308#define OPL3SAx_SYSTEM_IDSEL 0x03
309#define OPL3SAx_SYSTEM_SBHE 0x80
311#define OPL3SAx_IRQCONF 0x03
312#define OPL3SAx_IRQCONF_WSSA 0x01
313#define OPL3SAx_IRQCONF_SBA 0x02
314#define OPL3SAx_IRQCONF_MPUA 0x04
315#define OPL3SAx_IRQCONF_OPL3A 0x08
316#define OPL3SAx_IRQCONF_WSSB 0x10
317#define OPL3SAx_IRQCONF_SBB 0x20
318#define OPL3SAx_IRQCONF_MPUB 0x40
319#define OPL3SAx_IRQCONF_OPL3B 0x80
321#define OPL3SAx_IRQSTATUSA 0x04
322#define OPL3SAx_IRQSTATUSB 0x05
323#define OPL3SAx_IRQSTATUS_PI 0x01
324#define OPL3SAx_IRQSTATUS_CI 0x02
325#define OPL3SAx_IRQSTATUS_TI 0x04
326#define OPL3SAx_IRQSTATUS_SB 0x08
327#define OPL3SAx_IRQSTATUS_MPU 0x10
328#define OPL3SAx_IRQSTATUS_OPL3 0x20
329#define OPL3SAx_IRQSTATUS_MV 0x40
330#define OPL3SAx_IRQSTATUS_PI 0x01
331#define OPL3SAx_IRQSTATUS_CI 0x02
332#define OPL3SAx_IRQSTATUS_TI 0x04
333#define OPL3SAx_IRQSTATUS_SB 0x08
334#define OPL3SAx_IRQSTATUS_MPU 0x10
335#define OPL3SAx_IRQSTATUS_OPL3 0x20
336#define OPL3SAx_IRQSTATUS_MV 0x40
338#define OPL3SAx_DMACONF 0x06
339#define OPL3SAx_DMACONF_WSSPA 0x01
340#define OPL3SAx_DMACONF_WSSRA 0x02
341#define OPL3SAx_DMACONF_SBA 0x02
342#define OPL3SAx_DMACONF_WSSPB 0x10
343#define OPL3SAx_DMACONF_WSSRB 0x20
344#define OPL3SAx_DMACONF_SBB 0x20
346#define OPL3SAx_VOLUMEL 0x07
347#define OPL3SAx_VOLUMEL_MVL 0x0f
348#define OPL3SAx_VOLUMEL_MVLM 0x80
350#define OPL3SAx_VOLUMER 0x08
351#define OPL3SAx_VOLUMER_MVR 0x0f
352#define OPL3SAx_VOLUMER_MVRM 0x80
354#define OPL3SAx_MIC 0x09
355#define OPL3SAx_VOLUMER_MCV 0x1f
356#define OPL3SAx_VOLUMER_MICM 0x80
358#define OPL3SAx_MISC 0x0a
359#define OPL3SAx_MISC_VER 0x07
360#define OPL3SAx_MISC_MODE 0x08
361#define OPL3SAx_MISC_MCSW 0x10
362#define OPL3SAx_MISC_VEN 0x80
364#define OPL3SAx_WSSDMA 0x0b
366#define OPL3SAx_WSSIRQSCAN 0x0f
367#define OPL3SAx_WSSIRQSCAN_SPI 0x01
368#define OPL3SAx_WSSIRQSCAN_SCI 0x02
369#define OPL3SAx_WSSIRQSCAN_STI 0x04
371#define OPL3SAx_SBSTATE 0x10
372#define OPL3SAx_SBSTATE_SBPDR 0x01
373#define OPL3SAx_SBSTATE_SE 0x02
374#define OPL3SAx_SBSTATE_SM 0x04
375#define OPL3SAx_SBSTATE_SS 0x08
376#define OPL3SAx_SBSTATE_SBPDA 0x80
378#define OPL3SAx_SBDATA 0x11
380#define OPL3SAx_DIGITALPOWER 0x12
381#define OPL3SAx_DIGITALPOWER_PnP 0x01
382#define OPL3SAx_DIGITALPOWER_SB 0x02
383#define OPL3SAx_DIGITALPOWER_WSSP 0x04
384#define OPL3SAx_DIGITALPOWER_WSSR 0x08
385#define OPL3SAx_DIGITALPOWER_FM 0x10
386#define OPL3SAx_DIGITALPOWER_MCLK0 0x20
387#define OPL3SAx_DIGITALPOWER_MPU 0x40
388#define OPL3SAx_DIGITALPOWER_JOY 0x80
390#define OPL3SAx_ANALOGPOWER 0x13
391#define OPL3SAx_ANALOGPOWER_WIDE 0x01
392#define OPL3SAx_ANALOGPOWER_SBDAC 0x02
393#define OPL3SAx_ANALOGPOWER_DA 0x04
394#define OPL3SAx_ANALOGPOWER_AD 0x08
395#define OPL3SAx_ANALOGPOWER_FMDAC 0x10
397#define OPL3SAx_WIDE 0x14
398#define OPL3SAx_WIDE_WIDEL 0x07
399#define OPL3SAx_WIDE_WIDER 0x70
401#define OPL3SAx_BASS 0x15
402#define OPL3SAx_BASS_BASSL 0x07
403#define OPL3SAx_BASS_BASSR 0x70
405#define OPL3SAx_TREBLE 0x16
406#define OPL3SAx_TREBLE_TREBLEL 0x07
407#define OPL3SAx_TREBLE_TREBLER 0x70
409#define OPL3SAx_HWVOL 0x17
410#define OPL3SAx_HWVOL_IRQA 0x10
411#define OPL3SAx_HWVOL_IRQB 0x20
struct mixer_def mixer_tab[32][2]
#define MIX_ENT(name, reg_l, pol_l, pos_l, len_l, reg_r, pol_r, pos_r, len_r)
mixer_ent mix_devices[32][2]
mixer_ent opti930_devices[32][2]
mixer_ent opti931_devices[32][2]