Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ASoC: omap: N810: Don't select CONFIG_OMAP_MUX but make it as dependency
ALSA: hda: Use "alienware" model quirk for another SSID
ASoC: WM8731: Fix incorrect mask for bypass path disable
s6105-ipcam: fix compilation
s6000-pcm: fix compilation
s6000-i2s: fix compilation
ASoC: Fix missing spin_unlock_irqrestore
ALSA: Fix SNDCTL_DSP_RESET ioctl for OSS emulation
ASoC: Add missing dev_set_drvdata in p1022_ds_probe
ASoC: Add missing dev_set_drvdata in mpc8610_hpcd_probe
ASoC: Remove unneeded !! operations while checking return value of nuc900_checkready
ASoC: Fix compile error for nuc900-pcm.c
ASoC: Fix prototype for nuc900_ac97_probe and nuc900_ac97_remove
ASoC: Fix compile error for nuc900-ac97.c
ALSA: hda: Use BIOS auto-parsing instead of existing model quirk for MEDION MD2

+35 -27
+11 -8
sound/core/oss/pcm_oss.c
··· 1510 static int snd_pcm_oss_reset(struct snd_pcm_oss_file *pcm_oss_file) 1511 { 1512 struct snd_pcm_substream *substream; 1513 1514 - substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK]; 1515 - if (substream != NULL) { 1516 snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); 1517 - substream->runtime->oss.prepare = 1; 1518 - } 1519 - substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE]; 1520 - if (substream != NULL) { 1521 - snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); 1522 - substream->runtime->oss.prepare = 1; 1523 } 1524 return 0; 1525 }
··· 1510 static int snd_pcm_oss_reset(struct snd_pcm_oss_file *pcm_oss_file) 1511 { 1512 struct snd_pcm_substream *substream; 1513 + struct snd_pcm_runtime *runtime; 1514 + int i; 1515 1516 + for (i = 0; i < 2; i++) { 1517 + substream = pcm_oss_file->streams[i]; 1518 + if (!substream) 1519 + continue; 1520 + runtime = substream->runtime; 1521 snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); 1522 + runtime->oss.prepare = 1; 1523 + runtime->oss.buffer_used = 0; 1524 + runtime->oss.prev_hw_ptr_period = 0; 1525 + runtime->oss.period_ptr = 0; 1526 } 1527 return 0; 1528 }
-1
sound/pci/hda/patch_realtek.c
··· 9865 SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763), 9866 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), 9867 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), 9868 - SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), 9869 SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG), 9870 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), 9871 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
··· 9865 SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763), 9866 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), 9867 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), 9868 SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG), 9869 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), 9870 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
+2
sound/pci/hda/patch_sigmatel.c
··· 1627 static struct snd_pci_quirk stac92hd73xx_codec_id_cfg_tbl[] = { 1628 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a1, 1629 "Alienware M17x", STAC_ALIENWARE_M17X), 1630 {} /* terminator */ 1631 }; 1632
··· 1627 static struct snd_pci_quirk stac92hd73xx_codec_id_cfg_tbl[] = { 1628 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a1, 1629 "Alienware M17x", STAC_ALIENWARE_M17X), 1630 + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x043a, 1631 + "Alienware M17x", STAC_ALIENWARE_M17X), 1632 {} /* terminator */ 1633 }; 1634
+1 -1
sound/soc/codecs/wm8731.c
··· 526 snd_soc_update_bits(codec, WM8731_RINVOL, 0x100, 0); 527 528 /* Disable bypass path by default */ 529 - snd_soc_update_bits(codec, WM8731_APANA, 0x4, 0); 530 531 snd_soc_add_controls(codec, wm8731_snd_controls, 532 ARRAY_SIZE(wm8731_snd_controls));
··· 526 snd_soc_update_bits(codec, WM8731_RINVOL, 0x100, 0); 527 528 /* Disable bypass path by default */ 529 + snd_soc_update_bits(codec, WM8731_APANA, 0x8, 0); 530 531 snd_soc_add_controls(codec, wm8731_snd_controls, 532 ARRAY_SIZE(wm8731_snd_controls));
+1
sound/soc/fsl/mpc8610_hpcd.c
··· 498 dev_err(&pdev->dev, "platform device add failed\n"); 499 goto error; 500 } 501 502 of_node_put(codec_np); 503
··· 498 dev_err(&pdev->dev, "platform device add failed\n"); 499 goto error; 500 } 501 + dev_set_drvdata(&pdev->dev, sound_device); 502 503 of_node_put(codec_np); 504
+1
sound/soc/fsl/p1022_ds.c
··· 498 dev_err(&pdev->dev, "platform device add failed\n"); 499 goto error; 500 } 501 502 of_node_put(codec_np); 503
··· 498 dev_err(&pdev->dev, "platform device add failed\n"); 499 goto error; 500 } 501 + dev_set_drvdata(&pdev->dev, sound_device); 502 503 of_node_put(codec_np); 504
+7 -8
sound/soc/nuc900/nuc900-ac97.c
··· 49 mutex_lock(&ac97_mutex); 50 51 val = nuc900_checkready(); 52 - if (!!val) { 53 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 54 goto out; 55 } ··· 102 mutex_lock(&ac97_mutex); 103 104 tmp = nuc900_checkready(); 105 - if (!!tmp) 106 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 107 108 /* clear the R_WB bit and write register index */ ··· 149 udelay(100); 150 151 val = nuc900_checkready(); 152 - if (!!val) 153 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 154 155 mutex_unlock(&ac97_mutex); ··· 263 return ret; 264 } 265 266 - static int nuc900_ac97_probe(struct platform_device *pdev, 267 - struct snd_soc_dai *dai) 268 { 269 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; 270 unsigned long val; ··· 283 return 0; 284 } 285 286 - static void nuc900_ac97_remove(struct platform_device *pdev, 287 - struct snd_soc_dai *dai) 288 { 289 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; 290 291 clk_disable(nuc900_audio->clk); 292 } 293 294 static struct snd_soc_dai_ops nuc900_ac97_dai_ops = { ··· 312 .channels_max = 2, 313 }, 314 .ops = &nuc900_ac97_dai_ops, 315 - } 316 317 static int __devinit nuc900_ac97_drvprobe(struct platform_device *pdev) 318 {
··· 49 mutex_lock(&ac97_mutex); 50 51 val = nuc900_checkready(); 52 + if (val) { 53 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 54 goto out; 55 } ··· 102 mutex_lock(&ac97_mutex); 103 104 tmp = nuc900_checkready(); 105 + if (tmp) 106 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 107 108 /* clear the R_WB bit and write register index */ ··· 149 udelay(100); 150 151 val = nuc900_checkready(); 152 + if (val) 153 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); 154 155 mutex_unlock(&ac97_mutex); ··· 263 return ret; 264 } 265 266 + static int nuc900_ac97_probe(struct snd_soc_dai *dai) 267 { 268 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; 269 unsigned long val; ··· 284 return 0; 285 } 286 287 + static int nuc900_ac97_remove(struct snd_soc_dai *dai) 288 { 289 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; 290 291 clk_disable(nuc900_audio->clk); 292 + return 0; 293 } 294 295 static struct snd_soc_dai_ops nuc900_ac97_dai_ops = { ··· 313 .channels_max = 2, 314 }, 315 .ops = &nuc900_ac97_dai_ops, 316 + }; 317 318 static int __devinit nuc900_ac97_drvprobe(struct platform_device *pdev) 319 {
+2
sound/soc/nuc900/nuc900-audio.h
··· 110 111 }; 112 113 #endif /*end _NUC900_AUDIO_H */
··· 110 111 }; 112 113 + extern struct nuc900_audio *nuc900_ac97_data; 114 + 115 #endif /*end _NUC900_AUDIO_H */
+6 -5
sound/soc/nuc900/nuc900-pcm.c
··· 50 unsigned long flags; 51 int ret = 0; 52 53 - spin_lock_irqsave(&nuc900_audio->lock, flags); 54 - 55 ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); 56 if (ret < 0) 57 return ret; 58 59 nuc900_audio->substream = substream; 60 nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr; ··· 169 struct snd_pcm_runtime *runtime = substream->runtime; 170 struct nuc900_audio *nuc900_audio = runtime->private_data; 171 unsigned long flags, val; 172 173 spin_lock_irqsave(&nuc900_audio->lock, flags); 174 ··· 198 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); 199 break; 200 default: 201 - return -EINVAL; 202 } 203 spin_unlock_irqrestore(&nuc900_audio->lock, flags); 204 - return 0; 205 } 206 207 static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd) ··· 333 .ops = &nuc900_dma_ops, 334 .pcm_new = nuc900_dma_new, 335 .pcm_free = nuc900_dma_free_dma_buffers, 336 - } 337 338 static int __devinit nuc900_soc_platform_probe(struct platform_device *pdev) 339 {
··· 50 unsigned long flags; 51 int ret = 0; 52 53 ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); 54 if (ret < 0) 55 return ret; 56 + 57 + spin_lock_irqsave(&nuc900_audio->lock, flags); 58 59 nuc900_audio->substream = substream; 60 nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr; ··· 169 struct snd_pcm_runtime *runtime = substream->runtime; 170 struct nuc900_audio *nuc900_audio = runtime->private_data; 171 unsigned long flags, val; 172 + int ret = 0; 173 174 spin_lock_irqsave(&nuc900_audio->lock, flags); 175 ··· 197 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); 198 break; 199 default: 200 + ret = -EINVAL; 201 } 202 spin_unlock_irqrestore(&nuc900_audio->lock, flags); 203 + return ret; 204 } 205 206 static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd) ··· 332 .ops = &nuc900_dma_ops, 333 .pcm_new = nuc900_dma_new, 334 .pcm_free = nuc900_dma_free_dma_buffers, 335 + }; 336 337 static int __devinit nuc900_soc_platform_probe(struct platform_device *pdev) 338 {
+1 -1
sound/soc/omap/Kconfig
··· 12 config SND_OMAP_SOC_N810 13 tristate "SoC Audio support for Nokia N810" 14 depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C 15 select SND_OMAP_SOC_MCBSP 16 - select OMAP_MUX 17 select SND_SOC_TLV320AIC3X 18 help 19 Say Y if you want to add support for SoC audio on Nokia N810.
··· 12 config SND_OMAP_SOC_N810 13 tristate "SoC Audio support for Nokia N810" 14 depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C 15 + depends on OMAP_MUX 16 select SND_OMAP_SOC_MCBSP 17 select SND_SOC_TLV320AIC3X 18 help 19 Say Y if you want to add support for SoC audio on Nokia N810.
+1 -1
sound/soc/s6000/s6000-i2s.c
··· 434 .rate_max = 1562500, 435 }, 436 .ops = &s6000_i2s_dai_ops, 437 - } 438 439 static int __devinit s6000_i2s_probe(struct platform_device *pdev) 440 {
··· 434 .rate_max = 1562500, 435 }, 436 .ops = &s6000_i2s_dai_ops, 437 + }; 438 439 static int __devinit s6000_i2s_probe(struct platform_device *pdev) 440 {
+1 -1
sound/soc/s6000/s6000-pcm.c
··· 473 } 474 475 res = request_irq(params->irq, s6000_pcm_irq, IRQF_SHARED, 476 - s6000_soc_platform.name, pcm); 477 if (res) { 478 printk(KERN_ERR "s6000-pcm couldn't get IRQ\n"); 479 return res;
··· 473 } 474 475 res = request_irq(params->irq, s6000_pcm_irq, IRQF_SHARED, 476 + "s6000-audio", pcm); 477 if (res) { 478 printk(KERN_ERR "s6000-pcm couldn't get IRQ\n"); 479 return res;
+1 -1
sound/soc/s6000/s6105-ipcam.c
··· 167 168 snd_soc_dapm_sync(codec); 169 170 - snd_ctl_add(codec->snd_card, snd_ctl_new1(&audio_out_mux, codec)); 171 172 return 0; 173 }
··· 167 168 snd_soc_dapm_sync(codec); 169 170 + snd_ctl_add(codec->card->snd_card, snd_ctl_new1(&audio_out_mux, codec)); 171 172 return 0; 173 }