diff options
Diffstat (limited to 'sound')
71 files changed, 339 insertions, 599 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..77b06009735d 100644 --- a/sound/drivers/mpu401/mpu401.c +++ b/sound/drivers/mpu401/mpu401.c | |||
@@ -151,7 +151,7 @@ static struct pnp_device_id snd_mpu401_pnpids[] = { | |||
151 | 151 | ||
152 | MODULE_DEVICE_TABLE(pnp, snd_mpu401_pnpids); | 152 | MODULE_DEVICE_TABLE(pnp, snd_mpu401_pnpids); |
153 | 153 | ||
154 | static int __init snd_mpu401_pnp(int dev, struct pnp_dev *device, | 154 | static int __devinit snd_mpu401_pnp(int dev, struct pnp_dev *device, |
155 | const struct pnp_device_id *id) | 155 | const struct pnp_device_id *id) |
156 | { | 156 | { |
157 | if (!pnp_port_valid(device, 0) || | 157 | if (!pnp_port_valid(device, 0) || |
@@ -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/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index 8687ae3c66b8..b49a45cbf67a 100644 --- a/sound/drivers/mpu401/mpu401_uart.c +++ b/sound/drivers/mpu401/mpu401_uart.c | |||
@@ -183,7 +183,8 @@ static void snd_mpu401_uart_remove_timer (struct snd_mpu401 *mpu, int input) | |||
183 | 183 | ||
184 | */ | 184 | */ |
185 | 185 | ||
186 | static void snd_mpu401_uart_cmd(struct snd_mpu401 * mpu, unsigned char cmd, int ack) | 186 | static int snd_mpu401_uart_cmd(struct snd_mpu401 * mpu, unsigned char cmd, |
187 | int ack) | ||
187 | { | 188 | { |
188 | unsigned long flags; | 189 | unsigned long flags; |
189 | int timeout, ok; | 190 | int timeout, ok; |
@@ -218,9 +219,11 @@ static void snd_mpu401_uart_cmd(struct snd_mpu401 * mpu, unsigned char cmd, int | |||
218 | ok = 1; | 219 | ok = 1; |
219 | } | 220 | } |
220 | spin_unlock_irqrestore(&mpu->input_lock, flags); | 221 | spin_unlock_irqrestore(&mpu->input_lock, flags); |
221 | if (! ok) | 222 | if (!ok) { |
222 | snd_printk("cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)\n", cmd, mpu->port, mpu->read(mpu, MPU401C(mpu)), mpu->read(mpu, MPU401D(mpu))); | 223 | snd_printk("cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)\n", cmd, mpu->port, mpu->read(mpu, MPU401C(mpu)), mpu->read(mpu, MPU401D(mpu))); |
223 | // snd_printk("cmd: 0x%x at 0x%lx (status = 0x%x, data = 0x%x)\n", cmd, mpu->port, mpu->read(mpu, MPU401C(mpu)), mpu->read(mpu, MPU401D(mpu))); | 224 | return 1; |
225 | } | ||
226 | return 0; | ||
224 | } | 227 | } |
225 | 228 | ||
226 | /* | 229 | /* |
@@ -235,12 +238,19 @@ static int snd_mpu401_uart_input_open(struct snd_rawmidi_substream *substream) | |||
235 | if (mpu->open_input && (err = mpu->open_input(mpu)) < 0) | 238 | if (mpu->open_input && (err = mpu->open_input(mpu)) < 0) |
236 | return err; | 239 | return err; |
237 | if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode)) { | 240 | if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode)) { |
238 | snd_mpu401_uart_cmd(mpu, MPU401_RESET, 1); | 241 | if (snd_mpu401_uart_cmd(mpu, MPU401_RESET, 1)) |
239 | snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 1); | 242 | goto error_out; |
243 | if (snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 1)) | ||
244 | goto error_out; | ||
240 | } | 245 | } |
241 | mpu->substream_input = substream; | 246 | mpu->substream_input = substream; |
242 | set_bit(MPU401_MODE_BIT_INPUT, &mpu->mode); | 247 | set_bit(MPU401_MODE_BIT_INPUT, &mpu->mode); |
243 | return 0; | 248 | return 0; |
249 | |||
250 | error_out: | ||
251 | if (mpu->open_input && mpu->close_input) | ||
252 | mpu->close_input(mpu); | ||
253 | return -EIO; | ||
244 | } | 254 | } |
245 | 255 | ||
246 | static int snd_mpu401_uart_output_open(struct snd_rawmidi_substream *substream) | 256 | static int snd_mpu401_uart_output_open(struct snd_rawmidi_substream *substream) |
@@ -252,39 +262,52 @@ static int snd_mpu401_uart_output_open(struct snd_rawmidi_substream *substream) | |||
252 | if (mpu->open_output && (err = mpu->open_output(mpu)) < 0) | 262 | if (mpu->open_output && (err = mpu->open_output(mpu)) < 0) |
253 | return err; | 263 | return err; |
254 | if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode)) { | 264 | if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode)) { |
255 | snd_mpu401_uart_cmd(mpu, MPU401_RESET, 1); | 265 | if (snd_mpu401_uart_cmd(mpu, MPU401_RESET, 1)) |
256 | snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 1); | 266 | goto error_out; |
267 | if (snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 1)) | ||
268 | goto error_out; | ||
257 | } | 269 | } |
258 | mpu->substream_output = substream; | 270 | mpu->substream_output = substream; |
259 | set_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode); | 271 | set_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode); |
260 | return 0; | 272 | return 0; |
273 | |||
274 | error_out: | ||
275 | if (mpu->open_output && mpu->close_output) | ||
276 | mpu->close_output(mpu); | ||
277 | return -EIO; | ||
261 | } | 278 | } |
262 | 279 | ||
263 | static int snd_mpu401_uart_input_close(struct snd_rawmidi_substream *substream) | 280 | static int snd_mpu401_uart_input_close(struct snd_rawmidi_substream *substream) |
264 | { | 281 | { |
265 | struct snd_mpu401 *mpu; | 282 | struct snd_mpu401 *mpu; |
283 | int err = 0; | ||
266 | 284 | ||
267 | mpu = substream->rmidi->private_data; | 285 | mpu = substream->rmidi->private_data; |
268 | clear_bit(MPU401_MODE_BIT_INPUT, &mpu->mode); | 286 | clear_bit(MPU401_MODE_BIT_INPUT, &mpu->mode); |
269 | mpu->substream_input = NULL; | 287 | mpu->substream_input = NULL; |
270 | if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode)) | 288 | if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode)) |
271 | snd_mpu401_uart_cmd(mpu, MPU401_RESET, 0); | 289 | err = snd_mpu401_uart_cmd(mpu, MPU401_RESET, 0); |
272 | if (mpu->close_input) | 290 | if (mpu->close_input) |
273 | mpu->close_input(mpu); | 291 | mpu->close_input(mpu); |
292 | if (err) | ||
293 | return -EIO; | ||
274 | return 0; | 294 | return 0; |
275 | } | 295 | } |
276 | 296 | ||
277 | static int snd_mpu401_uart_output_close(struct snd_rawmidi_substream *substream) | 297 | static int snd_mpu401_uart_output_close(struct snd_rawmidi_substream *substream) |
278 | { | 298 | { |
279 | struct snd_mpu401 *mpu; | 299 | struct snd_mpu401 *mpu; |
300 | int err = 0; | ||
280 | 301 | ||
281 | mpu = substream->rmidi->private_data; | 302 | mpu = substream->rmidi->private_data; |
282 | clear_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode); | 303 | clear_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode); |
283 | mpu->substream_output = NULL; | 304 | mpu->substream_output = NULL; |
284 | if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode)) | 305 | if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode)) |
285 | snd_mpu401_uart_cmd(mpu, MPU401_RESET, 0); | 306 | err = snd_mpu401_uart_cmd(mpu, MPU401_RESET, 0); |
286 | if (mpu->close_output) | 307 | if (mpu->close_output) |
287 | mpu->close_output(mpu); | 308 | mpu->close_output(mpu); |
309 | if (err) | ||
310 | return -EIO; | ||
288 | return 0; | 311 | return 0; |
289 | } | 312 | } |
290 | 313 | ||
@@ -316,6 +339,7 @@ static void snd_mpu401_uart_input_trigger(struct snd_rawmidi_substream *substrea | |||
316 | snd_mpu401_uart_remove_timer(mpu, 1); | 339 | snd_mpu401_uart_remove_timer(mpu, 1); |
317 | clear_bit(MPU401_MODE_BIT_INPUT_TRIGGER, &mpu->mode); | 340 | clear_bit(MPU401_MODE_BIT_INPUT_TRIGGER, &mpu->mode); |
318 | } | 341 | } |
342 | |||
319 | } | 343 | } |
320 | 344 | ||
321 | /* | 345 | /* |
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/es18xx.c b/sound/isa/es18xx.c index a36ec1daa5cb..e6945db8ed1b 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c | |||
@@ -85,6 +85,8 @@ | |||
85 | #include <linux/pnp.h> | 85 | #include <linux/pnp.h> |
86 | #include <linux/isapnp.h> | 86 | #include <linux/isapnp.h> |
87 | #include <linux/moduleparam.h> | 87 | #include <linux/moduleparam.h> |
88 | #include <linux/delay.h> | ||
89 | |||
88 | #include <asm/io.h> | 90 | #include <asm/io.h> |
89 | #include <asm/dma.h> | 91 | #include <asm/dma.h> |
90 | #include <sound/core.h> | 92 | #include <sound/core.h> |
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 88e52dc84c09..558c6ed443be 100644 --- a/sound/oss/Kconfig +++ b/sound/oss/Kconfig | |||
@@ -5,23 +5,9 @@ | |||
5 | # | 5 | # |
6 | # Prompt user for primary drivers. | 6 | # Prompt user for primary drivers. |
7 | 7 | ||
8 | config OBSOLETE_OSS_DRIVER | ||
9 | bool "Obsolete OSS drivers" | ||
10 | depends on SOUND_PRIME | ||
11 | help | ||
12 | This option enables support for obsolete OSS drivers that | ||
13 | are scheduled for removal in the near future since there | ||
14 | are ALSA drivers for the same hardware. | ||
15 | |||
16 | Please contact Adrian Bunk <bunk@stusta.de> if you had to | ||
17 | say Y here because your soundcard is not properly supported | ||
18 | by ALSA. | ||
19 | |||
20 | If unsure, say N. | ||
21 | |||
22 | config SOUND_BT878 | 8 | config SOUND_BT878 |
23 | tristate "BT878 audio dma" | 9 | tristate "BT878 audio dma" |
24 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | 10 | depends on SOUND_PRIME && PCI |
25 | ---help--- | 11 | ---help--- |
26 | Audio DMA support for bt878 based grabber boards. As you might have | 12 | Audio DMA support for bt878 based grabber boards. As you might have |
27 | already noticed, bt878 is listed with two functions in /proc/pci. | 13 | already noticed, bt878 is listed with two functions in /proc/pci. |
@@ -35,48 +21,9 @@ config SOUND_BT878 | |||
35 | To compile this driver as a module, choose M here: the module will | 21 | To compile this driver as a module, choose M here: the module will |
36 | be called btaudio. | 22 | be called btaudio. |
37 | 23 | ||
38 | config SOUND_CMPCI | ||
39 | tristate "C-Media PCI (CMI8338/8738)" | ||
40 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
41 | help | ||
42 | Say Y or M if you have a PCI sound card using the CMI8338 | ||
43 | or the CMI8738 chipset. Data on these chips are available at | ||
44 | <http://www.cmedia.com.tw/>. | ||
45 | |||
46 | A userspace utility to control some internal registers of these | ||
47 | chips is available at | ||
48 | <http://member.nifty.ne.jp/Breeze/softwares/unix/cmictl-e.html>. | ||
49 | |||
50 | config SOUND_CMPCI_FM | ||
51 | bool "Enable legacy FM" | ||
52 | depends on SOUND_CMPCI && X86 | ||
53 | help | ||
54 | Say Y here to enable the legacy FM (frequency-modulation) synthesizer | ||
55 | support on a card using the CMI8338 or CMI8378 chipset. Even it is | ||
56 | enabled, you need to set fmio as proper value to enable it. | ||
57 | Say N here if you don't need this. | ||
58 | |||
59 | config SOUND_CMPCI_MIDI | ||
60 | bool "Enable legacy MPU-401" | ||
61 | depends on SOUND_CMPCI && X86 | ||
62 | help | ||
63 | Say Y here to enable the legacy MPU401 MIDI synthesizer support on a | ||
64 | card using the CMI8338 or CMI8378 chipset. Even it is enabled, | ||
65 | you need to set mpuio as proper value to enable it. | ||
66 | Say N here if you don't need this. | ||
67 | |||
68 | config SOUND_CMPCI_JOYSTICK | ||
69 | bool "Enable joystick" | ||
70 | depends on SOUND_CMPCI && X86 && (GAMEPORT=y || SOUND_CMPCI=GAMEPORT) | ||
71 | help | ||
72 | Say Y here in order to enable the joystick port on a sound card using | ||
73 | the CMI8338 or the CMI8738 chipset. You need to config the | ||
74 | gameport support and set joystick parameter as 1 to use it. | ||
75 | Say N here if you don't need this. | ||
76 | |||
77 | config SOUND_EMU10K1 | 24 | config SOUND_EMU10K1 |
78 | tristate "Creative SBLive! (EMU10K1)" | 25 | tristate "Creative SBLive! (EMU10K1)" |
79 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | 26 | depends on SOUND_PRIME && PCI |
80 | ---help--- | 27 | ---help--- |
81 | Say Y or M if you have a PCI sound card using the EMU10K1 chipset, | 28 | Say Y or M if you have a PCI sound card using the EMU10K1 chipset, |
82 | such as the Creative SBLive!, SB PCI512 or Emu-APS. | 29 | such as the Creative SBLive!, SB PCI512 or Emu-APS. |
@@ -108,13 +55,6 @@ config SOUND_FUSION | |||
108 | series) when wired as native sound drivers with AC97 codecs. If | 55 | series) when wired as native sound drivers with AC97 codecs. If |
109 | this driver does not work try the CS4232 driver. | 56 | this driver does not work try the CS4232 driver. |
110 | 57 | ||
111 | config SOUND_CS4281 | ||
112 | tristate "Crystal Sound CS4281" | ||
113 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
114 | help | ||
115 | Picture and feature list at | ||
116 | <http://www.pcbroker.com/crystal4281.html>. | ||
117 | |||
118 | config SOUND_BCM_CS4297A | 58 | config SOUND_BCM_CS4297A |
119 | tristate "Crystal Sound CS4297a (for Swarm)" | 59 | tristate "Crystal Sound CS4297a (for Swarm)" |
120 | depends on SOUND_PRIME && SIBYTE_SWARM | 60 | depends on SOUND_PRIME && SIBYTE_SWARM |
@@ -125,22 +65,9 @@ config SOUND_BCM_CS4297A | |||
125 | note that CONFIG_KGDB should not be enabled at the same | 65 | note that CONFIG_KGDB should not be enabled at the same |
126 | time, since it also attempts to use this UART port. | 66 | time, since it also attempts to use this UART port. |
127 | 67 | ||
128 | config SOUND_ES1370 | ||
129 | tristate "Ensoniq AudioPCI (ES1370)" | ||
130 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
131 | help | ||
132 | Say Y or M if you have a PCI sound card utilizing the Ensoniq | ||
133 | ES1370 chipset, such as Ensoniq's AudioPCI (non-97). To find | ||
134 | out if your sound card uses an ES1370 without removing your | ||
135 | computer's cover, use lspci -n and look for the PCI ID | ||
136 | 1274:5000. Since Ensoniq was bought by Creative Labs, | ||
137 | Sound Blaster 64/PCI models are either ES1370 or ES1371 based. | ||
138 | This driver differs slightly from OSS/Free, so PLEASE READ | ||
139 | <file:Documentation/sound/oss/es1370>. | ||
140 | |||
141 | config SOUND_ES1371 | 68 | config SOUND_ES1371 |
142 | tristate "Creative Ensoniq AudioPCI 97 (ES1371)" | 69 | tristate "Creative Ensoniq AudioPCI 97 (ES1371)" |
143 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | 70 | depends on SOUND_PRIME && PCI |
144 | help | 71 | help |
145 | Say Y or M if you have a PCI sound card utilizing the Ensoniq | 72 | Say Y or M if you have a PCI sound card utilizing the Ensoniq |
146 | ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if | 73 | ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if |
@@ -151,33 +78,6 @@ config SOUND_ES1371 | |||
151 | slightly from OSS/Free, so PLEASE READ | 78 | slightly from OSS/Free, so PLEASE READ |
152 | <file:Documentation/sound/oss/es1371>. | 79 | <file:Documentation/sound/oss/es1371>. |
153 | 80 | ||
154 | config SOUND_ESSSOLO1 | ||
155 | tristate "ESS Technology Solo1" | ||
156 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
157 | help | ||
158 | Say Y or M if you have a PCI sound card utilizing the ESS Technology | ||
159 | Solo1 chip. To find out if your sound card uses a | ||
160 | Solo1 chip without removing your computer's cover, use | ||
161 | lspci -n and look for the PCI ID 125D:1969. This driver | ||
162 | differs slightly from OSS/Free, so PLEASE READ | ||
163 | <file:Documentation/sound/oss/solo1>. | ||
164 | |||
165 | config SOUND_MAESTRO | ||
166 | tristate "ESS Maestro, Maestro2, Maestro2E driver" | ||
167 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
168 | help | ||
169 | Say Y or M if you have a sound system driven by ESS's Maestro line | ||
170 | of PCI sound chips. These include the Maestro 1, Maestro 2, and | ||
171 | Maestro 2E. See <file:Documentation/sound/oss/Maestro> for more | ||
172 | details. | ||
173 | |||
174 | config SOUND_MAESTRO3 | ||
175 | tristate "ESS Maestro3/Allegro driver (EXPERIMENTAL)" | ||
176 | depends on SOUND_PRIME && PCI && EXPERIMENTAL && OBSOLETE_OSS_DRIVER | ||
177 | help | ||
178 | Say Y or M if you have a sound system driven by ESS's Maestro 3 | ||
179 | PCI sound chip. | ||
180 | |||
181 | config SOUND_ICH | 81 | config SOUND_ICH |
182 | tristate "Intel ICH (i8xx) audio support" | 82 | tristate "Intel ICH (i8xx) audio support" |
183 | depends on SOUND_PRIME && PCI | 83 | depends on SOUND_PRIME && PCI |
@@ -185,24 +85,6 @@ config SOUND_ICH | |||
185 | Support for integral audio in Intel's I/O Controller Hub (ICH) | 85 | Support for integral audio in Intel's I/O Controller Hub (ICH) |
186 | chipset, as used on the 810/820/840 motherboards. | 86 | chipset, as used on the 810/820/840 motherboards. |
187 | 87 | ||
188 | config SOUND_HARMONY | ||
189 | tristate "PA Harmony audio driver" | ||
190 | depends on GSC_LASI && SOUND_PRIME && OBSOLETE_OSS_DRIVER | ||
191 | help | ||
192 | Say 'Y' or 'M' to include support for Harmony soundchip | ||
193 | on HP 712, 715/new and many other GSC based machines. | ||
194 | |||
195 | config SOUND_SONICVIBES | ||
196 | tristate "S3 SonicVibes" | ||
197 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
198 | help | ||
199 | Say Y or M if you have a PCI sound card utilizing the S3 | ||
200 | SonicVibes chipset. To find out if your sound card uses a | ||
201 | SonicVibes chip without removing your computer's cover, use | ||
202 | lspci -n and look for the PCI ID 5333:CA00. This driver | ||
203 | differs slightly from OSS/Free, so PLEASE READ | ||
204 | <file:Documentation/sound/oss/sonicvibes>. | ||
205 | |||
206 | config SOUND_VWSND | 88 | config SOUND_VWSND |
207 | tristate "SGI Visual Workstation Sound" | 89 | tristate "SGI Visual Workstation Sound" |
208 | depends on SOUND_PRIME && X86_VISWS | 90 | depends on SOUND_PRIME && X86_VISWS |
@@ -231,10 +113,6 @@ config SOUND_VRC5477 | |||
231 | integrated, multi-function controller chip for MIPS CPUs. Works | 113 | integrated, multi-function controller chip for MIPS CPUs. Works |
232 | with the AC97 codec. | 114 | with the AC97 codec. |
233 | 115 | ||
234 | config SOUND_AU1000 | ||
235 | tristate "Au1000 Sound" | ||
236 | depends on SOUND_PRIME && (SOC_AU1000 || SOC_AU1100 || SOC_AU1500) && OBSOLETE_OSS_DRIVER | ||
237 | |||
238 | config SOUND_AU1550_AC97 | 116 | config SOUND_AU1550_AC97 |
239 | tristate "Au1550 AC97 Sound" | 117 | tristate "Au1550 AC97 Sound" |
240 | depends on SOUND_PRIME && SOC_AU1550 | 118 | depends on SOUND_PRIME && SOC_AU1550 |
@@ -507,7 +385,7 @@ config MSND_FIFOSIZE | |||
507 | 385 | ||
508 | config SOUND_VIA82CXXX | 386 | config SOUND_VIA82CXXX |
509 | tristate "VIA 82C686 Audio Codec" | 387 | tristate "VIA 82C686 Audio Codec" |
510 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | 388 | depends on SOUND_PRIME && PCI |
511 | help | 389 | help |
512 | Say Y here to include support for the audio codec found on VIA | 390 | Say Y here to include support for the audio codec found on VIA |
513 | 82Cxxx-based chips. Typically these are built into a motherboard. | 391 | 82Cxxx-based chips. Typically these are built into a motherboard. |
@@ -576,18 +454,6 @@ config SOUND_AD1889 | |||
576 | Say M here if you have a sound card based on the Analog Devices | 454 | Say M here if you have a sound card based on the Analog Devices |
577 | AD1889 chip. | 455 | AD1889 chip. |
578 | 456 | ||
579 | config SOUND_SGALAXY | ||
580 | tristate "Aztech Sound Galaxy (non-PnP) cards" | ||
581 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
582 | help | ||
583 | This module initializes the older non Plug and Play sound galaxy | ||
584 | cards from Aztech. It supports the Waverider Pro 32 - 3D and the | ||
585 | Galaxy Washington 16. | ||
586 | |||
587 | If you compile the driver into the kernel, you have to add | ||
588 | "sgalaxy=<io>,<irq>,<dma>,<dma2>,<sgbase>" to the kernel command | ||
589 | line. | ||
590 | |||
591 | config SOUND_ADLIB | 457 | config SOUND_ADLIB |
592 | tristate "Adlib Cards" | 458 | tristate "Adlib Cards" |
593 | depends on SOUND_OSS | 459 | depends on SOUND_OSS |
@@ -614,7 +480,7 @@ config SOUND_ACI_MIXER | |||
614 | 480 | ||
615 | config SOUND_CS4232 | 481 | config SOUND_CS4232 |
616 | tristate "Crystal CS4232 based (PnP) cards" | 482 | tristate "Crystal CS4232 based (PnP) cards" |
617 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | 483 | depends on SOUND_OSS |
618 | help | 484 | help |
619 | Say Y here if you have a card based on the Crystal CS4232 chip set, | 485 | Say Y here if you have a card based on the Crystal CS4232 chip set, |
620 | which uses its own Plug and Play protocol. | 486 | which uses its own Plug and Play protocol. |
@@ -626,42 +492,6 @@ config SOUND_CS4232 | |||
626 | See <file:Documentation/sound/oss/CS4232> for more information on | 492 | See <file:Documentation/sound/oss/CS4232> for more information on |
627 | configuring this card. | 493 | configuring this card. |
628 | 494 | ||
629 | config SOUND_SSCAPE | ||
630 | tristate "Ensoniq SoundScape support" | ||
631 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
632 | help | ||
633 | Answer Y if you have a sound card based on the Ensoniq SoundScape | ||
634 | chipset. Such cards are being manufactured at least by Ensoniq, Spea | ||
635 | and Reveal (Reveal makes also other cards). | ||
636 | |||
637 | If you compile the driver into the kernel, you have to add | ||
638 | "sscape=<io>,<irq>,<dma>,<mpuio>,<mpuirq>" to the kernel command | ||
639 | line. | ||
640 | |||
641 | config SOUND_GUS | ||
642 | tristate "Gravis Ultrasound support" | ||
643 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
644 | help | ||
645 | Say Y here for any type of Gravis Ultrasound card, including the GUS | ||
646 | or GUS MAX. See also <file:Documentation/sound/oss/ultrasound> for more | ||
647 | information on configuring this card with modules. | ||
648 | |||
649 | If you compile the driver into the kernel, you have to add | ||
650 | "gus=<io>,<irq>,<dma>,<dma2>" to the kernel command line. | ||
651 | |||
652 | config SOUND_GUS16 | ||
653 | bool "16 bit sampling option of GUS (_NOT_ GUS MAX)" | ||
654 | depends on SOUND_GUS | ||
655 | help | ||
656 | Support for Gravis Ulstrasound (GUS) cards (other than the GUS), | ||
657 | sampling at 16-bit width. | ||
658 | |||
659 | config SOUND_GUSMAX | ||
660 | bool "GUS MAX support" | ||
661 | depends on SOUND_GUS | ||
662 | help | ||
663 | Support for Gravis Ulstrasound MAX. | ||
664 | |||
665 | config SOUND_VMIDI | 495 | config SOUND_VMIDI |
666 | tristate "Loopback MIDI device support" | 496 | tristate "Loopback MIDI device support" |
667 | depends on SOUND_OSS | 497 | depends on SOUND_OSS |
@@ -742,7 +572,7 @@ config SOUND_MPU401 | |||
742 | 572 | ||
743 | config SOUND_NM256 | 573 | config SOUND_NM256 |
744 | tristate "NM256AV/NM256ZX audio support" | 574 | tristate "NM256AV/NM256ZX audio support" |
745 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | 575 | depends on SOUND_OSS |
746 | help | 576 | help |
747 | Say M here to include audio support for the NeoMagic 256AV/256ZX | 577 | Say M here to include audio support for the NeoMagic 256AV/256ZX |
748 | chipsets. These are the audio chipsets found in the Sony | 578 | chipsets. These are the audio chipsets found in the Sony |
@@ -752,35 +582,6 @@ config SOUND_NM256 | |||
752 | 582 | ||
753 | See <file:Documentation/sound/oss/NM256> for further information. | 583 | See <file:Documentation/sound/oss/NM256> for further information. |
754 | 584 | ||
755 | config SOUND_MAD16 | ||
756 | tristate "OPTi MAD16 and/or Mozart based cards" | ||
757 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
758 | ---help--- | ||
759 | Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi | ||
760 | 82C928 or 82C929 or 82C931) audio interface chip. These chips are | ||
761 | quite common so it's possible that many no-name cards have one of | ||
762 | them. In addition the MAD16 chip is used in some cards made by known | ||
763 | manufacturers such as Turtle Beach (Tropez), Reveal (some models) | ||
764 | and Diamond (latest ones). Note however that the Tropez sound cards | ||
765 | have their own driver; if you have one of those, say N here and Y or | ||
766 | M to "Full support for Turtle Beach WaveFront", below. | ||
767 | |||
768 | If you compile the driver into the kernel, you have to add | ||
769 | "mad16=<io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>" to the | ||
770 | kernel command line. | ||
771 | |||
772 | See also <file:Documentation/sound/oss/Opti> and | ||
773 | <file:Documentation/sound/oss/MAD16> for more information on setting | ||
774 | these cards up as modules. | ||
775 | |||
776 | config MAD16_OLDCARD | ||
777 | bool "Support MIDI in older MAD16 based cards (requires SB)" | ||
778 | depends on SOUND_MAD16 | ||
779 | help | ||
780 | Answer Y (or M) if you have an older card based on the C928 or | ||
781 | Mozart chipset and you want to have MIDI support. If you enable this | ||
782 | option you also need to enable support for Sound Blaster. | ||
783 | |||
784 | config SOUND_PAS | 585 | config SOUND_PAS |
785 | tristate "ProAudioSpectrum 16 support" | 586 | tristate "ProAudioSpectrum 16 support" |
786 | depends on SOUND_OSS | 587 | depends on SOUND_OSS |
@@ -873,53 +674,9 @@ config SOUND_SB | |||
873 | You can say M here to compile this driver as a module; the module is | 674 | You can say M here to compile this driver as a module; the module is |
874 | called sb. | 675 | called sb. |
875 | 676 | ||
876 | config SOUND_AWE32_SYNTH | ||
877 | tristate "AWE32 synth" | ||
878 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
879 | help | ||
880 | Say Y here if you have a Sound Blaster SB32, AWE32-PnP, SB AWE64 or | ||
881 | similar sound card. See <file:Documentation/sound/oss/README.awe>, | ||
882 | <file:Documentation/sound/oss/AWE32> and the Soundblaster-AWE | ||
883 | mini-HOWTO, available from <http://www.tldp.org/docs.html#howto> | ||
884 | for more info. | ||
885 | |||
886 | config SOUND_WAVEFRONT | ||
887 | tristate "Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Maui) synth/soundcards" | ||
888 | depends on SOUND_OSS && m && OBSOLETE_OSS_DRIVER | ||
889 | help | ||
890 | Answer Y or M if you have a Tropez Plus, Tropez or Maui sound card | ||
891 | and read the files <file:Documentation/sound/oss/Wavefront> and | ||
892 | <file:Documentation/sound/oss/Tropez+>. | ||
893 | |||
894 | config SOUND_MAUI | ||
895 | tristate "Limited support for Turtle Beach Wave Front (Maui, Tropez) synthesizers" | ||
896 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
897 | help | ||
898 | Say Y here if you have a Turtle Beach Wave Front, Maui, or Tropez | ||
899 | sound card. | ||
900 | |||
901 | If you compile the driver into the kernel, you have to add | ||
902 | "maui=<io>,<irq>" to the kernel command line. | ||
903 | |||
904 | config MAUI_HAVE_BOOT | ||
905 | bool "Have OSWF.MOT firmware file" | ||
906 | depends on SOUND_MAUI=y && !STANDALONE | ||
907 | help | ||
908 | Turtle Beach Maui and Tropez sound cards have a microcontroller | ||
909 | which needs to be initialized prior to use. OSWF.MOT is a file | ||
910 | distributed with the card's DOS/Windows drivers. Answer Y if you | ||
911 | have this file. | ||
912 | |||
913 | config MAUI_BOOT_FILE | ||
914 | string "Full pathname of OSWF.MOT firmware file" | ||
915 | depends on MAUI_HAVE_BOOT | ||
916 | default "/etc/sound/oswf.mot" | ||
917 | help | ||
918 | Enter the full pathname of your OSWF.MOT file, starting from /. | ||
919 | |||
920 | config SOUND_YM3812 | 677 | config SOUND_YM3812 |
921 | tristate "Yamaha FM synthesizer (YM3812/OPL-3) support" | 678 | tristate "Yamaha FM synthesizer (YM3812/OPL-3) support" |
922 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | 679 | depends on SOUND_OSS |
923 | ---help--- | 680 | ---help--- |
924 | Answer Y if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). | 681 | Answer Y if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). |
925 | Answering Y is usually a safe and recommended choice, however some | 682 | Answering Y is usually a safe and recommended choice, however some |
@@ -933,18 +690,6 @@ config SOUND_YM3812 | |||
933 | 690 | ||
934 | If unsure, say Y. | 691 | If unsure, say Y. |
935 | 692 | ||
936 | config SOUND_OPL3SA1 | ||
937 | tristate "Yamaha OPL3-SA1 audio controller" | ||
938 | depends on SOUND_OSS && OBSOLETE_OSS_DRIVER | ||
939 | help | ||
940 | Say Y or M if you have a Yamaha OPL3-SA1 sound chip, which is | ||
941 | usually built into motherboards. Read | ||
942 | <file:Documentation/sound/oss/OPL3-SA> for details. | ||
943 | |||
944 | If you compile the driver into the kernel, you have to add | ||
945 | "opl3sa=<io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>" to the kernel | ||
946 | command line. | ||
947 | |||
948 | config SOUND_OPL3SA2 | 693 | config SOUND_OPL3SA2 |
949 | tristate "Yamaha OPL3-SA2 and SA3 based PnP cards" | 694 | tristate "Yamaha OPL3-SA2 and SA3 based PnP cards" |
950 | depends on SOUND_OSS | 695 | depends on SOUND_OSS |
@@ -959,19 +704,6 @@ config SOUND_OPL3SA2 | |||
959 | "opl3sa2=<io>,<irq>,<dma>,<dma2>,<mssio>,<mpuio>" to the kernel | 704 | "opl3sa2=<io>,<irq>,<dma>,<dma2>,<mssio>,<mpuio>" to the kernel |
960 | command line. | 705 | command line. |
961 | 706 | ||
962 | config SOUND_YMFPCI | ||
963 | tristate "Yamaha YMF7xx PCI audio (native mode)" | ||
964 | depends on SOUND_OSS && PCI && OBSOLETE_OSS_DRIVER | ||
965 | help | ||
966 | Support for Yamaha cards including the YMF711, YMF715, YMF718, | ||
967 | YMF719, YMF724, Waveforce 192XG, and Waveforce 192 Digital. | ||
968 | |||
969 | config SOUND_YMFPCI_LEGACY | ||
970 | bool "Yamaha PCI legacy ports support" | ||
971 | depends on SOUND_YMFPCI | ||
972 | help | ||
973 | Support for YMF7xx PCI cards emulating an MP401. | ||
974 | |||
975 | config SOUND_UART6850 | 707 | config SOUND_UART6850 |
976 | tristate "6850 UART support" | 708 | tristate "6850 UART support" |
977 | depends on SOUND_OSS | 709 | depends on SOUND_OSS |
@@ -1101,30 +833,6 @@ config SOUND_KAHLUA | |||
1101 | tristate "XpressAudio Sound Blaster emulation" | 833 | tristate "XpressAudio Sound Blaster emulation" |
1102 | depends on SOUND_SB | 834 | depends on SOUND_SB |
1103 | 835 | ||
1104 | config SOUND_ALI5455 | ||
1105 | tristate "ALi5455 audio support" | ||
1106 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
1107 | |||
1108 | config SOUND_FORTE | ||
1109 | tristate "ForteMedia FM801 driver" | ||
1110 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
1111 | help | ||
1112 | Say Y or M if you want driver support for the ForteMedia FM801 PCI | ||
1113 | audio controller (Abit AU10, Genius Sound Maker, HP Workstation | ||
1114 | zx2000, and others). | ||
1115 | |||
1116 | config SOUND_RME96XX | ||
1117 | tristate "RME Hammerfall (RME96XX) support" | ||
1118 | depends on SOUND_PRIME && PCI && OBSOLETE_OSS_DRIVER | ||
1119 | help | ||
1120 | Say Y or M if you have a Hammerfall or Hammerfall light | ||
1121 | multichannel card from RME. If you want to access advanced | ||
1122 | features of the card, read <file:Documentation/sound/oss/rme96xx>. | ||
1123 | |||
1124 | config SOUND_AD1980 | ||
1125 | tristate "AD1980 front/back switch plugin" | ||
1126 | depends on SOUND_PRIME && OBSOLETE_OSS_DRIVER | ||
1127 | |||
1128 | config SOUND_SH_DAC_AUDIO | 836 | config SOUND_SH_DAC_AUDIO |
1129 | tristate "SuperH DAC audio support" | 837 | tristate "SuperH DAC audio support" |
1130 | depends on SOUND_PRIME && CPU_SH3 | 838 | depends on SOUND_PRIME && CPU_SH3 |
diff --git a/sound/oss/ad1848.c b/sound/oss/ad1848.c index 49796be955f3..e04fa49b0dc8 100644 --- a/sound/oss/ad1848.c +++ b/sound/oss/ad1848.c | |||
@@ -2026,7 +2026,8 @@ int ad1848_init (char *name, struct resource *ports, int irq, int dma_playback, | |||
2026 | if (irq > 0) | 2026 | if (irq > 0) |
2027 | { | 2027 | { |
2028 | devc->dev_no = my_dev; | 2028 | devc->dev_no = my_dev; |
2029 | if (request_irq(devc->irq, adintr, 0, devc->name, (void *)my_dev) < 0) | 2029 | if (request_irq(devc->irq, adintr, 0, devc->name, |
2030 | (void *)(long)my_dev) < 0) | ||
2030 | { | 2031 | { |
2031 | printk(KERN_WARNING "ad1848: Unable to allocate IRQ\n"); | 2032 | printk(KERN_WARNING "ad1848: Unable to allocate IRQ\n"); |
2032 | /* Don't free it either then.. */ | 2033 | /* Don't free it either then.. */ |
@@ -2175,7 +2176,7 @@ void ad1848_unload(int io_base, int irq, int dma_playback, int dma_capture, int | |||
2175 | if (!share_dma) | 2176 | if (!share_dma) |
2176 | { | 2177 | { |
2177 | if (devc->irq > 0) /* There is no point in freeing irq, if it wasn't allocated */ | 2178 | if (devc->irq > 0) /* There is no point in freeing irq, if it wasn't allocated */ |
2178 | free_irq(devc->irq, (void *)devc->dev_no); | 2179 | free_irq(devc->irq, (void *)(long)devc->dev_no); |
2179 | 2180 | ||
2180 | sound_free_dma(dma_playback); | 2181 | sound_free_dma(dma_playback); |
2181 | 2182 | ||
@@ -2204,7 +2205,7 @@ irqreturn_t adintr(int irq, void *dev_id, struct pt_regs *dummy) | |||
2204 | unsigned char c930_stat = 0; | 2205 | unsigned char c930_stat = 0; |
2205 | int cnt = 0; | 2206 | int cnt = 0; |
2206 | 2207 | ||
2207 | dev = (int)dev_id; | 2208 | dev = (long)dev_id; |
2208 | devc = (ad1848_info *) audio_devs[dev]->devc; | 2209 | devc = (ad1848_info *) audio_devs[dev]->devc; |
2209 | 2210 | ||
2210 | interrupt_again: /* Jump back here if int status doesn't reset */ | 2211 | interrupt_again: /* Jump back here if int status doesn't reset */ |
@@ -2900,7 +2901,8 @@ static struct pnp_dev *activate_dev(char *devname, char *resname, struct pnp_dev | |||
2900 | return(dev); | 2901 | return(dev); |
2901 | } | 2902 | } |
2902 | 2903 | ||
2903 | static struct pnp_dev *ad1848_init_generic(struct pnp_card *bus, struct address_info *hw_config, int slot) | 2904 | static struct pnp_dev __init *ad1848_init_generic(struct pnp_card *bus, |
2905 | struct address_info *hw_config, int slot) | ||
2904 | { | 2906 | { |
2905 | 2907 | ||
2906 | /* Configure Audio device */ | 2908 | /* Configure Audio device */ |
diff --git a/sound/oss/ad1889.c b/sound/oss/ad1889.c index 54dabf862802..a4ca7569e700 100644 --- a/sound/oss/ad1889.c +++ b/sound/oss/ad1889.c | |||
@@ -75,7 +75,7 @@ static inline void ad1889_set_wav_rate(ad1889_dev_t *dev, int rate) | |||
75 | 75 | ||
76 | DBG("Setting WAV rate to %d\n", rate); | 76 | DBG("Setting WAV rate to %d\n", rate); |
77 | dev->state[AD_WAV_STATE].dmabuf.rate = rate; | 77 | dev->state[AD_WAV_STATE].dmabuf.rate = rate; |
78 | AD1889_WRITEW(dev, AD_DSWAS, rate); | 78 | AD1889_WRITEW(dev, AD_DS_WAS, rate); |
79 | 79 | ||
80 | /* Cycle the DAC to enable the new rate */ | 80 | /* Cycle the DAC to enable the new rate */ |
81 | ac97_codec->codec_write(dev->ac97_codec, AC97_POWER_CONTROL, 0x0200); | 81 | ac97_codec->codec_write(dev->ac97_codec, AC97_POWER_CONTROL, 0x0200); |
@@ -89,14 +89,14 @@ static inline void ad1889_set_wav_fmt(ad1889_dev_t *dev, int fmt) | |||
89 | 89 | ||
90 | DBG("Setting WAV format to 0x%x\n", fmt); | 90 | DBG("Setting WAV format to 0x%x\n", fmt); |
91 | 91 | ||
92 | tmp = AD1889_READW(ad1889_dev, AD_DSWSMC); | 92 | tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC); |
93 | if (fmt & AFMT_S16_LE) { | 93 | if (fmt & AFMT_S16_LE) { |
94 | //tmp |= 0x0100; /* set WA16 */ | 94 | //tmp |= 0x0100; /* set WA16 */ |
95 | tmp |= 0x0300; /* set WA16 stereo */ | 95 | tmp |= 0x0300; /* set WA16 stereo */ |
96 | } else if (fmt & AFMT_U8) { | 96 | } else if (fmt & AFMT_U8) { |
97 | tmp &= ~0x0100; /* clear WA16 */ | 97 | tmp &= ~0x0100; /* clear WA16 */ |
98 | } | 98 | } |
99 | AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp); | 99 | AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp); |
100 | } | 100 | } |
101 | 101 | ||
102 | static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt) | 102 | static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt) |
@@ -105,13 +105,13 @@ static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt) | |||
105 | 105 | ||
106 | DBG("Setting ADC format to 0x%x\n", fmt); | 106 | DBG("Setting ADC format to 0x%x\n", fmt); |
107 | 107 | ||
108 | tmp = AD1889_READW(ad1889_dev, AD_DSRAMC); | 108 | tmp = AD1889_READW(ad1889_dev, AD_DS_RAMC); |
109 | if (fmt & AFMT_S16_LE) { | 109 | if (fmt & AFMT_S16_LE) { |
110 | tmp |= 0x0100; /* set WA16 */ | 110 | tmp |= 0x0100; /* set WA16 */ |
111 | } else if (fmt & AFMT_U8) { | 111 | } else if (fmt & AFMT_U8) { |
112 | tmp &= ~0x0100; /* clear WA16 */ | 112 | tmp &= ~0x0100; /* clear WA16 */ |
113 | } | 113 | } |
114 | AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp); | 114 | AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, tmp); |
115 | } | 115 | } |
116 | 116 | ||
117 | static void ad1889_start_wav(ad1889_state_t *state) | 117 | static void ad1889_start_wav(ad1889_state_t *state) |
@@ -145,21 +145,21 @@ static void ad1889_start_wav(ad1889_state_t *state) | |||
145 | dmabuf->rd_ptr, dmabuf->dma_len); | 145 | dmabuf->rd_ptr, dmabuf->dma_len); |
146 | 146 | ||
147 | /* load up the current register set */ | 147 | /* load up the current register set */ |
148 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVCC, cnt); | 148 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVCC, cnt); |
149 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVICC, cnt); | 149 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVICC, cnt); |
150 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVCA, dmabuf->dma_handle); | 150 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVCA, dmabuf->dma_handle); |
151 | 151 | ||
152 | /* TODO: for now we load the base registers with the same thing */ | 152 | /* TODO: for now we load the base registers with the same thing */ |
153 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVBC, cnt); | 153 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVBC, cnt); |
154 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVIBC, cnt); | 154 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVIBC, cnt); |
155 | AD1889_WRITEL(ad1889_dev, AD_DMAWAVBA, dmabuf->dma_handle); | 155 | AD1889_WRITEL(ad1889_dev, AD_DMA_WAVBA, dmabuf->dma_handle); |
156 | 156 | ||
157 | /* and we're off to the races... */ | 157 | /* and we're off to the races... */ |
158 | AD1889_WRITEL(ad1889_dev, AD_DMACHSS, 0x8); | 158 | AD1889_WRITEL(ad1889_dev, AD_DMA_CHSS, 0x8); |
159 | tmp = AD1889_READW(ad1889_dev, AD_DSWSMC); | 159 | tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC); |
160 | tmp |= 0x0400; /* set WAEN */ | 160 | tmp |= 0x0400; /* set WAEN */ |
161 | AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp); | 161 | AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp); |
162 | (void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */ | 162 | (void) AD1889_READW(ad1889_dev, AD_DS_WSMC); /* flush posted PCI write */ |
163 | 163 | ||
164 | dmabuf->enable |= DAC_RUNNING; | 164 | dmabuf->enable |= DAC_RUNNING; |
165 | 165 | ||
@@ -179,10 +179,10 @@ static void ad1889_stop_wav(ad1889_state_t *state) | |||
179 | u16 tmp; | 179 | u16 tmp; |
180 | unsigned long cnt = dmabuf->dma_len; | 180 | unsigned long cnt = dmabuf->dma_len; |
181 | 181 | ||
182 | tmp = AD1889_READW(ad1889_dev, AD_DSWSMC); | 182 | tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC); |
183 | tmp &= ~0x0400; /* clear WAEN */ | 183 | tmp &= ~0x0400; /* clear WAEN */ |
184 | AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp); | 184 | AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp); |
185 | (void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */ | 185 | (void) AD1889_READW(ad1889_dev, AD_DS_WSMC); /* flush posted PCI write */ |
186 | pci_unmap_single(ad1889_dev->pci, dmabuf->dma_handle, | 186 | pci_unmap_single(ad1889_dev->pci, dmabuf->dma_handle, |
187 | cnt, PCI_DMA_TODEVICE); | 187 | cnt, PCI_DMA_TODEVICE); |
188 | 188 | ||
@@ -211,7 +211,7 @@ static void ad1889_startstop_adc(ad1889_state_t *state, int start) | |||
211 | 211 | ||
212 | spin_lock_irqsave(&state->card->lock, flags); | 212 | spin_lock_irqsave(&state->card->lock, flags); |
213 | 213 | ||
214 | tmp = AD1889_READW(ad1889_dev, AD_DSRAMC); | 214 | tmp = AD1889_READW(ad1889_dev, AD_DS_RAMC); |
215 | if (start) { | 215 | if (start) { |
216 | state->dmabuf.enable |= ADC_RUNNING; | 216 | state->dmabuf.enable |= ADC_RUNNING; |
217 | tmp |= 0x0004; /* set ADEN */ | 217 | tmp |= 0x0004; /* set ADEN */ |
@@ -219,7 +219,7 @@ static void ad1889_startstop_adc(ad1889_state_t *state, int start) | |||
219 | state->dmabuf.enable &= ~ADC_RUNNING; | 219 | state->dmabuf.enable &= ~ADC_RUNNING; |
220 | tmp &= ~0x0004; /* clear ADEN */ | 220 | tmp &= ~0x0004; /* clear ADEN */ |
221 | } | 221 | } |
222 | AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp); | 222 | AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, tmp); |
223 | 223 | ||
224 | spin_unlock_irqrestore(&state->card->lock, flags); | 224 | spin_unlock_irqrestore(&state->card->lock, flags); |
225 | } | 225 | } |
@@ -301,53 +301,53 @@ static int ad1889_read_proc (char *page, char **start, off_t off, | |||
301 | int len, i; | 301 | int len, i; |
302 | ad1889_dev_t *dev = data; | 302 | ad1889_dev_t *dev = data; |
303 | ad1889_reg_t regs[] = { | 303 | ad1889_reg_t regs[] = { |
304 | { "WSMC", AD_DSWSMC, 16 }, | 304 | { "WSMC", AD_DS_WSMC, 16 }, |
305 | { "RAMC", AD_DSRAMC, 16 }, | 305 | { "RAMC", AD_DS_RAMC, 16 }, |
306 | { "WADA", AD_DSWADA, 16 }, | 306 | { "WADA", AD_DS_WADA, 16 }, |
307 | { "SYDA", AD_DSSYDA, 16 }, | 307 | { "SYDA", AD_DS_SYDA, 16 }, |
308 | { "WAS", AD_DSWAS, 16 }, | 308 | { "WAS", AD_DS_WAS, 16 }, |
309 | { "RES", AD_DSRES, 16 }, | 309 | { "RES", AD_DS_RES, 16 }, |
310 | { "CCS", AD_DSCCS, 16 }, | 310 | { "CCS", AD_DS_CCS, 16 }, |
311 | { "ADCBA", AD_DMAADCBA, 32 }, | 311 | { "ADCBA", AD_DMA_ADCBA, 32 }, |
312 | { "ADCCA", AD_DMAADCCA, 32 }, | 312 | { "ADCCA", AD_DMA_ADCCA, 32 }, |
313 | { "ADCBC", AD_DMAADCBC, 32 }, | 313 | { "ADCBC", AD_DMA_ADCBC, 32 }, |
314 | { "ADCCC", AD_DMAADCCC, 32 }, | 314 | { "ADCCC", AD_DMA_ADCCC, 32 }, |
315 | { "ADCIBC", AD_DMAADCIBC, 32 }, | 315 | { "ADCIBC", AD_DMA_ADCIBC, 32 }, |
316 | { "ADCICC", AD_DMAADCICC, 32 }, | 316 | { "ADCICC", AD_DMA_ADCICC, 32 }, |
317 | { "ADCCTRL", AD_DMAADCCTRL, 16 }, | 317 | { "ADCCTRL", AD_DMA_ADCCTRL, 16 }, |
318 | { "WAVBA", AD_DMAWAVBA, 32 }, | 318 | { "WAVBA", AD_DMA_WAVBA, 32 }, |
319 | { "WAVCA", AD_DMAWAVCA, 32 }, | 319 | { "WAVCA", AD_DMA_WAVCA, 32 }, |
320 | { "WAVBC", AD_DMAWAVBC, 32 }, | 320 | { "WAVBC", AD_DMA_WAVBC, 32 }, |
321 | { "WAVCC", AD_DMAWAVCC, 32 }, | 321 | { "WAVCC", AD_DMA_WAVCC, 32 }, |
322 | { "WAVIBC", AD_DMAWAVIBC, 32 }, | 322 | { "WAVIBC", AD_DMA_WAVIBC, 32 }, |
323 | { "WAVICC", AD_DMAWAVICC, 32 }, | 323 | { "WAVICC", AD_DMA_WAVICC, 32 }, |
324 | { "WAVCTRL", AD_DMAWAVCTRL, 16 }, | 324 | { "WAVCTRL", AD_DMA_WAVCTRL, 16 }, |
325 | { "DISR", AD_DMADISR, 32 }, | 325 | { "DISR", AD_DMA_DISR, 32 }, |
326 | { "CHSS", AD_DMACHSS, 32 }, | 326 | { "CHSS", AD_DMA_CHSS, 32 }, |
327 | { "IPC", AD_GPIOIPC, 16 }, | 327 | { "IPC", AD_GPIO_IPC, 16 }, |
328 | { "OP", AD_GPIOOP, 16 }, | 328 | { "OP", AD_GPIO_OP, 16 }, |
329 | { "IP", AD_GPIOIP, 16 }, | 329 | { "IP", AD_GPIO_IP, 16 }, |
330 | { "ACIC", AD_ACIC, 16 }, | 330 | { "ACIC", AD_AC97_ACIC, 16 }, |
331 | { "AC97_RESET", 0x100 + AC97_RESET, 16 }, | 331 | { "AC97_RESET", AD_AC97_BASE + AC97_RESET, 16 }, |
332 | { "AC97_MASTER_VOL_STEREO", 0x100 + AC97_MASTER_VOL_STEREO, 16 }, | 332 | { "AC97_MASTER_VOL_STEREO", AD_AC97_BASE + AC97_MASTER_VOL_STEREO, 16 }, |
333 | { "AC97_HEADPHONE_VOL", 0x100 + AC97_HEADPHONE_VOL, 16 }, | 333 | { "AC97_HEADPHONE_VOL", AD_AC97_BASE + AC97_HEADPHONE_VOL, 16 }, |
334 | { "AC97_MASTER_VOL_MONO", 0x100 + AC97_MASTER_VOL_MONO, 16 }, | 334 | { "AC97_MASTER_VOL_MONO", AD_AC97_BASE + AC97_MASTER_VOL_MONO, 16 }, |
335 | { "AC97_MASTER_TONE", 0x100 + AC97_MASTER_TONE, 16 }, | 335 | { "AC97_MASTER_TONE", AD_AC97_BASE + AC97_MASTER_TONE, 16 }, |
336 | { "AC97_PCBEEP_VOL", 0x100 + AC97_PCBEEP_VOL, 16 }, | 336 | { "AC97_PCBEEP_VOL", AD_AC97_BASE + AC97_PCBEEP_VOL, 16 }, |
337 | { "AC97_PHONE_VOL", 0x100 + AC97_PHONE_VOL, 16 }, | 337 | { "AC97_PHONE_VOL", AD_AC97_BASE + AC97_PHONE_VOL, 16 }, |
338 | { "AC97_MIC_VOL", 0x100 + AC97_MIC_VOL, 16 }, | 338 | { "AC97_MIC_VOL", AD_AC97_BASE + AC97_MIC_VOL, 16 }, |
339 | { "AC97_LINEIN_VOL", 0x100 + AC97_LINEIN_VOL, 16 }, | 339 | { "AC97_LINEIN_VOL", AD_AC97_BASE + AC97_LINEIN_VOL, 16 }, |
340 | { "AC97_CD_VOL", 0x100 + AC97_CD_VOL, 16 }, | 340 | { "AC97_CD_VOL", AD_AC97_BASE + AC97_CD_VOL, 16 }, |
341 | { "AC97_VIDEO_VOL", 0x100 + AC97_VIDEO_VOL, 16 }, | 341 | { "AC97_VIDEO_VOL", AD_AC97_BASE + AC97_VIDEO_VOL, 16 }, |
342 | { "AC97_AUX_VOL", 0x100 + AC97_AUX_VOL, 16 }, | 342 | { "AC97_AUX_VOL", AD_AC97_BASE + AC97_AUX_VOL, 16 }, |
343 | { "AC97_PCMOUT_VOL", 0x100 + AC97_PCMOUT_VOL, 16 }, | 343 | { "AC97_PCMOUT_VOL", AD_AC97_BASE + AC97_PCMOUT_VOL, 16 }, |
344 | { "AC97_RECORD_SELECT", 0x100 + AC97_RECORD_SELECT, 16 }, | 344 | { "AC97_RECORD_SELECT", AD_AC97_BASE + AC97_RECORD_SELECT, 16 }, |
345 | { "AC97_RECORD_GAIN", 0x100 + AC97_RECORD_GAIN, 16 }, | 345 | { "AC97_RECORD_GAIN", AD_AC97_BASE + AC97_RECORD_GAIN, 16 }, |
346 | { "AC97_RECORD_GAIN_MIC", 0x100 + AC97_RECORD_GAIN_MIC, 16 }, | 346 | { "AC97_RECORD_GAIN_MIC", AD_AC97_BASE + AC97_RECORD_GAIN_MIC, 16 }, |
347 | { "AC97_GENERAL_PURPOSE", 0x100 + AC97_GENERAL_PURPOSE, 16 }, | 347 | { "AC97_GENERAL_PURPOSE", AD_AC97_BASE + AC97_GENERAL_PURPOSE, 16 }, |
348 | { "AC97_3D_CONTROL", 0x100 + AC97_3D_CONTROL, 16 }, | 348 | { "AC97_3D_CONTROL", AD_AC97_BASE + AC97_3D_CONTROL, 16 }, |
349 | { "AC97_MODEM_RATE", 0x100 + AC97_MODEM_RATE, 16 }, | 349 | { "AC97_MODEM_RATE", AD_AC97_BASE + AC97_MODEM_RATE, 16 }, |
350 | { "AC97_POWER_CONTROL", 0x100 + AC97_POWER_CONTROL, 16 }, | 350 | { "AC97_POWER_CONTROL", AD_AC97_BASE + AC97_POWER_CONTROL, 16 }, |
351 | { NULL } | 351 | { NULL } |
352 | }; | 352 | }; |
353 | 353 | ||
@@ -400,9 +400,9 @@ static inline unsigned long ad1889_get_dma_addr(ad1889_state_t *state) | |||
400 | } | 400 | } |
401 | 401 | ||
402 | if (dmabuf->enable & DAC_RUNNING) | 402 | if (dmabuf->enable & DAC_RUNNING) |
403 | offset = le32_to_cpu(AD1889_READL(state->card, AD_DMAWAVBA)); | 403 | offset = le32_to_cpu(AD1889_READL(state->card, AD_DMA_WAVBA)); |
404 | else | 404 | else |
405 | offset = le32_to_cpu(AD1889_READL(state->card, AD_DMAADCBA)); | 405 | offset = le32_to_cpu(AD1889_READL(state->card, AD_DMA_ADCBA)); |
406 | 406 | ||
407 | return (unsigned long)bus_to_virt((unsigned long)offset) - (unsigned long)dmabuf->rawbuf; | 407 | return (unsigned long)bus_to_virt((unsigned long)offset) - (unsigned long)dmabuf->rawbuf; |
408 | } | 408 | } |
@@ -639,9 +639,9 @@ static int ad1889_ioctl(struct inode *inode, struct file *file, unsigned int cmd | |||
639 | if (val > 5400 && val < 48000) | 639 | if (val > 5400 && val < 48000) |
640 | { | 640 | { |
641 | if (file->f_mode & FMODE_WRITE) | 641 | if (file->f_mode & FMODE_WRITE) |
642 | AD1889_WRITEW(ad1889_dev, AD_DSWAS, val); | 642 | AD1889_WRITEW(ad1889_dev, AD_DS_WAS, val); |
643 | if (file->f_mode & FMODE_READ) | 643 | if (file->f_mode & FMODE_READ) |
644 | AD1889_WRITEW(ad1889_dev, AD_DSRES, val); | 644 | AD1889_WRITEW(ad1889_dev, AD_DS_RES, val); |
645 | } | 645 | } |
646 | return 0; | 646 | return 0; |
647 | 647 | ||
@@ -649,22 +649,22 @@ static int ad1889_ioctl(struct inode *inode, struct file *file, unsigned int cmd | |||
649 | if (get_user(val, p)) | 649 | if (get_user(val, p)) |
650 | return -EFAULT; | 650 | return -EFAULT; |
651 | if (file->f_mode & FMODE_READ) { | 651 | if (file->f_mode & FMODE_READ) { |
652 | val = AD1889_READW(ad1889_dev, AD_DSWSMC); | 652 | val = AD1889_READW(ad1889_dev, AD_DS_WSMC); |
653 | if (val) { | 653 | if (val) { |
654 | val |= 0x0200; /* set WAST */ | 654 | val |= 0x0200; /* set WAST */ |
655 | } else { | 655 | } else { |
656 | val &= ~0x0200; /* clear WAST */ | 656 | val &= ~0x0200; /* clear WAST */ |
657 | } | 657 | } |
658 | AD1889_WRITEW(ad1889_dev, AD_DSWSMC, val); | 658 | AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, val); |
659 | } | 659 | } |
660 | if (file->f_mode & FMODE_WRITE) { | 660 | if (file->f_mode & FMODE_WRITE) { |
661 | val = AD1889_READW(ad1889_dev, AD_DSRAMC); | 661 | val = AD1889_READW(ad1889_dev, AD_DS_RAMC); |
662 | if (val) { | 662 | if (val) { |
663 | val |= 0x0002; /* set ADST */ | 663 | val |= 0x0002; /* set ADST */ |
664 | } else { | 664 | } else { |
665 | val &= ~0x0002; /* clear ADST */ | 665 | val &= ~0x0002; /* clear ADST */ |
666 | } | 666 | } |
667 | AD1889_WRITEW(ad1889_dev, AD_DSRAMC, val); | 667 | AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, val); |
668 | } | 668 | } |
669 | 669 | ||
670 | return 0; | 670 | return 0; |
@@ -739,7 +739,7 @@ static int ad1889_ioctl(struct inode *inode, struct file *file, unsigned int cmd | |||
739 | break; | 739 | break; |
740 | 740 | ||
741 | case SOUND_PCM_READ_RATE: | 741 | case SOUND_PCM_READ_RATE: |
742 | return put_user(AD1889_READW(ad1889_dev, AD_DSWAS), p); | 742 | return put_user(AD1889_READW(ad1889_dev, AD_DS_WAS), p); |
743 | 743 | ||
744 | case SOUND_PCM_READ_CHANNELS: | 744 | case SOUND_PCM_READ_CHANNELS: |
745 | case SOUND_PCM_READ_BITS: | 745 | case SOUND_PCM_READ_BITS: |
@@ -769,7 +769,7 @@ static int ad1889_open(struct inode *inode, struct file *file) | |||
769 | 769 | ||
770 | ad1889_set_wav_rate(ad1889_dev, 48000); | 770 | ad1889_set_wav_rate(ad1889_dev, 48000); |
771 | ad1889_set_wav_fmt(ad1889_dev, AFMT_S16_LE); | 771 | ad1889_set_wav_fmt(ad1889_dev, AFMT_S16_LE); |
772 | AD1889_WRITEW(ad1889_dev, AD_DSWADA, 0x0404); /* attenuation */ | 772 | AD1889_WRITEW(ad1889_dev, AD_DS_WADA, 0x0404); /* attenuation */ |
773 | return nonseekable_open(inode, file); | 773 | return nonseekable_open(inode, file); |
774 | } | 774 | } |
775 | 775 | ||
@@ -826,15 +826,15 @@ static void ad1889_codec_write(struct ac97_codec *ac97, u8 reg, u16 val) | |||
826 | { | 826 | { |
827 | ad1889_dev_t *dev = ac97->private_data; | 827 | ad1889_dev_t *dev = ac97->private_data; |
828 | 828 | ||
829 | //DBG("Writing 0x%x to 0x%lx\n", val, dev->regbase + 0x100 + reg); | 829 | //DBG("Writing 0x%x to 0x%lx\n", val, dev->regbase + AD_AC97_BASE + reg); |
830 | AD1889_WRITEW(dev, 0x100 + reg, val); | 830 | AD1889_WRITEW(dev, AD_AC97_BASE + reg, val); |
831 | } | 831 | } |
832 | 832 | ||
833 | static u16 ad1889_codec_read(struct ac97_codec *ac97, u8 reg) | 833 | static u16 ad1889_codec_read(struct ac97_codec *ac97, u8 reg) |
834 | { | 834 | { |
835 | ad1889_dev_t *dev = ac97->private_data; | 835 | ad1889_dev_t *dev = ac97->private_data; |
836 | //DBG("Reading from 0x%lx\n", dev->regbase + 0x100 + reg); | 836 | //DBG("Reading from 0x%lx\n", dev->regbase + AD_AC97_BASE + reg); |
837 | return AD1889_READW(dev, 0x100 + reg); | 837 | return AD1889_READW(dev, AD_AC97_BASE + reg); |
838 | } | 838 | } |
839 | 839 | ||
840 | static int ad1889_ac97_init(ad1889_dev_t *dev, int id) | 840 | static int ad1889_ac97_init(ad1889_dev_t *dev, int id) |
@@ -883,24 +883,24 @@ static int ad1889_aclink_reset(struct pci_dev * pcidev) | |||
883 | int retry = 200; | 883 | int retry = 200; |
884 | ad1889_dev_t *dev = pci_get_drvdata(pcidev); | 884 | ad1889_dev_t *dev = pci_get_drvdata(pcidev); |
885 | 885 | ||
886 | AD1889_WRITEW(dev, AD_DSCCS, 0x8000); /* turn on clock */ | 886 | AD1889_WRITEW(dev, AD_DS_CCS, 0x8000); /* turn on clock */ |
887 | AD1889_READW(dev, AD_DSCCS); | 887 | AD1889_READW(dev, AD_DS_CCS); |
888 | 888 | ||
889 | WAIT_10MS(); | 889 | WAIT_10MS(); |
890 | 890 | ||
891 | stat = AD1889_READW(dev, AD_ACIC); | 891 | stat = AD1889_READW(dev, AD_AC97_ACIC); |
892 | stat |= 0x0002; /* Reset Disable */ | 892 | stat |= 0x0002; /* Reset Disable */ |
893 | AD1889_WRITEW(dev, AD_ACIC, stat); | 893 | AD1889_WRITEW(dev, AD_AC97_ACIC, stat); |
894 | (void) AD1889_READW(dev, AD_ACIC); /* flush posted write */ | 894 | (void) AD1889_READW(dev, AD_AC97_ACIC); /* flush posted write */ |
895 | 895 | ||
896 | udelay(10); | 896 | udelay(10); |
897 | 897 | ||
898 | stat = AD1889_READW(dev, AD_ACIC); | 898 | stat = AD1889_READW(dev, AD_AC97_ACIC); |
899 | stat |= 0x0001; /* Interface Enable */ | 899 | stat |= 0x0001; /* Interface Enable */ |
900 | AD1889_WRITEW(dev, AD_ACIC, stat); | 900 | AD1889_WRITEW(dev, AD_AC97_ACIC, stat); |
901 | 901 | ||
902 | do { | 902 | do { |
903 | if (AD1889_READW(dev, AD_ACIC) & 0x8000) /* Ready */ | 903 | if (AD1889_READW(dev, AD_AC97_ACIC) & 0x8000) /* Ready */ |
904 | break; | 904 | break; |
905 | WAIT_10MS(); | 905 | WAIT_10MS(); |
906 | retry--; | 906 | retry--; |
@@ -908,16 +908,16 @@ static int ad1889_aclink_reset(struct pci_dev * pcidev) | |||
908 | 908 | ||
909 | if (!retry) { | 909 | if (!retry) { |
910 | printk(KERN_ERR "ad1889_aclink_reset: codec is not ready [0x%x]\n", | 910 | printk(KERN_ERR "ad1889_aclink_reset: codec is not ready [0x%x]\n", |
911 | AD1889_READW(dev, AD_ACIC)); | 911 | AD1889_READW(dev, AD_AC97_ACIC)); |
912 | return -EBUSY; | 912 | return -EBUSY; |
913 | } | 913 | } |
914 | 914 | ||
915 | /* TODO reset AC97 codec */ | 915 | /* TODO reset AC97 codec */ |
916 | /* TODO set wave/adc pci ctrl status */ | 916 | /* TODO set wave/adc pci ctrl status */ |
917 | 917 | ||
918 | stat = AD1889_READW(dev, AD_ACIC); | 918 | stat = AD1889_READW(dev, AD_AC97_ACIC); |
919 | stat |= 0x0004; /* Audio Stream Output Enable */ | 919 | stat |= 0x0004; /* Audio Stream Output Enable */ |
920 | AD1889_WRITEW(dev, AD_ACIC, stat); | 920 | AD1889_WRITEW(dev, AD_AC97_ACIC, stat); |
921 | return 0; | 921 | return 0; |
922 | } | 922 | } |
923 | 923 | ||
@@ -935,10 +935,10 @@ static irqreturn_t ad1889_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
935 | u32 stat; | 935 | u32 stat; |
936 | ad1889_dev_t *dev = (ad1889_dev_t *)dev_id; | 936 | ad1889_dev_t *dev = (ad1889_dev_t *)dev_id; |
937 | 937 | ||
938 | stat = AD1889_READL(dev, AD_DMADISR); | 938 | stat = AD1889_READL(dev, AD_DMA_DISR); |
939 | 939 | ||
940 | /* clear ISR */ | 940 | /* clear ISR */ |
941 | AD1889_WRITEL(dev, AD_DMADISR, stat); | 941 | AD1889_WRITEL(dev, AD_DMA_DISR, stat); |
942 | 942 | ||
943 | if (stat & 0x8) { /* WAVI */ | 943 | if (stat & 0x8) { /* WAVI */ |
944 | DBG("WAV interrupt\n"); | 944 | DBG("WAV interrupt\n"); |
@@ -964,15 +964,15 @@ static void ad1889_initcfg(ad1889_dev_t *dev) | |||
964 | u32 tmp32; | 964 | u32 tmp32; |
965 | 965 | ||
966 | /* make sure the interrupt bits are setup the way we want */ | 966 | /* make sure the interrupt bits are setup the way we want */ |
967 | tmp32 = AD1889_READL(dev, AD_DMAWAVCTRL); | 967 | tmp32 = AD1889_READL(dev, AD_DMA_WAVCTRL); |
968 | tmp32 &= ~0xff; /* flat dma, no sg, mask out the intr bits */ | 968 | tmp32 &= ~0xff; /* flat dma, no sg, mask out the intr bits */ |
969 | tmp32 |= 0x6; /* intr on count, loop */ | 969 | tmp32 |= 0x6; /* intr on count, loop */ |
970 | AD1889_WRITEL(dev, AD_DMAWAVCTRL, tmp32); | 970 | AD1889_WRITEL(dev, AD_DMA_WAVCTRL, tmp32); |
971 | 971 | ||
972 | /* unmute... */ | 972 | /* unmute... */ |
973 | tmp16 = AD1889_READW(dev, AD_DSWADA); | 973 | tmp16 = AD1889_READW(dev, AD_DS_WADA); |
974 | tmp16 &= ~0x8080; | 974 | tmp16 &= ~0x8080; |
975 | AD1889_WRITEW(dev, AD_DSWADA, tmp16); | 975 | AD1889_WRITEW(dev, AD_DS_WADA, tmp16); |
976 | } | 976 | } |
977 | 977 | ||
978 | static int __devinit ad1889_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) | 978 | static int __devinit ad1889_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) |
@@ -1005,7 +1005,7 @@ static int __devinit ad1889_probe(struct pci_dev *pcidev, const struct pci_devic | |||
1005 | goto out1; | 1005 | goto out1; |
1006 | } | 1006 | } |
1007 | 1007 | ||
1008 | dev->regbase = ioremap_nocache(bar, AD_DSIOMEMSIZE); | 1008 | dev->regbase = ioremap_nocache(bar, AD_DS_IOMEMSIZE); |
1009 | if (!dev->regbase) { | 1009 | if (!dev->regbase) { |
1010 | printk(KERN_ERR DEVNAME ": unable to remap iomem\n"); | 1010 | printk(KERN_ERR DEVNAME ": unable to remap iomem\n"); |
1011 | goto out2; | 1011 | goto out2; |
diff --git a/sound/oss/ad1889.h b/sound/oss/ad1889.h index 861b3213f30b..09913765967a 100644 --- a/sound/oss/ad1889.h +++ b/sound/oss/ad1889.h | |||
@@ -1,57 +1,58 @@ | |||
1 | #ifndef _AD1889_H_ | 1 | #ifndef _AD1889_H_ |
2 | #define _AD1889_H_ | 2 | #define _AD1889_H_ |
3 | 3 | ||
4 | #define AD_DSWSMC 0x00 /* DMA input wave/syn mixer control */ | 4 | #define AD_DS_WSMC 0x00 /* DMA input wave/syn mixer control */ |
5 | #define AD_DSRAMC 0x02 /* DMA output resamp/ADC mixer control */ | 5 | #define AD_DS_RAMC 0x02 /* DMA output resamp/ADC mixer control */ |
6 | #define AD_DSWADA 0x04 /* DMA input wave attenuation */ | 6 | #define AD_DS_WADA 0x04 /* DMA input wave attenuation */ |
7 | #define AD_DSSYDA 0x06 /* DMA input syn attentuation */ | 7 | #define AD_DS_SYDA 0x06 /* DMA input syn attentuation */ |
8 | #define AD_DSWAS 0x08 /* wave input sample rate */ | 8 | #define AD_DS_WAS 0x08 /* wave input sample rate */ |
9 | #define AD_DSRES 0x0a /* resampler output sample rate */ | 9 | #define AD_DS_RES 0x0a /* resampler output sample rate */ |
10 | #define AD_DSCCS 0x0c /* chip control/status */ | 10 | #define AD_DS_CCS 0x0c /* chip control/status */ |
11 | 11 | ||
12 | #define AD_DMARESBA 0x40 /* RES base addr */ | 12 | #define AD_DMA_RESBA 0x40 /* RES base addr */ |
13 | #define AD_DMARESCA 0x44 /* RES current addr */ | 13 | #define AD_DMA_RESCA 0x44 /* RES current addr */ |
14 | #define AD_DMARESBC 0x48 /* RES base cnt */ | 14 | #define AD_DMA_RESBC 0x48 /* RES base cnt */ |
15 | #define AD_DMARESCC 0x4c /* RES current count */ | 15 | #define AD_DMA_RESCC 0x4c /* RES current count */ |
16 | #define AD_DMAADCBA 0x50 /* ADC */ | 16 | #define AD_DMA_ADCBA 0x50 /* ADC */ |
17 | #define AD_DMAADCCA 0x54 | 17 | #define AD_DMA_ADCCA 0x54 |
18 | #define AD_DMAADCBC 0x58 | 18 | #define AD_DMA_ADCBC 0x58 |
19 | #define AD_DMAADCCC 0x5c | 19 | #define AD_DMA_ADCCC 0x5c |
20 | #define AD_DMASYNBA 0x60 /* SYN */ | 20 | #define AD_DMA_SYNBA 0x60 /* SYN */ |
21 | #define AD_DMASYNCA 0x64 | 21 | #define AD_DMA_SYNCA 0x64 |
22 | #define AD_DMASYNBC 0x68 | 22 | #define AD_DMA_SYNBC 0x68 |
23 | #define AD_DMASYNCC 0x6c | 23 | #define AD_DMA_SYNCC 0x6c |
24 | #define AD_DMAWAVBA 0x70 /* WAV */ | 24 | #define AD_DMA_WAVBA 0x70 /* WAV */ |
25 | #define AD_DMAWAVCA 0x74 | 25 | #define AD_DMA_WAVCA 0x74 |
26 | #define AD_DMAWAVBC 0x78 | 26 | #define AD_DMA_WAVBC 0x78 |
27 | #define AD_DMAWAVCC 0x7c | 27 | #define AD_DMA_WAVCC 0x7c |
28 | #define AD_DMARESICC 0x80 /* RES interrupt current count */ | 28 | #define AD_DMA_RESICC 0x80 /* RES interrupt current count */ |
29 | #define AD_DMARESIBC 0x84 /* RES interrupt base count */ | 29 | #define AD_DMA_RESIBC 0x84 /* RES interrupt base count */ |
30 | #define AD_DMAADCICC 0x88 /* ADC interrupt current count */ | 30 | #define AD_DMA_ADCICC 0x88 /* ADC interrupt current count */ |
31 | #define AD_DMAADCIBC 0x8c /* ADC interrupt base count */ | 31 | #define AD_DMA_ADCIBC 0x8c /* ADC interrupt base count */ |
32 | #define AD_DMASYNICC 0x90 /* SYN interrupt current count */ | 32 | #define AD_DMA_SYNICC 0x90 /* SYN interrupt current count */ |
33 | #define AD_DMASYNIBC 0x94 /* SYN interrupt base count */ | 33 | #define AD_DMA_SYNIBC 0x94 /* SYN interrupt base count */ |
34 | #define AD_DMAWAVICC 0x98 /* WAV interrupt current count */ | 34 | #define AD_DMA_WAVICC 0x98 /* WAV interrupt current count */ |
35 | #define AD_DMAWAVIBC 0x9c /* WAV interrupt base count */ | 35 | #define AD_DMA_WAVIBC 0x9c /* WAV interrupt base count */ |
36 | #define AD_DMARESCTRL 0xa0 /* RES PCI control/status */ | 36 | #define AD_DMA_RESCTRL 0xa0 /* RES PCI control/status */ |
37 | #define AD_DMAADCCTRL 0xa8 /* ADC PCI control/status */ | 37 | #define AD_DMA_ADCCTRL 0xa8 /* ADC PCI control/status */ |
38 | #define AD_DMASYNCTRL 0xb0 /* SYN PCI control/status */ | 38 | #define AD_DMA_SYNCTRL 0xb0 /* SYN PCI control/status */ |
39 | #define AD_DMAWAVCTRL 0xb8 /* WAV PCI control/status */ | 39 | #define AD_DMA_WAVCTRL 0xb8 /* WAV PCI control/status */ |
40 | #define AD_DMADISR 0xc0 /* PCI DMA intr status */ | 40 | #define AD_DMA_DISR 0xc0 /* PCI DMA intr status */ |
41 | #define AD_DMACHSS 0xc4 /* PCI DMA channel stop status */ | 41 | #define AD_DMA_CHSS 0xc4 /* PCI DMA channel stop status */ |
42 | 42 | ||
43 | #define AD_GPIOIPC 0xc8 /* IO port ctrl */ | 43 | #define AD_GPIO_IPC 0xc8 /* IO port ctrl */ |
44 | #define AD_GPIOOP 0xca /* IO output status */ | 44 | #define AD_GPIO_OP 0xca /* IO output status */ |
45 | #define AD_GPIOIP 0xcc /* IO input status */ | 45 | #define AD_GPIO_IP 0xcc /* IO input status */ |
46 | 46 | ||
47 | /* AC97 registers, 0x100 - 0x17f; see ac97.h */ | 47 | /* AC97 registers, 0x100 - 0x17f; see ac97.h */ |
48 | #define AD_ACIC 0x180 /* AC Link interface ctrl */ | 48 | #define AD_AC97_BASE 0x100 /* ac97 base register */ |
49 | #define AD_AC97_ACIC 0x180 /* AC Link interface ctrl */ | ||
49 | 50 | ||
50 | /* OPL3; BAR1 */ | 51 | /* OPL3; BAR1 */ |
51 | #define AD_OPLM0AS 0x00 /* Music0 address/status */ | 52 | #define AD_OPL_M0AS 0x00 /* Music0 address/status */ |
52 | #define AD_OPLM0DATA 0x01 /* Music0 data */ | 53 | #define AD_OPL_M0DATA 0x01 /* Music0 data */ |
53 | #define AD_OPLM1A 0x02 /* Music1 address */ | 54 | #define AD_OPL_M1A 0x02 /* Music1 address */ |
54 | #define AD_OPLM1DATA 0x03 /* Music1 data */ | 55 | #define AD_OPL_M1DATA 0x03 /* Music1 data */ |
55 | /* 0x04-0x0f reserved */ | 56 | /* 0x04-0x0f reserved */ |
56 | 57 | ||
57 | /* MIDI; BAR2 */ | 58 | /* MIDI; BAR2 */ |
@@ -59,9 +60,9 @@ | |||
59 | #define AD_MISC 0x01 /* MIDI status/cmd */ | 60 | #define AD_MISC 0x01 /* MIDI status/cmd */ |
60 | /* 0x02-0xff reserved */ | 61 | /* 0x02-0xff reserved */ |
61 | 62 | ||
62 | #define AD_DSIOMEMSIZE 512 | 63 | #define AD_DS_IOMEMSIZE 512 |
63 | #define AD_OPLMEMSIZE 16 | 64 | #define AD_OPL_MEMSIZE 16 |
64 | #define AD_MIDIMEMSIZE 16 | 65 | #define AD_MIDI_MEMSIZE 16 |
65 | 66 | ||
66 | #define AD_WAV_STATE 0 | 67 | #define AD_WAV_STATE 0 |
67 | #define AD_ADC_STATE 1 | 68 | #define AD_ADC_STATE 1 |
diff --git a/sound/oss/dmasound/tas_common.c b/sound/oss/dmasound/tas_common.c index 81315996c0f1..882ae98a41b1 100644 --- a/sound/oss/dmasound/tas_common.c +++ b/sound/oss/dmasound/tas_common.c | |||
@@ -195,8 +195,8 @@ tas_init(int driver_id, const char *driver_name) | |||
195 | 195 | ||
196 | printk(KERN_INFO "tas driver [%s])\n", driver_name); | 196 | printk(KERN_INFO "tas driver [%s])\n", driver_name); |
197 | 197 | ||
198 | #ifndef CONFIG_I2C_KEYWEST | 198 | #ifndef CONFIG_I2C_POWERMAC |
199 | request_module("i2c-keywest"); | 199 | request_module("i2c-powermac"); |
200 | #endif | 200 | #endif |
201 | tas_node = find_devices("deq"); | 201 | tas_node = find_devices("deq"); |
202 | if (tas_node == NULL) | 202 | if (tas_node == NULL) |
diff --git a/sound/oss/nm256_audio.c b/sound/oss/nm256_audio.c index 7de079b202f2..6e662ac009ae 100644 --- a/sound/oss/nm256_audio.c +++ b/sound/oss/nm256_audio.c | |||
@@ -960,7 +960,7 @@ static struct ac97_mixer_value_list mixer_defaults[] = { | |||
960 | 960 | ||
961 | 961 | ||
962 | /* Installs the AC97 mixer into CARD. */ | 962 | /* Installs the AC97 mixer into CARD. */ |
963 | static int __init | 963 | static int __devinit |
964 | nm256_install_mixer (struct nm256_info *card) | 964 | nm256_install_mixer (struct nm256_info *card) |
965 | { | 965 | { |
966 | int mixer; | 966 | int mixer; |
@@ -995,7 +995,7 @@ nm256_install_mixer (struct nm256_info *card) | |||
995 | * RAM. | 995 | * RAM. |
996 | */ | 996 | */ |
997 | 997 | ||
998 | static void __init | 998 | static void __devinit |
999 | nm256_peek_for_sig (struct nm256_info *card) | 999 | nm256_peek_for_sig (struct nm256_info *card) |
1000 | { | 1000 | { |
1001 | u32 port1offset | 1001 | u32 port1offset |
@@ -1056,7 +1056,7 @@ nm256_install(struct pci_dev *pcidev, enum nm256rev rev, char *verstr) | |||
1056 | card->playing = 0; | 1056 | card->playing = 0; |
1057 | card->recording = 0; | 1057 | card->recording = 0; |
1058 | card->rev = rev; | 1058 | card->rev = rev; |
1059 | spin_lock_init(&card->lock); | 1059 | spin_lock_init(&card->lock); |
1060 | 1060 | ||
1061 | /* Init the memory port info. */ | 1061 | /* Init the memory port info. */ |
1062 | for (x = 0; x < 2; x++) { | 1062 | for (x = 0; x < 2; x++) { |
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/daca.c b/sound/ppc/daca.c index aa09ebd9ffb8..46eebf5610e3 100644 --- a/sound/ppc/daca.c +++ b/sound/ppc/daca.c | |||
@@ -255,7 +255,7 @@ int __init snd_pmac_daca_init(struct snd_pmac *chip) | |||
255 | 255 | ||
256 | #ifdef CONFIG_KMOD | 256 | #ifdef CONFIG_KMOD |
257 | if (current->fs->root) | 257 | if (current->fs->root) |
258 | request_module("i2c-keywest"); | 258 | request_module("i2c-powermac"); |
259 | #endif /* CONFIG_KMOD */ | 259 | #endif /* CONFIG_KMOD */ |
260 | 260 | ||
261 | mix = kmalloc(sizeof(*mix), GFP_KERNEL); | 261 | mix = kmalloc(sizeof(*mix), GFP_KERNEL); |
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/ppc/tumbler.c b/sound/ppc/tumbler.c index 1146dd882bb1..70e4ebc70260 100644 --- a/sound/ppc/tumbler.c +++ b/sound/ppc/tumbler.c | |||
@@ -1313,7 +1313,7 @@ int __init snd_pmac_tumbler_init(struct snd_pmac *chip) | |||
1313 | 1313 | ||
1314 | #ifdef CONFIG_KMOD | 1314 | #ifdef CONFIG_KMOD |
1315 | if (current->fs->root) | 1315 | if (current->fs->root) |
1316 | request_module("i2c-keywest"); | 1316 | request_module("i2c-powermac"); |
1317 | #endif /* CONFIG_KMOD */ | 1317 | #endif /* CONFIG_KMOD */ |
1318 | 1318 | ||
1319 | mix = kmalloc(sizeof(*mix), GFP_KERNEL); | 1319 | mix = kmalloc(sizeof(*mix), GFP_KERNEL); |
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", |