diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-29 14:53:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-29 14:53:31 -0400 |
commit | 0950c358ee8e969fce45ba363ca1deaf211e57b0 (patch) | |
tree | 4c3b66e8457e1568aa26696d268e0e9c264382cb /include | |
parent | 3aa590c6b7c89d844f81c2e96f295cf2c6967773 (diff) | |
parent | 8caf7aa26e0797e5706043f94c491acd1a08636a (diff) |
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 @@ | |||
265 | 265 | ||
266 | /* specific - Analog Devices */ | 266 | /* specific - Analog Devices */ |
267 | #define AC97_AD_TEST 0x5a /* test register */ | 267 | #define AC97_AD_TEST 0x5a /* test register */ |
268 | #define AC97_AD_TEST2 0x5c /* undocumented test register 2 */ | ||
268 | #define AC97_AD_CODEC_CFG 0x70 /* codec configuration */ | 269 | #define AC97_AD_CODEC_CFG 0x70 /* codec configuration */ |
269 | #define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */ | 270 | #define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */ |
270 | #define AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */ | 271 | #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; | |||
32 | struct snd_ak4xxx_ops { | 32 | struct snd_ak4xxx_ops { |
33 | void (*lock)(struct snd_akm4xxx *ak, int chip); | 33 | void (*lock)(struct snd_akm4xxx *ak, int chip); |
34 | void (*unlock)(struct snd_akm4xxx *ak, int chip); | 34 | void (*unlock)(struct snd_akm4xxx *ak, int chip); |
35 | void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val); | 35 | void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg, |
36 | // unsigned char (*read)(struct snd_akm4xxx *ak, int chip, unsigned char reg); | 36 | unsigned char val); |
37 | void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate); | 37 | void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate); |
38 | }; | 38 | }; |
39 | 39 | ||
@@ -41,29 +41,40 @@ struct snd_ak4xxx_ops { | |||
41 | 41 | ||
42 | struct snd_akm4xxx { | 42 | struct snd_akm4xxx { |
43 | struct snd_card *card; | 43 | struct snd_card *card; |
44 | unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ | 44 | unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ |
45 | unsigned int num_dacs; /* AK4524 or AK4528 DACs */ | 45 | unsigned int num_dacs; /* AK4524 or AK4528 DACs */ |
46 | unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */ | 46 | unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */ |
47 | unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image for IPGA (AK4528) */ | 47 | unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image |
48 | * for IPGA (AK4528) | ||
49 | */ | ||
48 | unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */ | 50 | unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
49 | void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */ | 51 | void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
50 | /* template should fill the following fields */ | 52 | /* template should fill the following fields */ |
51 | unsigned int idx_offset; /* control index offset */ | 53 | unsigned int idx_offset; /* control index offset */ |
52 | enum { | 54 | enum { |
53 | SND_AK4524, SND_AK4528, SND_AK4529, | 55 | SND_AK4524, SND_AK4528, SND_AK4529, |
54 | SND_AK4355, SND_AK4358, SND_AK4381 | 56 | SND_AK4355, SND_AK4358, SND_AK4381 |
55 | } type; | 57 | } type; |
58 | unsigned int *num_stereo; /* array of combined counts | ||
59 | * for the mixer | ||
60 | */ | ||
61 | char **channel_names; /* array of mixer channel names */ | ||
56 | struct snd_ak4xxx_ops ops; | 62 | struct snd_ak4xxx_ops ops; |
57 | }; | 63 | }; |
58 | 64 | ||
59 | void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val); | 65 | void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg, |
66 | unsigned char val); | ||
60 | void snd_akm4xxx_reset(struct snd_akm4xxx *ak, int state); | 67 | void snd_akm4xxx_reset(struct snd_akm4xxx *ak, int state); |
61 | void snd_akm4xxx_init(struct snd_akm4xxx *ak); | 68 | void snd_akm4xxx_init(struct snd_akm4xxx *ak); |
62 | int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak); | 69 | int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak); |
63 | 70 | ||
64 | #define snd_akm4xxx_get(ak,chip,reg) (ak)->images[(chip) * 16 + (reg)] | 71 | #define snd_akm4xxx_get(ak,chip,reg) \ |
65 | #define snd_akm4xxx_set(ak,chip,reg,val) ((ak)->images[(chip) * 16 + (reg)] = (val)) | 72 | (ak)->images[(chip) * 16 + (reg)] |
66 | #define snd_akm4xxx_get_ipga(ak,chip,reg) (ak)->ipga_gain[chip][(reg)-4] | 73 | #define snd_akm4xxx_set(ak,chip,reg,val) \ |
67 | #define snd_akm4xxx_set_ipga(ak,chip,reg,val) ((ak)->ipga_gain[chip][(reg)-4] = (val)) | 74 | ((ak)->images[(chip) * 16 + (reg)] = (val)) |
75 | #define snd_akm4xxx_get_ipga(ak,chip,reg) \ | ||
76 | (ak)->ipga_gain[chip][(reg)-4] | ||
77 | #define snd_akm4xxx_set_ipga(ak,chip,reg,val) \ | ||
78 | ((ak)->ipga_gain[chip][(reg)-4] = (val)) | ||
68 | 79 | ||
69 | #endif /* __SOUND_AK4XXX_ADDA_H */ | 80 | #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) | |||
62 | { | 62 | { |
63 | while (*irq_table != -1) { | 63 | while (*irq_table != -1) { |
64 | if (!request_irq(*irq_table, snd_legacy_empty_irq_handler, | 64 | if (!request_irq(*irq_table, snd_legacy_empty_irq_handler, |
65 | SA_INTERRUPT, "ALSA Test IRQ", (void *) irq_table)) { | 65 | SA_INTERRUPT | SA_PROBEIRQ, "ALSA Test IRQ", |
66 | (void *) irq_table)) { | ||
66 | free_irq(*irq_table, (void *) irq_table); | 67 | free_irq(*irq_table, (void *) irq_table); |
67 | return *irq_table; | 68 | return *irq_table; |
68 | } | 69 | } |