diff options
author | 1999-06-22 16:20:03 +0000 | |
---|---|---|
committer | 1999-06-22 16:20:03 +0000 | |
commit | 44e00086016372ab24f46747e168961a1106513e (patch) | |
tree | 3b27ed5232e2231b043f44214ce8916cc44aef59 /sys/dev/isa/essvar.h | |
parent | From NetBSD: SCTRL2 register number wrong. (diff) | |
download | wireguard-openbsd-44e00086016372ab24f46747e168961a1106513e.tar.xz wireguard-openbsd-44e00086016372ab24f46747e168961a1106513e.zip |
ESS audio driver ported from NetBSD, some mixer problems with X-based mixers
otherwise OK (mixerctl works quite OK, very strange).
At the moment it is polled only, but it works quite OK that way too.
Diffstat (limited to 'sys/dev/isa/essvar.h')
-rw-r--r-- | sys/dev/isa/essvar.h | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/sys/dev/isa/essvar.h b/sys/dev/isa/essvar.h new file mode 100644 index 00000000000..d48b129302f --- /dev/null +++ b/sys/dev/isa/essvar.h @@ -0,0 +1,159 @@ +/* $OpenBSD: essvar.h,v 1.1 1999/06/22 16:20:03 niklas Exp $ */ +/* $NetBSD: essvar.h,v 1.14 1999/03/18 06:03:31 mycroft Exp $ */ +/* + * Copyright 1997 + * Digital Equipment Corporation. All rights reserved. + * + * This software is furnished under license and may be used and + * copied only in accordance with the following terms and conditions. + * Subject to these conditions, you may download, copy, install, + * use, modify and distribute this software in source and/or binary + * form. No title or ownership is transferred hereby. + * + * 1) Any source code used, modified or distributed must reproduce + * and retain this copyright notice and list of conditions as + * they appear in the source file. + * + * 2) No right is granted to use any trade name, trademark, or logo of + * Digital Equipment Corporation. Neither the "Digital Equipment + * Corporation" name nor any trademark or logo of Digital Equipment + * Corporation may be used to endorse or promote products derived + * from this software without the prior written permission of + * Digital Equipment Corporation. + * + * 3) This software is provided "AS-IS" and any express or implied + * warranties, including but not limited to, any implied warranties + * of merchantability, fitness for a particular purpose, or + * non-infringement are disclaimed. In no event shall DIGITAL be + * liable for any damages whatsoever, and in particular, DIGITAL + * shall not be liable for special, indirect, consequential, or + * incidental damages or damages for lost profits, loss of + * revenue or loss of use, whether such damages arise in contract, + * negligence, tort, under statute, in equity, at law or otherwise, + * even if advised of the possibility of such damage. + */ + +/* +** @(#) $RCSfile: essvar.h,v $ $Revision: 1.1 $ (SHARK) $Date: 1999/06/22 16:20:03 $ +** +**++ +** +** essvar.h +** +** FACILITY: +** +** DIGITAL Network Appliance Reference Design (DNARD) +** +** MODULE DESCRIPTION: +** +** This module contains the structure definitions and function +** prototypes for the ESS Technologies 1887/888 sound chip +** driver. +** +** AUTHORS: +** +** Blair Fidler Software Engineering Australia +** Gold Coast, Australia. +** +** CREATION DATE: +** +** May 12, 1997. +** +** MODIFICATION HISTORY: +** +**-- +*/ +#define ESS_DAC_PLAY_VOL 0 +#define ESS_MIC_PLAY_VOL 1 +#define ESS_LINE_PLAY_VOL 2 +#define ESS_SYNTH_PLAY_VOL 3 +#define ESS_CD_PLAY_VOL 4 +#define ESS_AUXB_PLAY_VOL 5 +#define ESS_INPUT_CLASS 6 + +#define ESS_MASTER_VOL 7 +#define ESS_PCSPEAKER_VOL 8 +#define ESS_OUTPUT_CLASS 9 + +#define ESS_RECORD_MONITOR 10 +#define ESS_MONITOR_CLASS 11 + +#define ESS_RECORD_VOL 12 +#define ESS_RECORD_SOURCE 13 +#define ESS_RECORD_CLASS 14 + +#define ESS_1788_NDEVS 15 + +#define ESS_DAC_REC_VOL 15 +#define ESS_MIC_REC_VOL 16 +#define ESS_LINE_REC_VOL 17 +#define ESS_SYNTH_REC_VOL 18 +#define ESS_CD_REC_VOL 19 +#define ESS_AUXB_REC_VOL 20 +#define ESS_MIC_PREAMP 21 + +#define ESS_1888_NDEVS 22 +#define ESS_MAX_NDEVS 22 + +struct ess_audio_channel +{ + int drq; /* DMA channel */ +#define IS16BITDRQ(drq) ((drq) >= 4) + int irq; /* IRQ line for this DMA channel */ + int ist; + void *ih; /* interrupt vectoring */ + u_long nintr; /* number of interrupts taken */ + void (*intr)__P((void*)); /* ISR for DMA complete */ + void *arg; /* arg for intr() */ + + /* Status information */ + int active; /* boolean: channel in use? */ + + /* Polling state */ + int polled; /* 1 if channel is polled */ + int dmapos; /* last DMA pointer */ + int buffersize; /* size of DMA buffer */ + /* (The following is only needed due to the stupid block interface.) */ + int dmacount; /* leftover partial block */ + int blksize; /* current block size */ +}; + +struct ess_softc +{ + struct device sc_dev; /* base device */ + struct device *sc_isa; + isa_chipset_tag_t sc_ic; + bus_space_tag_t sc_iot; /* tag */ + bus_space_handle_t sc_ioh; /* handle */ + + int sc_iobase; /* I/O port base address */ + + u_short sc_open; /* reference count of open calls */ + + int ndevs; + u_char gain[ESS_MAX_NDEVS][2]; /* kept in input levels */ +#define ESS_LEFT 0 +#define ESS_RIGHT 1 + + u_int out_port; /* output port */ + u_int in_mask; /* input ports */ + u_int in_port; /* XXX needed for MI interface */ + + u_int spkr_state; /* non-null is on */ + + struct ess_audio_channel sc_audio1; /* audio channel for record */ + struct ess_audio_channel sc_audio2; /* audio channel for playback */ + + u_int sc_model; +#define ESS_UNSUPPORTED 0 +#define ESS_1888 1 +#define ESS_1887 2 +#define ESS_888 3 +#define ESS_1788 4 + + u_int sc_version; /* Legacy ES688/ES1688 ID */ +}; + +int essmatch __P((struct ess_softc *)); +void essattach __P((struct ess_softc *)); + |