summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pcm/ac97.h
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2000-03-20 15:30:50 +0000
committercg <cg@FreeBSD.org>2000-03-20 15:30:50 +0000
commiteffa7bc907a13c9166491626c1edcaa9d6598a96 (patch)
tree52fe9e3aa64125021a03319292c745ca3651bdbd /sys/dev/sound/pcm/ac97.h
parent2a1e86107da4228384ff5e206f3bd033a6913ee7 (diff)
downloadFreeBSD-src-effa7bc907a13c9166491626c1edcaa9d6598a96.zip
FreeBSD-src-effa7bc907a13c9166491626c1edcaa9d6598a96.tar.gz
update the ac97 layer:
* add a callback for initialising the mixer interface * support ac97 2.1 variable rate audio feature fix ac97-using drivers for the above add suspend/resume support for neomagic
Diffstat (limited to 'sys/dev/sound/pcm/ac97.h')
-rw-r--r--sys/dev/sound/pcm/ac97.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/sys/dev/sound/pcm/ac97.h b/sys/dev/sound/pcm/ac97.h
index c93b29b..11ff139 100644
--- a/sys/dev/sound/pcm/ac97.h
+++ b/sys/dev/sound/pcm/ac97.h
@@ -26,10 +26,52 @@
* $FreeBSD$
*/
+#define AC97_MUTE 0x8000
+
+#define AC97_REG_RESET 0x00
+#define AC97_MIX_MASTER 0x02
+#define AC97_MIX_PHONES 0x04
+#define AC97_MIX_MONO 0x06
+#define AC97_MIX_TONE 0x08
+#define AC97_MIX_BEEP 0x0a
+#define AC97_MIX_PHONE 0x0c
+#define AC97_MIX_MIC 0x0e
+#define AC97_MIX_LINE 0x10
+#define AC97_MIX_CD 0x12
+#define AC97_MIX_VIDEO 0x14
+#define AC97_MIX_AUX 0x16
+#define AC97_MIX_PCM 0x18
+#define AC97_REG_RECSEL 0x1a
+#define AC97_MIX_RGAIN 0x1c
+#define AC97_MIX_MGAIN 0x1e
+#define AC97_REG_GEN 0x20
+#define AC97_REG_3D 0x22
+#define AC97_REG_POWER 0x26
+#define AC97_REGEXT_ID 0x28
+#define AC97_EXTCAP_VRA (1 << 0)
+#define AC97_EXTCAP_DRA (1 << 1)
+#define AC97_EXTCAP_VRM (1 << 3)
+#define AC97_EXTCAPS (AC97_EXTCAP_VRA | AC97_EXTCAP_DRA | AC97_EXTCAP_VRM)
+#define AC97_REGEXT_STAT 0x2a
+#define AC97_REGEXT_FDACRATE 0x2c
+#define AC97_REGEXT_SDACRATE 0x2e
+#define AC97_REGEXT_LDACRATE 0x30
+#define AC97_REGEXT_LADCRATE 0x32
+#define AC97_REGEXT_MADCRATE 0x34
+#define AC97_MIXEXT_CLFE 0x36
+#define AC97_MIXEXT_SURROUND 0x38
+#define AC97_REG_ID1 0x7c
+#define AC97_REG_ID2 0x7e
+
+typedef u_int32_t (ac97_init)(void *devinfo);
typedef u_int32_t (ac97_read)(void *devinfo, int regno);
typedef void (ac97_write)(void *devinfo, int regno, u_int32_t data);
extern snd_mixer ac97_mixer;
struct ac97_info;
-struct ac97_info *ac97_create(device_t dev, void *devinfo, ac97_read *rd, ac97_write *wr);
+struct ac97_info *ac97_create(device_t dev, void *devinfo, ac97_init *init,
+ ac97_read *rd, ac97_write *wr);
+int ac97_setrate(struct ac97_info *codec, int which, int rate);
+int ac97_setextmode(struct ac97_info *codec, u_int16_t mode);
+
OpenPOWER on IntegriCloud