diff options
author | cg <cg@FreeBSD.org> | 2000-03-20 15:30:50 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2000-03-20 15:30:50 +0000 |
commit | effa7bc907a13c9166491626c1edcaa9d6598a96 (patch) | |
tree | 52fe9e3aa64125021a03319292c745ca3651bdbd /sys/dev/sound/pcm/ac97.h | |
parent | 2a1e86107da4228384ff5e206f3bd033a6913ee7 (diff) | |
download | FreeBSD-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.h | 44 |
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); + |