diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-29 22:53:31 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-29 22:53:31 +0400 |
commit | 0950c358ee8e969fce45ba363ca1deaf211e57b0 (patch) | |
tree | 4c3b66e8457e1568aa26696d268e0e9c264382cb /include | |
parent | 3aa590c6b7c89d844f81c2e96f295cf2c6967773 (diff) | |
parent | 8caf7aa26e0797e5706043f94c491acd1a08636a (diff) | |
download | linux-0950c358ee8e969fce45ba363ca1deaf211e57b0.tar.xz |
Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
* master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
[ALSA] echoaudio - Remove kfree_nocheck()
[ALSA] echoaudio - Fix Makefile
[ALSA] Add Intel D965 board support
[ALSA] Fix/add support of Realtek ALC883 / ALC888 and ALC861 codecs
[ALSA] Fix a typo in echoaudio/midi.c
[ALSA] snd-aoa: enable dual-edge in GPIOs
[ALSA] snd-aoa: support iMac G5 iSight
[ALSA] snd-aoa: not experimental
[ALSA] Add echoaudio sound drivers
[ALSA] ak4xxx-adda - Code clean-up
[ALSA] Remove CONFIG_EXPERIMENTAL from intel8x0m driver
[ALSA] Stereo controls for M-Audio Revolution cards
[ALSA] Fix misuse of __list_add() in seq_ports.c
[ALSA] hda-codec - Add model entry for Samsung X60 Chane
[ALSA] make CONFIG_SND_DYNAMIC_MINORS non-experimental
[ALSA] Fix wrong dependencies of snd-aoa driver
[ALSA] fix build failure due to snd-aoa
[ALSA] AD1888 mixer controls for DC mode
[ALSA] Suppress irq handler mismatch messages in ALSA ISA drivers
[ALSA] usb-audio support for Turtle Beach Roadie
Diffstat (limited to 'include')
-rw-r--r-- | include/sound/ac97_codec.h | 1 | ||||
-rw-r--r-- | include/sound/ak4xxx-adda.h | 35 | ||||
-rw-r--r-- | include/sound/initval.h | 3 |
3 files changed, 26 insertions, 13 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 446afc3ea27f..758f8bf133c7 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -265,6 +265,7 @@ /* specific - Analog Devices */ #define AC97_AD_TEST 0x5a /* test register */ +#define AC97_AD_TEST2 0x5c /* undocumented test register 2 */ #define AC97_AD_CODEC_CFG 0x70 /* codec configuration */ #define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */ #define AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */ diff --git a/include/sound/ak4xxx-adda.h b/include/sound/ak4xxx-adda.h index 3bf5911fe827..3d9888492026 100644 --- a/include/sound/ak4xxx-adda.h +++ b/include/sound/ak4xxx-adda.h @@ -32,8 +32,8 @@ struct snd_akm4xxx; struct snd_ak4xxx_ops { void (*lock)(struct snd_akm4xxx *ak, int chip); void (*unlock)(struct snd_akm4xxx *ak, int chip); - void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val); - // unsigned char (*read)(struct snd_akm4xxx *ak, int chip, unsigned char reg); + void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg, + unsigned char val); void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate); }; @@ -41,29 +41,40 @@ struct snd_ak4xxx_ops { struct snd_akm4xxx { struct snd_card *card; - unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ - unsigned int num_dacs; /* AK4524 or AK4528 DACs */ - unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */ - unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image for IPGA (AK4528) */ + unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ + unsigned int num_dacs; /* AK4524 or AK4528 DACs */ + unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */ + unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image + * for IPGA (AK4528) + */ unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */ void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */ /* template should fill the following fields */ - unsigned int idx_offset; /* control index offset */ + unsigned int idx_offset; /* control index offset */ enum { SND_AK4524, SND_AK4528, SND_AK4529, SND_AK4355, SND_AK4358, SND_AK4381 } type; + unsigned int *num_stereo; /* array of combined counts + * for the mixer + */ + char **channel_names; /* array of mixer channel names */ struct snd_ak4xxx_ops ops; }; -void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val); +void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg, + unsigned char val); void snd_akm4xxx_reset(struct snd_akm4xxx *ak, int state); void snd_akm4xxx_init(struct snd_akm4xxx *ak); int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak); -#define snd_akm4xxx_get(ak,chip,reg) (ak)->images[(chip) * 16 + (reg)] -#define snd_akm4xxx_set(ak,chip,reg,val) ((ak)->images[(chip) * 16 + (reg)] = (val)) -#define snd_akm4xxx_get_ipga(ak,chip,reg) (ak)->ipga_gain[chip][(reg)-4] -#define snd_akm4xxx_set_ipga(ak,chip,reg,val) ((ak)->ipga_gain[chip][(reg)-4] = (val)) +#define snd_akm4xxx_get(ak,chip,reg) \ + (ak)->images[(chip) * 16 + (reg)] +#define snd_akm4xxx_set(ak,chip,reg,val) \ + ((ak)->images[(chip) * 16 + (reg)] = (val)) +#define snd_akm4xxx_get_ipga(ak,chip,reg) \ + (ak)->ipga_gain[chip][(reg)-4] +#define snd_akm4xxx_set_ipga(ak,chip,reg,val) \ + ((ak)->ipga_gain[chip][(reg)-4] = (val)) #endif /* __SOUND_AK4XXX_ADDA_H */ diff --git a/include/sound/initval.h b/include/sound/initval.h index d29e3d31d149..d45170b9e0b7 100644 --- a/include/sound/initval.h +++ b/include/sound/initval.h @@ -62,7 +62,8 @@ static int snd_legacy_find_free_irq(int *irq_table) { while (*irq_table != -1) { if (!request_irq(*irq_table, snd_legacy_empty_irq_handler, - SA_INTERRUPT, "ALSA Test IRQ", (void *) irq_table)) { + SA_INTERRUPT | SA_PROBEIRQ, "ALSA Test IRQ", + (void *) irq_table)) { free_irq(*irq_table, (void *) irq_table); return *irq_table; } |