diff options
Diffstat (limited to 'sound')
62 files changed, 147 insertions, 130 deletions
diff --git a/sound/core/Kconfig b/sound/core/Kconfig index 8efc1b12f3a8..4262a1c87731 100644 --- a/sound/core/Kconfig +++ b/sound/core/Kconfig | |||
@@ -142,7 +142,7 @@ config SND_SUPPORT_OLD_API | |||
142 | 142 | ||
143 | config SND_VERBOSE_PROCFS | 143 | config SND_VERBOSE_PROCFS |
144 | bool "Verbose procfs contents" | 144 | bool "Verbose procfs contents" |
145 | depends on SND | 145 | depends on SND && PROC_FS |
146 | default y | 146 | default y |
147 | help | 147 | help |
148 | Say Y here to include code for verbose procfs contents (provides | 148 | Say Y here to include code for verbose procfs contents (provides |
@@ -171,3 +171,13 @@ config SND_DEBUG_DETECT | |||
171 | help | 171 | help |
172 | Say Y here to enable extra-verbose log messages printed when | 172 | Say Y here to enable extra-verbose log messages printed when |
173 | detecting devices. | 173 | detecting devices. |
174 | |||
175 | config SND_PCM_XRUN_DEBUG | ||
176 | bool "Enable PCM ring buffer overrun/underrun debugging" | ||
177 | default n | ||
178 | depends on SND_DEBUG && SND_VERBOSE_PROCFS | ||
179 | help | ||
180 | Say Y to enable the PCM ring buffer overrun/underrun debugging. | ||
181 | It is usually not required, but if you have trouble with | ||
182 | sound clicking when system is loaded, it may help to determine | ||
183 | the process or driver which causes the scheduling gaps. | ||
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index c5978d6c6080..ac990bf0b48f 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c | |||
@@ -1242,6 +1242,8 @@ static int snd_pcm_oss_set_format(struct snd_pcm_oss_file *pcm_oss_file, int for | |||
1242 | 1242 | ||
1243 | if (format != AFMT_QUERY) { | 1243 | if (format != AFMT_QUERY) { |
1244 | formats = snd_pcm_oss_get_formats(pcm_oss_file); | 1244 | formats = snd_pcm_oss_get_formats(pcm_oss_file); |
1245 | if (formats < 0) | ||
1246 | return formats; | ||
1245 | if (!(formats & format)) | 1247 | if (!(formats & format)) |
1246 | format = AFMT_U8; | 1248 | format = AFMT_U8; |
1247 | for (idx = 1; idx >= 0; --idx) { | 1249 | for (idx = 1; idx >= 0; --idx) { |
@@ -2212,7 +2214,7 @@ static int snd_pcm_oss_mmap(struct file *file, struct vm_area_struct *area) | |||
2212 | return 0; | 2214 | return 0; |
2213 | } | 2215 | } |
2214 | 2216 | ||
2215 | #ifdef CONFIG_PROC_FS | 2217 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
2216 | /* | 2218 | /* |
2217 | * /proc interface | 2219 | * /proc interface |
2218 | */ | 2220 | */ |
@@ -2366,10 +2368,10 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) | |||
2366 | } | 2368 | } |
2367 | } | 2369 | } |
2368 | } | 2370 | } |
2369 | #else /* !CONFIG_PROC_FS */ | 2371 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
2370 | #define snd_pcm_oss_proc_init(pcm) | 2372 | #define snd_pcm_oss_proc_init(pcm) |
2371 | #define snd_pcm_oss_proc_done(pcm) | 2373 | #define snd_pcm_oss_proc_done(pcm) |
2372 | #endif /* CONFIG_PROC_FS */ | 2374 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
2373 | 2375 | ||
2374 | /* | 2376 | /* |
2375 | * ENTRY functions | 2377 | * ENTRY functions |
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 122e10a61ab9..84b00038236d 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c | |||
@@ -142,7 +142,7 @@ static int snd_pcm_control_ioctl(struct snd_card *card, | |||
142 | return -ENOIOCTLCMD; | 142 | return -ENOIOCTLCMD; |
143 | } | 143 | } |
144 | 144 | ||
145 | #if defined(CONFIG_PROC_FS) && defined(CONFIG_SND_VERBOSE_PROCFS) | 145 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
146 | 146 | ||
147 | #define STATE(v) [SNDRV_PCM_STATE_##v] = #v | 147 | #define STATE(v) [SNDRV_PCM_STATE_##v] = #v |
148 | #define STREAM(v) [SNDRV_PCM_STREAM_##v] = #v | 148 | #define STREAM(v) [SNDRV_PCM_STREAM_##v] = #v |
@@ -436,7 +436,7 @@ static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry, | |||
436 | snd_iprintf(buffer, "appl_ptr : %ld\n", runtime->control->appl_ptr); | 436 | snd_iprintf(buffer, "appl_ptr : %ld\n", runtime->control->appl_ptr); |
437 | } | 437 | } |
438 | 438 | ||
439 | #ifdef CONFIG_SND_DEBUG | 439 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
440 | static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry, | 440 | static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry, |
441 | struct snd_info_buffer *buffer) | 441 | struct snd_info_buffer *buffer) |
442 | { | 442 | { |
@@ -480,7 +480,7 @@ static int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) | |||
480 | } | 480 | } |
481 | pstr->proc_info_entry = entry; | 481 | pstr->proc_info_entry = entry; |
482 | 482 | ||
483 | #ifdef CONFIG_SND_DEBUG | 483 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
484 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", | 484 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", |
485 | pstr->proc_root)) != NULL) { | 485 | pstr->proc_root)) != NULL) { |
486 | entry->c.text.read_size = 64; | 486 | entry->c.text.read_size = 64; |
@@ -501,7 +501,7 @@ static int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) | |||
501 | 501 | ||
502 | static int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) | 502 | static int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) |
503 | { | 503 | { |
504 | #ifdef CONFIG_SND_DEBUG | 504 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
505 | if (pstr->proc_xrun_debug_entry) { | 505 | if (pstr->proc_xrun_debug_entry) { |
506 | snd_info_unregister(pstr->proc_xrun_debug_entry); | 506 | snd_info_unregister(pstr->proc_xrun_debug_entry); |
507 | pstr->proc_xrun_debug_entry = NULL; | 507 | pstr->proc_xrun_debug_entry = NULL; |
@@ -599,12 +599,12 @@ static int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) | |||
599 | } | 599 | } |
600 | return 0; | 600 | return 0; |
601 | } | 601 | } |
602 | #else /* !CONFIG_PROC_FS */ | 602 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
603 | static inline int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) { return 0; } | 603 | static inline int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) { return 0; } |
604 | static inline int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) { return 0; } | 604 | static inline int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) { return 0; } |
605 | static inline int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) { return 0; } | 605 | static inline int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) { return 0; } |
606 | static inline int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) { return 0; } | 606 | static inline int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) { return 0; } |
607 | #endif /* CONFIG_PROC_FS */ | 607 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
608 | 608 | ||
609 | /** | 609 | /** |
610 | * snd_pcm_new_stream - create a new PCM stream | 610 | * snd_pcm_new_stream - create a new PCM stream |
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index 230a940d00bd..eedc6cb038bb 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c | |||
@@ -130,7 +130,7 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram | |||
130 | static void xrun(struct snd_pcm_substream *substream) | 130 | static void xrun(struct snd_pcm_substream *substream) |
131 | { | 131 | { |
132 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); | 132 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); |
133 | #ifdef CONFIG_SND_DEBUG | 133 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
134 | if (substream->pstr->xrun_debug) { | 134 | if (substream->pstr->xrun_debug) { |
135 | snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n", | 135 | snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n", |
136 | substream->pcm->card->number, | 136 | substream->pcm->card->number, |
@@ -204,7 +204,7 @@ static inline int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *subs | |||
204 | delta = hw_ptr_interrupt - new_hw_ptr; | 204 | delta = hw_ptr_interrupt - new_hw_ptr; |
205 | if (delta > 0) { | 205 | if (delta > 0) { |
206 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { | 206 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { |
207 | #ifdef CONFIG_SND_DEBUG | 207 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
208 | if (runtime->periods > 1 && substream->pstr->xrun_debug) { | 208 | if (runtime->periods > 1 && substream->pstr->xrun_debug) { |
209 | snd_printd(KERN_ERR "Unexpected hw_pointer value [1] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); | 209 | snd_printd(KERN_ERR "Unexpected hw_pointer value [1] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); |
210 | if (substream->pstr->xrun_debug > 1) | 210 | if (substream->pstr->xrun_debug > 1) |
@@ -249,7 +249,7 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream) | |||
249 | delta = old_hw_ptr - new_hw_ptr; | 249 | delta = old_hw_ptr - new_hw_ptr; |
250 | if (delta > 0) { | 250 | if (delta > 0) { |
251 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { | 251 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { |
252 | #ifdef CONFIG_SND_DEBUG | 252 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
253 | if (runtime->periods > 2 && substream->pstr->xrun_debug) { | 253 | if (runtime->periods > 2 && substream->pstr->xrun_debug) { |
254 | snd_printd(KERN_ERR "Unexpected hw_pointer value [2] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); | 254 | snd_printd(KERN_ERR "Unexpected hw_pointer value [2] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); |
255 | if (substream->pstr->xrun_debug > 1) | 255 | if (substream->pstr->xrun_debug > 1) |
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c index a0119ae67dcd..428f8c169ee1 100644 --- a/sound/core/pcm_memory.c +++ b/sound/core/pcm_memory.c | |||
@@ -100,8 +100,10 @@ static void snd_pcm_lib_preallocate_dma_free(struct snd_pcm_substream *substream | |||
100 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream) | 100 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream) |
101 | { | 101 | { |
102 | snd_pcm_lib_preallocate_dma_free(substream); | 102 | snd_pcm_lib_preallocate_dma_free(substream); |
103 | #ifdef CONFIG_SND_VERBOSE_PROCFS | ||
103 | snd_info_unregister(substream->proc_prealloc_entry); | 104 | snd_info_unregister(substream->proc_prealloc_entry); |
104 | substream->proc_prealloc_entry = NULL; | 105 | substream->proc_prealloc_entry = NULL; |
106 | #endif | ||
105 | return 0; | 107 | return 0; |
106 | } | 108 | } |
107 | 109 | ||
@@ -124,7 +126,7 @@ int snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm) | |||
124 | return 0; | 126 | return 0; |
125 | } | 127 | } |
126 | 128 | ||
127 | #ifdef CONFIG_PROC_FS | 129 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
128 | /* | 130 | /* |
129 | * read callback for prealloc proc file | 131 | * read callback for prealloc proc file |
130 | * | 132 | * |
@@ -203,9 +205,9 @@ static inline void preallocate_info_init(struct snd_pcm_substream *substream) | |||
203 | substream->proc_prealloc_entry = entry; | 205 | substream->proc_prealloc_entry = entry; |
204 | } | 206 | } |
205 | 207 | ||
206 | #else /* !CONFIG_PROC_FS */ | 208 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
207 | #define preallocate_info_init(s) | 209 | #define preallocate_info_init(s) |
208 | #endif | 210 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
209 | 211 | ||
210 | /* | 212 | /* |
211 | * pre-allocate the buffer and create a proc file for the substream | 213 | * pre-allocate the buffer and create a proc file for the substream |
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c index e35fd5779a9d..ae0df549fac7 100644 --- a/sound/drivers/dummy.c +++ b/sound/drivers/dummy.c | |||
@@ -675,10 +675,8 @@ static int __init alsa_card_dummy_init(void) | |||
675 | continue; | 675 | continue; |
676 | device = platform_device_register_simple(SND_DUMMY_DRIVER, | 676 | device = platform_device_register_simple(SND_DUMMY_DRIVER, |
677 | i, NULL, 0); | 677 | i, NULL, 0); |
678 | if (IS_ERR(device)) { | 678 | if (IS_ERR(device)) |
679 | err = PTR_ERR(device); | 679 | continue; |
680 | goto errout; | ||
681 | } | ||
682 | devices[i] = device; | 680 | devices[i] = device; |
683 | cards++; | 681 | cards++; |
684 | } | 682 | } |
@@ -686,14 +684,10 @@ static int __init alsa_card_dummy_init(void) | |||
686 | #ifdef MODULE | 684 | #ifdef MODULE |
687 | printk(KERN_ERR "Dummy soundcard not found or device busy\n"); | 685 | printk(KERN_ERR "Dummy soundcard not found or device busy\n"); |
688 | #endif | 686 | #endif |
689 | err = -ENODEV; | 687 | snd_dummy_unregister_all(); |
690 | goto errout; | 688 | return -ENODEV; |
691 | } | 689 | } |
692 | return 0; | 690 | return 0; |
693 | |||
694 | errout: | ||
695 | snd_dummy_unregister_all(); | ||
696 | return err; | ||
697 | } | 691 | } |
698 | 692 | ||
699 | static void __exit alsa_card_dummy_exit(void) | 693 | static void __exit alsa_card_dummy_exit(void) |
diff --git a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c index 9ea3059a7064..da7ef26995c3 100644 --- a/sound/drivers/mpu401/mpu401.c +++ b/sound/drivers/mpu401/mpu401.c | |||
@@ -251,10 +251,8 @@ static int __init alsa_card_mpu401_init(void) | |||
251 | #endif | 251 | #endif |
252 | device = platform_device_register_simple(SND_MPU401_DRIVER, | 252 | device = platform_device_register_simple(SND_MPU401_DRIVER, |
253 | i, NULL, 0); | 253 | i, NULL, 0); |
254 | if (IS_ERR(device)) { | 254 | if (IS_ERR(device)) |
255 | err = PTR_ERR(device); | 255 | continue; |
256 | goto errout; | ||
257 | } | ||
258 | platform_devices[i] = device; | 256 | platform_devices[i] = device; |
259 | snd_mpu401_devices++; | 257 | snd_mpu401_devices++; |
260 | } | 258 | } |
@@ -266,14 +264,10 @@ static int __init alsa_card_mpu401_init(void) | |||
266 | #ifdef MODULE | 264 | #ifdef MODULE |
267 | printk(KERN_ERR "MPU-401 device not found or device busy\n"); | 265 | printk(KERN_ERR "MPU-401 device not found or device busy\n"); |
268 | #endif | 266 | #endif |
269 | err = -ENODEV; | 267 | snd_mpu401_unregister_all(); |
270 | goto errout; | 268 | return -ENODEV; |
271 | } | 269 | } |
272 | return 0; | 270 | return 0; |
273 | |||
274 | errout: | ||
275 | snd_mpu401_unregister_all(); | ||
276 | return err; | ||
277 | } | 271 | } |
278 | 272 | ||
279 | static void __exit alsa_card_mpu401_exit(void) | 273 | static void __exit alsa_card_mpu401_exit(void) |
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c index 1a7fbefe4740..c01b4c5118b9 100644 --- a/sound/drivers/serial-u16550.c +++ b/sound/drivers/serial-u16550.c | |||
@@ -996,10 +996,8 @@ static int __init alsa_card_serial_init(void) | |||
996 | continue; | 996 | continue; |
997 | device = platform_device_register_simple(SND_SERIAL_DRIVER, | 997 | device = platform_device_register_simple(SND_SERIAL_DRIVER, |
998 | i, NULL, 0); | 998 | i, NULL, 0); |
999 | if (IS_ERR(device)) { | 999 | if (IS_ERR(device)) |
1000 | err = PTR_ERR(device); | 1000 | continue; |
1001 | goto errout; | ||
1002 | } | ||
1003 | devices[i] = device; | 1001 | devices[i] = device; |
1004 | cards++; | 1002 | cards++; |
1005 | } | 1003 | } |
@@ -1007,14 +1005,10 @@ static int __init alsa_card_serial_init(void) | |||
1007 | #ifdef MODULE | 1005 | #ifdef MODULE |
1008 | printk(KERN_ERR "serial midi soundcard not found or device busy\n"); | 1006 | printk(KERN_ERR "serial midi soundcard not found or device busy\n"); |
1009 | #endif | 1007 | #endif |
1010 | err = -ENODEV; | 1008 | snd_serial_unregister_all(); |
1011 | goto errout; | 1009 | return -ENODEV; |
1012 | } | 1010 | } |
1013 | return 0; | 1011 | return 0; |
1014 | |||
1015 | errout: | ||
1016 | snd_serial_unregister_all(); | ||
1017 | return err; | ||
1018 | } | 1012 | } |
1019 | 1013 | ||
1020 | static void __exit alsa_card_serial_exit(void) | 1014 | static void __exit alsa_card_serial_exit(void) |
diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c index a3ee306239c9..26eb2499d442 100644 --- a/sound/drivers/virmidi.c +++ b/sound/drivers/virmidi.c | |||
@@ -169,10 +169,8 @@ static int __init alsa_card_virmidi_init(void) | |||
169 | continue; | 169 | continue; |
170 | device = platform_device_register_simple(SND_VIRMIDI_DRIVER, | 170 | device = platform_device_register_simple(SND_VIRMIDI_DRIVER, |
171 | i, NULL, 0); | 171 | i, NULL, 0); |
172 | if (IS_ERR(device)) { | 172 | if (IS_ERR(device)) |
173 | err = PTR_ERR(device); | 173 | continue; |
174 | goto errout; | ||
175 | } | ||
176 | devices[i] = device; | 174 | devices[i] = device; |
177 | cards++; | 175 | cards++; |
178 | } | 176 | } |
@@ -180,14 +178,10 @@ static int __init alsa_card_virmidi_init(void) | |||
180 | #ifdef MODULE | 178 | #ifdef MODULE |
181 | printk(KERN_ERR "Card-VirMIDI soundcard not found or device busy\n"); | 179 | printk(KERN_ERR "Card-VirMIDI soundcard not found or device busy\n"); |
182 | #endif | 180 | #endif |
183 | err = -ENODEV; | 181 | snd_virmidi_unregister_all(); |
184 | goto errout; | 182 | return -ENODEV; |
185 | } | 183 | } |
186 | return 0; | 184 | return 0; |
187 | |||
188 | errout: | ||
189 | snd_virmidi_unregister_all(); | ||
190 | return err; | ||
191 | } | 185 | } |
192 | 186 | ||
193 | static void __exit alsa_card_virmidi_exit(void) | 187 | static void __exit alsa_card_virmidi_exit(void) |
diff --git a/sound/isa/opti9xx/miro.c b/sound/isa/opti9xx/miro.c index 83d64bc07ff0..e6bfcf74c1c1 100644 --- a/sound/isa/opti9xx/miro.c +++ b/sound/isa/opti9xx/miro.c | |||
@@ -1179,20 +1179,17 @@ static int __init snd_card_miro_aci_detect(struct snd_card *card, struct snd_mir | |||
1179 | /* force ACI into a known state */ | 1179 | /* force ACI into a known state */ |
1180 | for (i = 0; i < 3; i++) | 1180 | for (i = 0; i < 3; i++) |
1181 | if (aci_cmd(miro, ACI_ERROR_OP, -1, -1) < 0) { | 1181 | if (aci_cmd(miro, ACI_ERROR_OP, -1, -1) < 0) { |
1182 | snd_card_free(card); | ||
1183 | snd_printk(KERN_ERR "can't force aci into known state.\n"); | 1182 | snd_printk(KERN_ERR "can't force aci into known state.\n"); |
1184 | return -ENXIO; | 1183 | return -ENXIO; |
1185 | } | 1184 | } |
1186 | 1185 | ||
1187 | if ((miro->aci_vendor=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0 || | 1186 | if ((miro->aci_vendor=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0 || |
1188 | (miro->aci_product=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0) { | 1187 | (miro->aci_product=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0) { |
1189 | snd_card_free(card); | ||
1190 | snd_printk(KERN_ERR "can't read aci id on 0x%lx.\n", miro->aci_port); | 1188 | snd_printk(KERN_ERR "can't read aci id on 0x%lx.\n", miro->aci_port); |
1191 | return -ENXIO; | 1189 | return -ENXIO; |
1192 | } | 1190 | } |
1193 | 1191 | ||
1194 | if ((miro->aci_version=aci_cmd(miro, ACI_READ_VERSION, -1, -1)) < 0) { | 1192 | if ((miro->aci_version=aci_cmd(miro, ACI_READ_VERSION, -1, -1)) < 0) { |
1195 | snd_card_free(card); | ||
1196 | snd_printk(KERN_ERR "can't read aci version on 0x%lx.\n", | 1193 | snd_printk(KERN_ERR "can't read aci version on 0x%lx.\n", |
1197 | miro->aci_port); | 1194 | miro->aci_port); |
1198 | return -ENXIO; | 1195 | return -ENXIO; |
diff --git a/sound/oss/Kconfig b/sound/oss/Kconfig index 6275266dde2e..558c6ed443be 100644 --- a/sound/oss/Kconfig +++ b/sound/oss/Kconfig | |||
@@ -478,6 +478,20 @@ config SOUND_ACI_MIXER | |||
478 | 478 | ||
479 | This driver is also available as a module and will be called aci. | 479 | This driver is also available as a module and will be called aci. |
480 | 480 | ||
481 | config SOUND_CS4232 | ||
482 | tristate "Crystal CS4232 based (PnP) cards" | ||
483 | depends on SOUND_OSS | ||
484 | help | ||
485 | Say Y here if you have a card based on the Crystal CS4232 chip set, | ||
486 | which uses its own Plug and Play protocol. | ||
487 | |||
488 | If you compile the driver into the kernel, you have to add | ||
489 | "cs4232=<io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>" to the kernel | ||
490 | command line. | ||
491 | |||
492 | See <file:Documentation/sound/oss/CS4232> for more information on | ||
493 | configuring this card. | ||
494 | |||
481 | config SOUND_VMIDI | 495 | config SOUND_VMIDI |
482 | tristate "Loopback MIDI device support" | 496 | tristate "Loopback MIDI device support" |
483 | depends on SOUND_OSS | 497 | depends on SOUND_OSS |
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index c6c8333acc62..eece1c7e55a0 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
40 | #include <linux/compiler.h> | 40 | #include <linux/compiler.h> |
41 | #include <linux/delay.h> | 41 | #include <linux/delay.h> |
42 | #include <linux/dma-mapping.h> | ||
43 | 42 | ||
44 | #include <sound/driver.h> | 43 | #include <sound/driver.h> |
45 | #include <sound/core.h> | 44 | #include <sound/core.h> |
@@ -1052,7 +1051,7 @@ snd_ad1889_remove(struct pci_dev *pci) | |||
1052 | pci_set_drvdata(pci, NULL); | 1051 | pci_set_drvdata(pci, NULL); |
1053 | } | 1052 | } |
1054 | 1053 | ||
1055 | static struct pci_device_id snd_ad1889_ids[] = { | 1054 | static struct pci_device_id snd_ad1889_ids[] __devinitdata = { |
1056 | { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) }, | 1055 | { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) }, |
1057 | { 0, }, | 1056 | { 0, }, |
1058 | }; | 1057 | }; |
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index fc92b6896c24..e2dbc2118902 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c | |||
@@ -279,7 +279,7 @@ struct snd_ali { | |||
279 | #endif | 279 | #endif |
280 | }; | 280 | }; |
281 | 281 | ||
282 | static struct pci_device_id snd_ali_ids[] = { | 282 | static struct pci_device_id snd_ali_ids[] __devinitdata = { |
283 | {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, | 283 | {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, |
284 | {0, } | 284 | {0, } |
285 | }; | 285 | }; |
diff --git a/sound/pci/als300.c b/sound/pci/als300.c index 91899f87f037..901b08ae9174 100644 --- a/sound/pci/als300.c +++ b/sound/pci/als300.c | |||
@@ -146,7 +146,7 @@ struct snd_als300_substream_data { | |||
146 | int block_counter_register; | 146 | int block_counter_register; |
147 | }; | 147 | }; |
148 | 148 | ||
149 | static struct pci_device_id snd_als300_ids[] = { | 149 | static struct pci_device_id snd_als300_ids[] __devinitdata = { |
150 | { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 }, | 150 | { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 }, |
151 | { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS }, | 151 | { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS }, |
152 | { 0, } | 152 | { 0, } |
diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index 100d8127a411..60423b1c678b 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c | |||
@@ -116,7 +116,7 @@ struct snd_card_als4000 { | |||
116 | #endif | 116 | #endif |
117 | }; | 117 | }; |
118 | 118 | ||
119 | static struct pci_device_id snd_als4000_ids[] = { | 119 | static struct pci_device_id snd_als4000_ids[] __devinitdata = { |
120 | { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ | 120 | { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ |
121 | { 0, } | 121 | { 0, } |
122 | }; | 122 | }; |
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 12e618851262..d0f759d86d3d 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c | |||
@@ -284,7 +284,7 @@ struct atiixp { | |||
284 | 284 | ||
285 | /* | 285 | /* |
286 | */ | 286 | */ |
287 | static struct pci_device_id snd_atiixp_ids[] = { | 287 | static struct pci_device_id snd_atiixp_ids[] __devinitdata = { |
288 | { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ | 288 | { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ |
289 | { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */ | 289 | { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */ |
290 | { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ | 290 | { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ |
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 1d3766044643..12a34c39caa7 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c | |||
@@ -262,7 +262,7 @@ struct atiixp_modem { | |||
262 | 262 | ||
263 | /* | 263 | /* |
264 | */ | 264 | */ |
265 | static struct pci_device_id snd_atiixp_ids[] = { | 265 | static struct pci_device_id snd_atiixp_ids[] __devinitdata = { |
266 | { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ | 266 | { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ |
267 | { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ | 267 | { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ |
268 | { 0, } | 268 | { 0, } |
diff --git a/sound/pci/au88x0/au8810.c b/sound/pci/au88x0/au8810.c index fce22c7af0ea..bd3352998ad0 100644 --- a/sound/pci/au88x0/au8810.c +++ b/sound/pci/au88x0/au8810.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8810.h" | 1 | #include "au8810.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/au88x0/au8820.c b/sound/pci/au88x0/au8820.c index d1fbcce07257..7e3fd8372d8d 100644 --- a/sound/pci/au88x0/au8820.c +++ b/sound/pci/au88x0/au8820.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8820.h" | 1 | #include "au8820.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/au88x0/au8830.c b/sound/pci/au88x0/au8830.c index d4f2717c14fb..b840f6608a61 100644 --- a/sound/pci/au88x0/au8830.c +++ b/sound/pci/au88x0/au8830.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8830.h" | 1 | #include "au8830.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index 680077e1e057..52a364524262 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c | |||
@@ -216,7 +216,7 @@ struct snd_azf3328 { | |||
216 | int irq; | 216 | int irq; |
217 | }; | 217 | }; |
218 | 218 | ||
219 | static const struct pci_device_id snd_azf3328_ids[] = { | 219 | static const struct pci_device_id snd_azf3328_ids[] __devinitdata = { |
220 | { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ | 220 | { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ |
221 | { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */ | 221 | { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */ |
222 | { 0, } | 222 | { 0, } |
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index 7b44a8db033d..9ee07d4aac1e 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c | |||
@@ -774,7 +774,7 @@ static int __devinit snd_bt87x_create(struct snd_card *card, | |||
774 | .driver_data = rate } | 774 | .driver_data = rate } |
775 | 775 | ||
776 | /* driver_data is the default digital_rate value for that device */ | 776 | /* driver_data is the default digital_rate value for that device */ |
777 | static struct pci_device_id snd_bt87x_ids[] = { | 777 | static struct pci_device_id snd_bt87x_ids[] __devinitdata = { |
778 | /* Hauppauge WinTV series */ | 778 | /* Hauppauge WinTV series */ |
779 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000), | 779 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000), |
780 | /* Hauppauge WinTV series */ | 780 | /* Hauppauge WinTV series */ |
@@ -911,7 +911,7 @@ static void __devexit snd_bt87x_remove(struct pci_dev *pci) | |||
911 | 911 | ||
912 | /* default entries for all Bt87x cards - it's not exported */ | 912 | /* default entries for all Bt87x cards - it's not exported */ |
913 | /* driver_data is set to 0 to call detection */ | 913 | /* driver_data is set to 0 to call detection */ |
914 | static struct pci_device_id snd_bt87x_default_ids[] = { | 914 | static struct pci_device_id snd_bt87x_default_ids[] __devinitdata = { |
915 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, PCI_ANY_ID, PCI_ANY_ID, 0), | 915 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, PCI_ANY_ID, PCI_ANY_ID, 0), |
916 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_879, PCI_ANY_ID, PCI_ANY_ID, 0), | 916 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_879, PCI_ANY_ID, PCI_ANY_ID, 0), |
917 | { } | 917 | { } |
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 9477838a9c88..fd8bfebfbd54 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c | |||
@@ -1561,7 +1561,7 @@ static void __devexit snd_ca0106_remove(struct pci_dev *pci) | |||
1561 | } | 1561 | } |
1562 | 1562 | ||
1563 | // PCI IDs | 1563 | // PCI IDs |
1564 | static struct pci_device_id snd_ca0106_ids[] = { | 1564 | static struct pci_device_id snd_ca0106_ids[] __devinitdata = { |
1565 | { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */ | 1565 | { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */ |
1566 | { 0, } | 1566 | { 0, } |
1567 | }; | 1567 | }; |
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 2ecbddbbdcf0..e5ce2dabd081 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c | |||
@@ -2609,7 +2609,7 @@ static inline void snd_cmipci_proc_init(struct cmipci *cm) {} | |||
2609 | #endif | 2609 | #endif |
2610 | 2610 | ||
2611 | 2611 | ||
2612 | static struct pci_device_id snd_cmipci_ids[] = { | 2612 | static struct pci_device_id snd_cmipci_ids[] __devinitdata = { |
2613 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2613 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
2614 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2614 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
2615 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2615 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index ac4e73f69c1d..b3c94d83450a 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c | |||
@@ -494,7 +494,7 @@ struct cs4281 { | |||
494 | 494 | ||
495 | static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 495 | static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
496 | 496 | ||
497 | static struct pci_device_id snd_cs4281_ids[] = { | 497 | static struct pci_device_id snd_cs4281_ids[] __devinitdata = { |
498 | { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ | 498 | { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ |
499 | { 0, } | 499 | { 0, } |
500 | }; | 500 | }; |
diff --git a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c index c590602e20cd..848d772ae3c6 100644 --- a/sound/pci/cs46xx/cs46xx.c +++ b/sound/pci/cs46xx/cs46xx.c | |||
@@ -65,7 +65,7 @@ MODULE_PARM_DESC(thinkpad, "Force to enable Thinkpad's CLKRUN control."); | |||
65 | module_param_array(mmap_valid, bool, NULL, 0444); | 65 | module_param_array(mmap_valid, bool, NULL, 0444); |
66 | MODULE_PARM_DESC(mmap_valid, "Support OSS mmap."); | 66 | MODULE_PARM_DESC(mmap_valid, "Support OSS mmap."); |
67 | 67 | ||
68 | static struct pci_device_id snd_cs46xx_ids[] = { | 68 | static struct pci_device_id snd_cs46xx_ids[] __devinitdata = { |
69 | { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */ | 69 | { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */ |
70 | { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */ | 70 | { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */ |
71 | { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */ | 71 | { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */ |
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 9fc7f3827461..2c1213a35dcc 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c | |||
@@ -45,7 +45,7 @@ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; | |||
45 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; | 45 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; |
46 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; | 46 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; |
47 | 47 | ||
48 | static struct pci_device_id snd_cs5535audio_ids[] = { | 48 | static struct pci_device_id snd_cs5535audio_ids[] __devinitdata = { |
49 | { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, | 49 | { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, |
50 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 50 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
51 | { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO, | 51 | { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO, |
diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c index 2dfa932f7825..42b11ba1d210 100644 --- a/sound/pci/emu10k1/emu10k1.c +++ b/sound/pci/emu10k1/emu10k1.c | |||
@@ -77,7 +77,7 @@ MODULE_PARM_DESC(subsystem, "Force card subsystem model."); | |||
77 | /* | 77 | /* |
78 | * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 | 78 | * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 |
79 | */ | 79 | */ |
80 | static struct pci_device_id snd_emu10k1_ids[] = { | 80 | static struct pci_device_id snd_emu10k1_ids[] __devinitdata = { |
81 | { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */ | 81 | { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */ |
82 | { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */ | 82 | { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */ |
83 | { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */ | 83 | { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */ |
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 3e332f398162..d51290c18167 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/dma-mapping.h> | 36 | #include <linux/dma-mapping.h> |
37 | #include <linux/slab.h> | 37 | #include <linux/slab.h> |
38 | #include <linux/moduleparam.h> | 38 | #include <linux/moduleparam.h> |
39 | #include <linux/dma-mapping.h> | ||
40 | #include <sound/core.h> | 39 | #include <sound/core.h> |
41 | #include <sound/initval.h> | 40 | #include <sound/initval.h> |
42 | #include <sound/pcm.h> | 41 | #include <sound/pcm.h> |
@@ -1596,7 +1595,7 @@ static void __devexit snd_emu10k1x_remove(struct pci_dev *pci) | |||
1596 | } | 1595 | } |
1597 | 1596 | ||
1598 | // PCI IDs | 1597 | // PCI IDs |
1599 | static struct pci_device_id snd_emu10k1x_ids[] = { | 1598 | static struct pci_device_id snd_emu10k1x_ids[] __devinitdata = { |
1600 | { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */ | 1599 | { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */ |
1601 | { 0, } | 1600 | { 0, } |
1602 | }; | 1601 | }; |
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index a5533c86b0b6..ca9e34e88f62 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c | |||
@@ -446,7 +446,7 @@ struct ensoniq { | |||
446 | 446 | ||
447 | static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 447 | static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
448 | 448 | ||
449 | static struct pci_device_id snd_audiopci_ids[] = { | 449 | static struct pci_device_id snd_audiopci_ids[] __devinitdata = { |
450 | #ifdef CHIP1370 | 450 | #ifdef CHIP1370 |
451 | { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */ | 451 | { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */ |
452 | #endif | 452 | #endif |
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index 4d62fe439177..6f9094ca4fb4 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c | |||
@@ -242,7 +242,7 @@ struct es1938 { | |||
242 | 242 | ||
243 | static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 243 | static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
244 | 244 | ||
245 | static struct pci_device_id snd_es1938_ids[] = { | 245 | static struct pci_device_id snd_es1938_ids[] __devinitdata = { |
246 | { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ | 246 | { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ |
247 | { 0, } | 247 | { 0, } |
248 | }; | 248 | }; |
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index e3ad17f53c29..5ff4175c7b6d 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c | |||
@@ -104,7 +104,6 @@ | |||
104 | #include <linux/slab.h> | 104 | #include <linux/slab.h> |
105 | #include <linux/gameport.h> | 105 | #include <linux/gameport.h> |
106 | #include <linux/moduleparam.h> | 106 | #include <linux/moduleparam.h> |
107 | #include <linux/dma-mapping.h> | ||
108 | #include <linux/mutex.h> | 107 | #include <linux/mutex.h> |
109 | 108 | ||
110 | #include <sound/core.h> | 109 | #include <sound/core.h> |
@@ -593,7 +592,7 @@ struct es1968 { | |||
593 | 592 | ||
594 | static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 593 | static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
595 | 594 | ||
596 | static struct pci_device_id snd_es1968_ids[] = { | 595 | static struct pci_device_id snd_es1968_ids[] __devinitdata = { |
597 | /* Maestro 1 */ | 596 | /* Maestro 1 */ |
598 | { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO }, | 597 | { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO }, |
599 | /* Maestro 2 */ | 598 | /* Maestro 2 */ |
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 6ab4aefbccf8..d72fc28c580e 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c | |||
@@ -199,7 +199,7 @@ struct fm801 { | |||
199 | #endif | 199 | #endif |
200 | }; | 200 | }; |
201 | 201 | ||
202 | static struct pci_device_id snd_fm801_ids[] = { | 202 | static struct pci_device_id snd_fm801_ids[] __devinitdata = { |
203 | { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */ | 203 | { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */ |
204 | { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */ | 204 | { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */ |
205 | { 0, } | 205 | { 0, } |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 0ad60ae29011..e821d65afa11 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1614,7 +1614,7 @@ static void __devexit azx_remove(struct pci_dev *pci) | |||
1614 | } | 1614 | } |
1615 | 1615 | ||
1616 | /* PCI IDs */ | 1616 | /* PCI IDs */ |
1617 | static struct pci_device_id azx_ids[] = { | 1617 | static struct pci_device_id azx_ids[] __devinitdata = { |
1618 | { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ | 1618 | { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ |
1619 | { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ | 1619 | { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ |
1620 | { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ | 1620 | { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index bcfca159c6a2..40f000ba1362 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -799,10 +799,14 @@ static struct hda_board_config ad1986a_cfg_tbl[] = { | |||
799 | { .modelname = "laptop-eapd", .config = AD1986A_LAPTOP_EAPD }, | 799 | { .modelname = "laptop-eapd", .config = AD1986A_LAPTOP_EAPD }, |
800 | { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024, | 800 | { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024, |
801 | .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */ | 801 | .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */ |
802 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1153, | ||
803 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS M9 */ | ||
802 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213, | 804 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213, |
803 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS A6J */ | 805 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS A6J */ |
804 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x11f7, | 806 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x11f7, |
805 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5A */ | 807 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5A */ |
808 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1297, | ||
809 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS Z62F */ | ||
806 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, | 810 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, |
807 | .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ | 811 | .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ |
808 | {} | 812 | {} |
@@ -1330,12 +1334,8 @@ enum { AD1981_BASIC, AD1981_HP }; | |||
1330 | 1334 | ||
1331 | static struct hda_board_config ad1981_cfg_tbl[] = { | 1335 | static struct hda_board_config ad1981_cfg_tbl[] = { |
1332 | { .modelname = "hp", .config = AD1981_HP }, | 1336 | { .modelname = "hp", .config = AD1981_HP }, |
1333 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30aa, | 1337 | /* All HP models */ |
1334 | .config = AD1981_HP }, /* HP nx6320 */ | 1338 | { .pci_subvendor = 0x103c, .config = AD1981_HP }, |
1335 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x309f, | ||
1336 | .config = AD1981_HP }, /* HP nx9420 AngelFire */ | ||
1337 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30a2, | ||
1338 | .config = AD1981_HP }, /* HP nx9420 AngelFire */ | ||
1339 | { .modelname = "basic", .config = AD1981_BASIC }, | 1339 | { .modelname = "basic", .config = AD1981_BASIC }, |
1340 | {} | 1340 | {} |
1341 | }; | 1341 | }; |
@@ -2623,5 +2623,6 @@ struct hda_codec_preset snd_hda_preset_analog[] = { | |||
2623 | { .id = 0x11d41983, .name = "AD1983", .patch = patch_ad1983 }, | 2623 | { .id = 0x11d41983, .name = "AD1983", .patch = patch_ad1983 }, |
2624 | { .id = 0x11d41986, .name = "AD1986A", .patch = patch_ad1986a }, | 2624 | { .id = 0x11d41986, .name = "AD1986A", .patch = patch_ad1986a }, |
2625 | { .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 }, | 2625 | { .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 }, |
2626 | { .id = 0x11d4198b, .name = "AD1988B", .patch = patch_ad1988 }, | ||
2626 | {} /* terminator */ | 2627 | {} /* terminator */ |
2627 | }; | 2628 | }; |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 66bbdb60f50b..f0e9a9c90780 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -2148,6 +2148,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { | |||
2148 | { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, | 2148 | { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, |
2149 | { .pci_subvendor = 0x1297, .pci_subdevice = 0xc790, .config = ALC880_6ST_DIG }, /* Shuttle ST20G5 */ | 2149 | { .pci_subvendor = 0x1297, .pci_subdevice = 0xc790, .config = ALC880_6ST_DIG }, /* Shuttle ST20G5 */ |
2150 | { .pci_subvendor = 0x1509, .pci_subdevice = 0x925d, .config = ALC880_6ST_DIG }, /* FIC P4M-915GD1 */ | 2150 | { .pci_subvendor = 0x1509, .pci_subdevice = 0x925d, .config = ALC880_6ST_DIG }, /* FIC P4M-915GD1 */ |
2151 | { .pci_subvendor = 0x1695, .pci_subdevice = 0x4012, .config = ALC880_5ST_DIG }, /* Epox EP-5LDA+ GLi */ | ||
2151 | 2152 | ||
2152 | { .modelname = "asus", .config = ALC880_ASUS }, | 2153 | { .modelname = "asus", .config = ALC880_ASUS }, |
2153 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, | 2154 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 715260787953..8c440fb98603 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -1212,8 +1212,8 @@ static hda_nid_t vaio_mux_nids[] = { 0x15 }; | |||
1212 | static struct hda_input_mux vaio_mux = { | 1212 | static struct hda_input_mux vaio_mux = { |
1213 | .num_items = 2, | 1213 | .num_items = 2, |
1214 | .items = { | 1214 | .items = { |
1215 | /* { "HP", 0x0 }, | 1215 | /* { "HP", 0x0 }, */ |
1216 | { "Unknown", 0x1 }, */ | 1216 | { "Line", 0x1 }, |
1217 | { "Mic", 0x2 }, | 1217 | { "Mic", 0x2 }, |
1218 | { "PCM", 0x3 }, | 1218 | { "PCM", 0x3 }, |
1219 | } | 1219 | } |
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index 32f8415558a5..c56793b381e2 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c | |||
@@ -56,7 +56,6 @@ | |||
56 | #include <linux/dma-mapping.h> | 56 | #include <linux/dma-mapping.h> |
57 | #include <linux/slab.h> | 57 | #include <linux/slab.h> |
58 | #include <linux/moduleparam.h> | 58 | #include <linux/moduleparam.h> |
59 | #include <linux/dma-mapping.h> | ||
60 | #include <linux/mutex.h> | 59 | #include <linux/mutex.h> |
61 | 60 | ||
62 | #include <sound/core.h> | 61 | #include <sound/core.h> |
@@ -108,7 +107,7 @@ module_param_array(dxr_enable, int, NULL, 0444); | |||
108 | MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE."); | 107 | MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE."); |
109 | 108 | ||
110 | 109 | ||
111 | static struct pci_device_id snd_ice1712_ids[] = { | 110 | static struct pci_device_id snd_ice1712_ids[] __devinitdata = { |
112 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */ | 111 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */ |
113 | { 0, } | 112 | { 0, } |
114 | }; | 113 | }; |
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index fce616c2761f..b1c007e022d2 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c | |||
@@ -86,7 +86,7 @@ MODULE_PARM_DESC(model, "Use the given board model."); | |||
86 | 86 | ||
87 | 87 | ||
88 | /* Both VT1720 and VT1724 have the same PCI IDs */ | 88 | /* Both VT1720 and VT1724 have the same PCI IDs */ |
89 | static struct pci_device_id snd_vt1724_ids[] = { | 89 | static struct pci_device_id snd_vt1724_ids[] __devinitdata = { |
90 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 90 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
91 | { 0, } | 91 | { 0, } |
92 | }; | 92 | }; |
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index ebbf2cf4ca0f..0df7602568e2 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c | |||
@@ -413,7 +413,7 @@ struct intel8x0 { | |||
413 | u32 int_sta_mask; /* interrupt status mask */ | 413 | u32 int_sta_mask; /* interrupt status mask */ |
414 | }; | 414 | }; |
415 | 415 | ||
416 | static struct pci_device_id snd_intel8x0_ids[] = { | 416 | static struct pci_device_id snd_intel8x0_ids[] __devinitdata = { |
417 | { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ | 417 | { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ |
418 | { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ | 418 | { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ |
419 | { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ | 419 | { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ |
@@ -1293,6 +1293,7 @@ static int snd_intel8x0_ali_ac97spdifout_close(struct snd_pcm_substream *substre | |||
1293 | return 0; | 1293 | return 0; |
1294 | } | 1294 | } |
1295 | 1295 | ||
1296 | #if 0 // NYI | ||
1296 | static int snd_intel8x0_ali_spdifin_open(struct snd_pcm_substream *substream) | 1297 | static int snd_intel8x0_ali_spdifin_open(struct snd_pcm_substream *substream) |
1297 | { | 1298 | { |
1298 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); | 1299 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); |
@@ -1308,7 +1309,6 @@ static int snd_intel8x0_ali_spdifin_close(struct snd_pcm_substream *substream) | |||
1308 | return 0; | 1309 | return 0; |
1309 | } | 1310 | } |
1310 | 1311 | ||
1311 | #if 0 // NYI | ||
1312 | static int snd_intel8x0_ali_spdifout_open(struct snd_pcm_substream *substream) | 1312 | static int snd_intel8x0_ali_spdifout_open(struct snd_pcm_substream *substream) |
1313 | { | 1313 | { |
1314 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); | 1314 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); |
@@ -1435,6 +1435,7 @@ static struct snd_pcm_ops snd_intel8x0_ali_ac97spdifout_ops = { | |||
1435 | .pointer = snd_intel8x0_pcm_pointer, | 1435 | .pointer = snd_intel8x0_pcm_pointer, |
1436 | }; | 1436 | }; |
1437 | 1437 | ||
1438 | #if 0 // NYI | ||
1438 | static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { | 1439 | static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { |
1439 | .open = snd_intel8x0_ali_spdifin_open, | 1440 | .open = snd_intel8x0_ali_spdifin_open, |
1440 | .close = snd_intel8x0_ali_spdifin_close, | 1441 | .close = snd_intel8x0_ali_spdifin_close, |
@@ -1446,7 +1447,6 @@ static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { | |||
1446 | .pointer = snd_intel8x0_pcm_pointer, | 1447 | .pointer = snd_intel8x0_pcm_pointer, |
1447 | }; | 1448 | }; |
1448 | 1449 | ||
1449 | #if 0 // NYI | ||
1450 | static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = { | 1450 | static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = { |
1451 | .open = snd_intel8x0_ali_spdifout_open, | 1451 | .open = snd_intel8x0_ali_spdifout_open, |
1452 | .close = snd_intel8x0_ali_spdifout_close, | 1452 | .close = snd_intel8x0_ali_spdifout_close, |
@@ -1582,7 +1582,7 @@ static struct ich_pcm_table ali_pcms[] __devinitdata = { | |||
1582 | { | 1582 | { |
1583 | .suffix = "IEC958", | 1583 | .suffix = "IEC958", |
1584 | .playback_ops = &snd_intel8x0_ali_ac97spdifout_ops, | 1584 | .playback_ops = &snd_intel8x0_ali_ac97spdifout_ops, |
1585 | .capture_ops = &snd_intel8x0_ali_spdifin_ops, | 1585 | /* .capture_ops = &snd_intel8x0_ali_spdifin_ops, */ |
1586 | .prealloc_size = 64 * 1024, | 1586 | .prealloc_size = 64 * 1024, |
1587 | .prealloc_max_size = 128 * 1024, | 1587 | .prealloc_max_size = 128 * 1024, |
1588 | .ac97_idx = ALID_AC97SPDIFOUT, | 1588 | .ac97_idx = ALID_AC97SPDIFOUT, |
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index 47e26aaa9ad7..720635f0cb81 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c | |||
@@ -224,7 +224,7 @@ struct intel8x0m { | |||
224 | unsigned int pcm_pos_shift; | 224 | unsigned int pcm_pos_shift; |
225 | }; | 225 | }; |
226 | 226 | ||
227 | static struct pci_device_id snd_intel8x0m_ids[] = { | 227 | static struct pci_device_id snd_intel8x0m_ids[] __devinitdata = { |
228 | { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ | 228 | { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ |
229 | { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ | 229 | { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ |
230 | { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ | 230 | { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ |
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index 4721c096335e..e39fad1a4200 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c | |||
@@ -424,7 +424,7 @@ module_param_array(enable, bool, NULL, 0444); | |||
424 | MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard."); | 424 | MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard."); |
425 | MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>"); | 425 | MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>"); |
426 | 426 | ||
427 | static struct pci_device_id snd_korg1212_ids[] = { | 427 | static struct pci_device_id snd_korg1212_ids[] __devinitdata = { |
428 | { | 428 | { |
429 | .vendor = 0x10b5, | 429 | .vendor = 0x10b5, |
430 | .device = 0x906d, | 430 | .device = 0x906d, |
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 9c90d901e6b9..1928e06b6d82 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include <linux/slab.h> | 41 | #include <linux/slab.h> |
42 | #include <linux/vmalloc.h> | 42 | #include <linux/vmalloc.h> |
43 | #include <linux/moduleparam.h> | 43 | #include <linux/moduleparam.h> |
44 | #include <linux/dma-mapping.h> | ||
45 | #include <sound/core.h> | 44 | #include <sound/core.h> |
46 | #include <sound/info.h> | 45 | #include <sound/info.h> |
47 | #include <sound/control.h> | 46 | #include <sound/control.h> |
@@ -870,7 +869,7 @@ struct snd_m3 { | |||
870 | /* | 869 | /* |
871 | * pci ids | 870 | * pci ids |
872 | */ | 871 | */ |
873 | static struct pci_device_id snd_m3_ids[] = { | 872 | static struct pci_device_id snd_m3_ids[] __devinitdata = { |
874 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID, | 873 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID, |
875 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, | 874 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, |
876 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID, | 875 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID, |
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c index b5a095052d4c..09cc0786495a 100644 --- a/sound/pci/mixart/mixart.c +++ b/sound/pci/mixart/mixart.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/dma-mapping.h> | 28 | #include <linux/dma-mapping.h> |
29 | #include <linux/moduleparam.h> | 29 | #include <linux/moduleparam.h> |
30 | #include <linux/mutex.h> | 30 | #include <linux/mutex.h> |
31 | #include <linux/dma-mapping.h> | ||
32 | 31 | ||
33 | #include <sound/core.h> | 32 | #include <sound/core.h> |
34 | #include <sound/initval.h> | 33 | #include <sound/initval.h> |
@@ -62,7 +61,7 @@ MODULE_PARM_DESC(enable, "Enable Digigram " CARD_NAME " soundcard."); | |||
62 | /* | 61 | /* |
63 | */ | 62 | */ |
64 | 63 | ||
65 | static struct pci_device_id snd_mixart_ids[] = { | 64 | static struct pci_device_id snd_mixart_ids[] __devinitdata = { |
66 | { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */ | 65 | { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */ |
67 | { 0, } | 66 | { 0, } |
68 | }; | 67 | }; |
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index cc297abc9d11..b92d6600deb9 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c | |||
@@ -263,7 +263,7 @@ struct nm256 { | |||
263 | /* | 263 | /* |
264 | * PCI ids | 264 | * PCI ids |
265 | */ | 265 | */ |
266 | static struct pci_device_id snd_nm256_ids[] = { | 266 | static struct pci_device_id snd_nm256_ids[] __devinitdata = { |
267 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 267 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
268 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 268 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
269 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 269 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index 35875c8aa299..dafa2235abaa 100644 --- a/sound/pci/pcxhr/pcxhr.c +++ b/sound/pci/pcxhr/pcxhr.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/delay.h> | 30 | #include <linux/delay.h> |
31 | #include <linux/moduleparam.h> | 31 | #include <linux/moduleparam.h> |
32 | #include <linux/mutex.h> | 32 | #include <linux/mutex.h> |
33 | #include <linux/dma-mapping.h> | ||
34 | 33 | ||
35 | #include <sound/core.h> | 34 | #include <sound/core.h> |
36 | #include <sound/initval.h> | 35 | #include <sound/initval.h> |
@@ -74,7 +73,7 @@ enum { | |||
74 | PCI_ID_LAST | 73 | PCI_ID_LAST |
75 | }; | 74 | }; |
76 | 75 | ||
77 | static struct pci_device_id pcxhr_ids[] = { | 76 | static struct pci_device_id pcxhr_ids[] __devinitdata = { |
78 | { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ | 77 | { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ |
79 | { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ | 78 | { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ |
80 | { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ | 79 | { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ |
diff --git a/sound/pci/pcxhr/pcxhr_hwdep.c b/sound/pci/pcxhr/pcxhr_hwdep.c index 03517c10e99c..369c19fea985 100644 --- a/sound/pci/pcxhr/pcxhr_hwdep.c +++ b/sound/pci/pcxhr/pcxhr_hwdep.c | |||
@@ -385,8 +385,8 @@ static int pcxhr_hwdep_dsp_load(struct snd_hwdep *hw, | |||
385 | fw.size = dsp->length; | 385 | fw.size = dsp->length; |
386 | fw.data = vmalloc(fw.size); | 386 | fw.data = vmalloc(fw.size); |
387 | if (! fw.data) { | 387 | if (! fw.data) { |
388 | snd_printk(KERN_ERR "pcxhr: cannot allocate dsp image (%d bytes)\n", | 388 | snd_printk(KERN_ERR "pcxhr: cannot allocate dsp image (%lu bytes)\n", |
389 | fw.size); | 389 | (unsigned long)fw.size); |
390 | return -ENOMEM; | 390 | return -ENOMEM; |
391 | } | 391 | } |
392 | if (copy_from_user(fw.data, dsp->image, dsp->length)) { | 392 | if (copy_from_user(fw.data, dsp->image, dsp->length)) { |
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index f148ee434a6b..d8cc985d7241 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c | |||
@@ -506,7 +506,7 @@ static int riptide_reset(struct cmdif *cif, struct snd_riptide *chip); | |||
506 | /* | 506 | /* |
507 | */ | 507 | */ |
508 | 508 | ||
509 | static struct pci_device_id snd_riptide_ids[] = { | 509 | static struct pci_device_id snd_riptide_ids[] __devinitdata = { |
510 | { | 510 | { |
511 | .vendor = 0x127a,.device = 0x4310, | 511 | .vendor = 0x127a,.device = 0x4310, |
512 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, | 512 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, |
@@ -527,7 +527,7 @@ static struct pci_device_id snd_riptide_ids[] = { | |||
527 | }; | 527 | }; |
528 | 528 | ||
529 | #ifdef SUPPORT_JOYSTICK | 529 | #ifdef SUPPORT_JOYSTICK |
530 | static struct pci_device_id snd_riptide_joystick_ids[] = { | 530 | static struct pci_device_id snd_riptide_joystick_ids[] __devinitdata = { |
531 | { | 531 | { |
532 | .vendor = 0x127a,.device = 0x4312, | 532 | .vendor = 0x127a,.device = 0x4312, |
533 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, | 533 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, |
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c index ab78544bf042..55b1d4838d97 100644 --- a/sound/pci/rme32.c +++ b/sound/pci/rme32.c | |||
@@ -227,7 +227,7 @@ struct rme32 { | |||
227 | struct snd_kcontrol *spdif_ctl; | 227 | struct snd_kcontrol *spdif_ctl; |
228 | }; | 228 | }; |
229 | 229 | ||
230 | static struct pci_device_id snd_rme32_ids[] = { | 230 | static struct pci_device_id snd_rme32_ids[] __devinitdata = { |
231 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, | 231 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, |
232 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 232 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
233 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8, | 233 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8, |
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c index 6c2a9f4a7659..3c1bc533d511 100644 --- a/sound/pci/rme96.c +++ b/sound/pci/rme96.c | |||
@@ -232,7 +232,7 @@ struct rme96 { | |||
232 | struct snd_kcontrol *spdif_ctl; | 232 | struct snd_kcontrol *spdif_ctl; |
233 | }; | 233 | }; |
234 | 234 | ||
235 | static struct pci_device_id snd_rme96_ids[] = { | 235 | static struct pci_device_id snd_rme96_ids[] __devinitdata = { |
236 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, | 236 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, |
237 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 237 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
238 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8, | 238 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8, |
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index ebf7a2b86c23..61f82f0d5cc6 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c | |||
@@ -568,7 +568,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d | |||
568 | } | 568 | } |
569 | 569 | ||
570 | 570 | ||
571 | static struct pci_device_id snd_hdsp_ids[] = { | 571 | static struct pci_device_id snd_hdsp_ids[] __devinitdata = { |
572 | { | 572 | { |
573 | .vendor = PCI_VENDOR_ID_XILINX, | 573 | .vendor = PCI_VENDOR_ID_XILINX, |
574 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP, | 574 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP, |
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index b5538efd146b..722b9e6ce54a 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c | |||
@@ -426,7 +426,7 @@ static char channel_map_madi_qs[HDSPM_MAX_CHANNELS] = { | |||
426 | }; | 426 | }; |
427 | 427 | ||
428 | 428 | ||
429 | static struct pci_device_id snd_hdspm_ids[] = { | 429 | static struct pci_device_id snd_hdspm_ids[] __devinitdata = { |
430 | { | 430 | { |
431 | .vendor = PCI_VENDOR_ID_XILINX, | 431 | .vendor = PCI_VENDOR_ID_XILINX, |
432 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI, | 432 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI, |
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c index a687eb63236f..75d6406303d3 100644 --- a/sound/pci/rme9652/rme9652.c +++ b/sound/pci/rme9652/rme9652.c | |||
@@ -315,7 +315,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d | |||
315 | } | 315 | } |
316 | 316 | ||
317 | 317 | ||
318 | static struct pci_device_id snd_rme9652_ids[] = { | 318 | static struct pci_device_id snd_rme9652_ids[] __devinitdata = { |
319 | { | 319 | { |
320 | .vendor = 0x10ee, | 320 | .vendor = 0x10ee, |
321 | .device = 0x3fc4, | 321 | .device = 0x3fc4, |
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index 2d66a09fe5ee..91f8bf3ae9fa 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c | |||
@@ -243,7 +243,7 @@ struct sonicvibes { | |||
243 | #endif | 243 | #endif |
244 | }; | 244 | }; |
245 | 245 | ||
246 | static struct pci_device_id snd_sonic_ids[] = { | 246 | static struct pci_device_id snd_sonic_ids[] __devinitdata = { |
247 | { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 247 | { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
248 | { 0, } | 248 | { 0, } |
249 | }; | 249 | }; |
diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c index b4538045049f..9624a5f2b875 100644 --- a/sound/pci/trident/trident.c +++ b/sound/pci/trident/trident.c | |||
@@ -63,7 +63,7 @@ MODULE_PARM_DESC(pcm_channels, "Number of hardware channels assigned for PCM."); | |||
63 | module_param_array(wavetable_size, int, NULL, 0444); | 63 | module_param_array(wavetable_size, int, NULL, 0444); |
64 | MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); | 64 | MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); |
65 | 65 | ||
66 | static struct pci_device_id snd_trident_ids[] = { | 66 | static struct pci_device_id snd_trident_ids[] __devinitdata = { |
67 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), | 67 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), |
68 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, | 68 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, |
69 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), | 69 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), |
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 0f171dd1377b..39daf62d2bad 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c | |||
@@ -123,6 +123,7 @@ module_param(enable, bool, 0444); | |||
123 | #define VIA_REV_8233A 0x40 /* 1 rec, 1 multi-pb, spdf */ | 123 | #define VIA_REV_8233A 0x40 /* 1 rec, 1 multi-pb, spdf */ |
124 | #define VIA_REV_8235 0x50 /* 2 rec, 4 pb, 1 multi-pb, spdif */ | 124 | #define VIA_REV_8235 0x50 /* 2 rec, 4 pb, 1 multi-pb, spdif */ |
125 | #define VIA_REV_8237 0x60 | 125 | #define VIA_REV_8237 0x60 |
126 | #define VIA_REV_8251 0x70 | ||
126 | 127 | ||
127 | /* | 128 | /* |
128 | * Direct registers | 129 | * Direct registers |
@@ -395,7 +396,7 @@ struct via82xx { | |||
395 | #endif | 396 | #endif |
396 | }; | 397 | }; |
397 | 398 | ||
398 | static struct pci_device_id snd_via82xx_ids[] = { | 399 | static struct pci_device_id snd_via82xx_ids[] __devinitdata = { |
399 | /* 0x1106, 0x3058 */ | 400 | /* 0x1106, 0x3058 */ |
400 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */ | 401 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */ |
401 | /* 0x1106, 0x3059 */ | 402 | /* 0x1106, 0x3059 */ |
@@ -862,6 +863,11 @@ static snd_pcm_uframes_t snd_via8233_pcm_pointer(struct snd_pcm_substream *subst | |||
862 | if (!status) | 863 | if (!status) |
863 | status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); | 864 | status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); |
864 | 865 | ||
866 | /* An apparent bug in the 8251 is worked around by sending a | ||
867 | * REG_CTRL_START. */ | ||
868 | if (chip->revision == VIA_REV_8251 && (status & VIA_REG_STAT_EOL)) | ||
869 | snd_via82xx_pcm_trigger(substream, SNDRV_PCM_TRIGGER_START); | ||
870 | |||
865 | if (!(status & VIA_REG_STAT_ACTIVE)) { | 871 | if (!(status & VIA_REG_STAT_ACTIVE)) { |
866 | res = 0; | 872 | res = 0; |
867 | goto unlock; | 873 | goto unlock; |
@@ -2313,6 +2319,7 @@ static struct via823x_info via823x_cards[] __devinitdata = { | |||
2313 | { VIA_REV_8233A, "VIA 8233A", TYPE_VIA8233A }, | 2319 | { VIA_REV_8233A, "VIA 8233A", TYPE_VIA8233A }, |
2314 | { VIA_REV_8235, "VIA 8235", TYPE_VIA8233 }, | 2320 | { VIA_REV_8235, "VIA 8235", TYPE_VIA8233 }, |
2315 | { VIA_REV_8237, "VIA 8237", TYPE_VIA8233 }, | 2321 | { VIA_REV_8237, "VIA 8237", TYPE_VIA8233 }, |
2322 | { VIA_REV_8251, "VIA 8251", TYPE_VIA8233 }, | ||
2316 | }; | 2323 | }; |
2317 | 2324 | ||
2318 | /* | 2325 | /* |
@@ -2325,7 +2332,7 @@ struct dxs_whitelist { | |||
2325 | short action; /* new dxs_support value */ | 2332 | short action; /* new dxs_support value */ |
2326 | }; | 2333 | }; |
2327 | 2334 | ||
2328 | static int __devinit check_dxs_list(struct pci_dev *pci) | 2335 | static int __devinit check_dxs_list(struct pci_dev *pci, int revision) |
2329 | { | 2336 | { |
2330 | static struct dxs_whitelist whitelist[] = { | 2337 | static struct dxs_whitelist whitelist[] = { |
2331 | { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */ | 2338 | { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */ |
@@ -2342,6 +2349,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) | |||
2342 | { .subvendor = 0x1043, .subdevice = 0x810d, .action = VIA_DXS_SRC }, /* ASUS */ | 2349 | { .subvendor = 0x1043, .subdevice = 0x810d, .action = VIA_DXS_SRC }, /* ASUS */ |
2343 | { .subvendor = 0x1043, .subdevice = 0x812a, .action = VIA_DXS_SRC }, /* ASUS A8V Deluxe */ | 2350 | { .subvendor = 0x1043, .subdevice = 0x812a, .action = VIA_DXS_SRC }, /* ASUS A8V Deluxe */ |
2344 | { .subvendor = 0x1043, .subdevice = 0x8174, .action = VIA_DXS_SRC }, /* ASUS */ | 2351 | { .subvendor = 0x1043, .subdevice = 0x8174, .action = VIA_DXS_SRC }, /* ASUS */ |
2352 | { .subvendor = 0x1043, .subdevice = 0x81b9, .action = VIA_DXS_SRC }, /* ASUS A8V-MX */ | ||
2345 | { .subvendor = 0x1071, .subdevice = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */ | 2353 | { .subvendor = 0x1071, .subdevice = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */ |
2346 | { .subvendor = 0x1071, .subdevice = 0x8399, .action = VIA_DXS_NO_VRA }, /* Umax AB 595T (VIA K8N800A - VT8237) */ | 2354 | { .subvendor = 0x1071, .subdevice = 0x8399, .action = VIA_DXS_NO_VRA }, /* Umax AB 595T (VIA K8N800A - VT8237) */ |
2347 | { .subvendor = 0x10cf, .subdevice = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */ | 2355 | { .subvendor = 0x10cf, .subdevice = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */ |
@@ -2405,6 +2413,10 @@ static int __devinit check_dxs_list(struct pci_dev *pci) | |||
2405 | } | 2413 | } |
2406 | } | 2414 | } |
2407 | 2415 | ||
2416 | /* for newer revision, default to DXS_SRC */ | ||
2417 | if (revision >= VIA_REV_8235) | ||
2418 | return VIA_DXS_SRC; | ||
2419 | |||
2408 | /* | 2420 | /* |
2409 | * not detected, try 48k rate only to be sure. | 2421 | * not detected, try 48k rate only to be sure. |
2410 | */ | 2422 | */ |
@@ -2449,7 +2461,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci, | |||
2449 | } | 2461 | } |
2450 | if (chip_type != TYPE_VIA8233A) { | 2462 | if (chip_type != TYPE_VIA8233A) { |
2451 | if (dxs_support == VIA_DXS_AUTO) | 2463 | if (dxs_support == VIA_DXS_AUTO) |
2452 | dxs_support = check_dxs_list(pci); | 2464 | dxs_support = check_dxs_list(pci, revision); |
2453 | /* force to use VIA8233 or 8233A model according to | 2465 | /* force to use VIA8233 or 8233A model according to |
2454 | * dxs_support module option | 2466 | * dxs_support module option |
2455 | */ | 2467 | */ |
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index 22ce4d309929..ef97e50cd6c2 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c | |||
@@ -261,7 +261,7 @@ struct via82xx_modem { | |||
261 | struct snd_info_entry *proc_entry; | 261 | struct snd_info_entry *proc_entry; |
262 | }; | 262 | }; |
263 | 263 | ||
264 | static struct pci_device_id snd_via82xx_modem_ids[] = { | 264 | static struct pci_device_id snd_via82xx_modem_ids[] __devinitdata = { |
265 | { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, }, | 265 | { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, }, |
266 | { 0, } | 266 | { 0, } |
267 | }; | 267 | }; |
diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c index c816ddf1b215..0f1ebb010a5e 100644 --- a/sound/pci/vx222/vx222.c +++ b/sound/pci/vx222/vx222.c | |||
@@ -60,7 +60,7 @@ enum { | |||
60 | VX_PCI_VX222_NEW | 60 | VX_PCI_VX222_NEW |
61 | }; | 61 | }; |
62 | 62 | ||
63 | static struct pci_device_id snd_vx222_ids[] = { | 63 | static struct pci_device_id snd_vx222_ids[] __devinitdata = { |
64 | { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */ | 64 | { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */ |
65 | { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */ | 65 | { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */ |
66 | { 0, } | 66 | { 0, } |
diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index db57ce939fa8..65ebf5f1933a 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c | |||
@@ -70,7 +70,7 @@ MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch"); | |||
70 | module_param_array(rear_swap, bool, NULL, 0444); | 70 | module_param_array(rear_swap, bool, NULL, 0444); |
71 | MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); | 71 | MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); |
72 | 72 | ||
73 | static struct pci_device_id snd_ymfpci_ids[] = { | 73 | static struct pci_device_id snd_ymfpci_ids[] __devinitdata = { |
74 | { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ | 74 | { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ |
75 | { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */ | 75 | { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */ |
76 | { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */ | 76 | { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */ |
diff --git a/sound/pcmcia/Kconfig b/sound/pcmcia/Kconfig index 5d1b0b762efa..c9fa1a2bc58b 100644 --- a/sound/pcmcia/Kconfig +++ b/sound/pcmcia/Kconfig | |||
@@ -5,7 +5,7 @@ menu "PCMCIA devices" | |||
5 | 5 | ||
6 | config SND_VXPOCKET | 6 | config SND_VXPOCKET |
7 | tristate "Digigram VXpocket" | 7 | tristate "Digigram VXpocket" |
8 | depends on SND && PCMCIA && ISA | 8 | depends on SND && PCMCIA |
9 | select SND_VX_LIB | 9 | select SND_VX_LIB |
10 | help | 10 | help |
11 | Say Y here to include support for Digigram VXpocket and | 11 | Say Y here to include support for Digigram VXpocket and |
@@ -16,7 +16,7 @@ config SND_VXPOCKET | |||
16 | 16 | ||
17 | config SND_PDAUDIOCF | 17 | config SND_PDAUDIOCF |
18 | tristate "Sound Core PDAudioCF" | 18 | tristate "Sound Core PDAudioCF" |
19 | depends on SND && PCMCIA && ISA | 19 | depends on SND && PCMCIA |
20 | select SND_PCM | 20 | select SND_PCM |
21 | help | 21 | help |
22 | Say Y here to include support for Sound Core PDAudioCF | 22 | Say Y here to include support for Sound Core PDAudioCF |
diff --git a/sound/ppc/toonie.c b/sound/ppc/toonie.c index 4e595172e423..1ac7c8552f50 100644 --- a/sound/ppc/toonie.c +++ b/sound/ppc/toonie.c | |||
@@ -335,7 +335,7 @@ static void toonie_cleanup(struct snd_pmac *chip) | |||
335 | chip->mixer_data = NULL; | 335 | chip->mixer_data = NULL; |
336 | } | 336 | } |
337 | 337 | ||
338 | int snd_pmac_toonie_init(struct snd_pmac *chip) | 338 | int __init snd_pmac_toonie_init(struct snd_pmac *chip) |
339 | { | 339 | { |
340 | struct pmac_toonie *mix; | 340 | struct pmac_toonie *mix; |
341 | 341 | ||
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h index 0992a0923f1a..9351846d7a9d 100644 --- a/sound/usb/usbquirks.h +++ b/sound/usb/usbquirks.h | |||
@@ -1531,6 +1531,15 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
1531 | } | 1531 | } |
1532 | }, | 1532 | }, |
1533 | { | 1533 | { |
1534 | USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0014), | ||
1535 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | ||
1536 | .vendor_name = "TerraTec", | ||
1537 | .product_name = "PHASE 26", | ||
1538 | .ifnum = 3, | ||
1539 | .type = QUIRK_MIDI_STANDARD_INTERFACE | ||
1540 | } | ||
1541 | }, | ||
1542 | { | ||
1534 | USB_DEVICE(0x0ccd, 0x0035), | 1543 | USB_DEVICE(0x0ccd, 0x0035), |
1535 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | 1544 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { |
1536 | .vendor_name = "Miditech", | 1545 | .vendor_name = "Miditech", |