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:
ALSA: HDA: Fix automute on Thinkpad L412/L512
ALSA: HDA: Fix dmesg output of HDMI supported bits
ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture
ASoC: correct link specifications for corgi, poodle and spitz
ASoC: Samsung: Fix outdated cpu_dai_name for s3c24xx i2s
ASoC: Fix codec device id format used by some dai_links
ALSA: azt3328 - fix broken AZF_FMT_XLATE macro
ALSA: Xonar, CS43xx: Don't overrun static array
ASoC: Handle low measured DC offsets for wm_hubs devices
ASoC: da8xx/omap-l1xx: match codec_name with i2c ids
ASoC: WM8994: fix wrong value in tristate function
ASoC: WM8995: Fix incorrect use of snd_soc_update_bits()

+54 -56
+4 -1
sound/atmel/ac97c.c
··· 33 #include <linux/dw_dmac.h> 34 35 #include <mach/cpu.h> 36 - #include <mach/hardware.h> 37 #include <mach/gpio.h> 38 39 #include "ac97c.h" 40
··· 33 #include <linux/dw_dmac.h> 34 35 #include <mach/cpu.h> 36 #include <mach/gpio.h> 37 + 38 + #ifdef CONFIG_ARCH_AT91 39 + #include <mach/hardware.h> 40 + #endif 41 42 #include "ac97c.h" 43
+16 -22
sound/pci/azt3328.c
··· 979 980 snd_azf3328_dbgcallenter(); 981 switch (bitrate) { 982 - #define AZF_FMT_XLATE(in_freq, out_bits) \ 983 - do { \ 984 - case AZF_FREQ_ ## in_freq: \ 985 - freq = SOUNDFORMAT_FREQ_ ## out_bits; \ 986 - break; \ 987 - } while (0); 988 - AZF_FMT_XLATE(4000, SUSPECTED_4000) 989 - AZF_FMT_XLATE(4800, SUSPECTED_4800) 990 - /* the AZF3328 names it "5510" for some strange reason: */ 991 - AZF_FMT_XLATE(5512, 5510) 992 - AZF_FMT_XLATE(6620, 6620) 993 - AZF_FMT_XLATE(8000, 8000) 994 - AZF_FMT_XLATE(9600, 9600) 995 - AZF_FMT_XLATE(11025, 11025) 996 - AZF_FMT_XLATE(13240, SUSPECTED_13240) 997 - AZF_FMT_XLATE(16000, 16000) 998 - AZF_FMT_XLATE(22050, 22050) 999 - AZF_FMT_XLATE(32000, 32000) 1000 default: 1001 snd_printk(KERN_WARNING "unknown bitrate %d, assuming 44.1kHz!\n", bitrate); 1002 /* fall-through */ 1003 - AZF_FMT_XLATE(44100, 44100) 1004 - AZF_FMT_XLATE(48000, 48000) 1005 - AZF_FMT_XLATE(66200, SUSPECTED_66200) 1006 - #undef AZF_FMT_XLATE 1007 } 1008 /* val = 0xff07; 3m27.993s (65301Hz; -> 64000Hz???) hmm, 66120, 65967, 66123 */ 1009 /* val = 0xff09; 17m15.098s (13123,478Hz; -> 12000Hz???) hmm, 13237.2Hz? */
··· 979 980 snd_azf3328_dbgcallenter(); 981 switch (bitrate) { 982 + case AZF_FREQ_4000: freq = SOUNDFORMAT_FREQ_SUSPECTED_4000; break; 983 + case AZF_FREQ_4800: freq = SOUNDFORMAT_FREQ_SUSPECTED_4800; break; 984 + case AZF_FREQ_5512: 985 + /* the AZF3328 names it "5510" for some strange reason */ 986 + freq = SOUNDFORMAT_FREQ_5510; break; 987 + case AZF_FREQ_6620: freq = SOUNDFORMAT_FREQ_6620; break; 988 + case AZF_FREQ_8000: freq = SOUNDFORMAT_FREQ_8000; break; 989 + case AZF_FREQ_9600: freq = SOUNDFORMAT_FREQ_9600; break; 990 + case AZF_FREQ_11025: freq = SOUNDFORMAT_FREQ_11025; break; 991 + case AZF_FREQ_13240: freq = SOUNDFORMAT_FREQ_SUSPECTED_13240; break; 992 + case AZF_FREQ_16000: freq = SOUNDFORMAT_FREQ_16000; break; 993 + case AZF_FREQ_22050: freq = SOUNDFORMAT_FREQ_22050; break; 994 + case AZF_FREQ_32000: freq = SOUNDFORMAT_FREQ_32000; break; 995 default: 996 snd_printk(KERN_WARNING "unknown bitrate %d, assuming 44.1kHz!\n", bitrate); 997 /* fall-through */ 998 + case AZF_FREQ_44100: freq = SOUNDFORMAT_FREQ_44100; break; 999 + case AZF_FREQ_48000: freq = SOUNDFORMAT_FREQ_48000; break; 1000 + case AZF_FREQ_66200: freq = SOUNDFORMAT_FREQ_SUSPECTED_66200; break; 1001 } 1002 /* val = 0xff07; 3m27.993s (65301Hz; -> 64000Hz???) hmm, 66120, 65967, 66123 */ 1003 /* val = 0xff09; 17m15.098s (13123,478Hz; -> 12000Hz???) hmm, 13237.2Hz? */
+1 -1
sound/pci/hda/hda_eld.c
··· 381 snd_print_pcm_rates(a->rates, buf, sizeof(buf)); 382 383 if (a->format == AUDIO_CODING_TYPE_LPCM) 384 - snd_print_pcm_bits(a->sample_bits, buf2 + 8, sizeof(buf2 - 8)); 385 else if (a->max_bitrate) 386 snprintf(buf2, sizeof(buf2), 387 ", max bitrate = %d", a->max_bitrate);
··· 381 snd_print_pcm_rates(a->rates, buf, sizeof(buf)); 382 383 if (a->format == AUDIO_CODING_TYPE_LPCM) 384 + snd_print_pcm_bits(a->sample_bits, buf2 + 8, sizeof(buf2) - 8); 385 else if (a->max_bitrate) 386 snprintf(buf2, sizeof(buf2), 387 ", max bitrate = %d", a->max_bitrate);
+4 -2
sound/pci/hda/patch_realtek.c
··· 14954 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 14955 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), 14956 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 14957 - SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), 14958 - SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), 14959 SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), 14960 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), 14961 SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), 14962 {}
··· 14954 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 14955 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), 14956 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 14957 SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), 14958 + SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE), 14959 + SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), 14960 + SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE), 14961 + SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE), 14962 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), 14963 SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), 14964 {}
+1 -1
sound/pci/oxygen/xonar_cs43xx.c
··· 392 unsigned int i; 393 394 snd_iprintf(buffer, "\nCS4398: 7?"); 395 - for (i = 2; i <= 8; ++i) 396 snd_iprintf(buffer, " %02x", data->cs4398_regs[i]); 397 snd_iprintf(buffer, "\n"); 398 dump_cs4362a_registers(data, buffer);
··· 392 unsigned int i; 393 394 snd_iprintf(buffer, "\nCS4398: 7?"); 395 + for (i = 2; i < 8; ++i) 396 snd_iprintf(buffer, " %02x", data->cs4398_regs[i]); 397 snd_iprintf(buffer, "\n"); 398 dump_cs4362a_registers(data, buffer);
+1 -1
sound/soc/atmel/snd-soc-afeb9260.c
··· 129 .cpu_dai_name = "atmel-ssc-dai.0", 130 .codec_dai_name = "tlv320aic23-hifi", 131 .platform_name = "atmel_pcm-audio", 132 - .codec_name = "tlv320aic23-codec.0-0x1a", 133 .init = afeb9260_tlv320aic23_init, 134 .ops = &afeb9260_ops, 135 };
··· 129 .cpu_dai_name = "atmel-ssc-dai.0", 130 .codec_dai_name = "tlv320aic23-hifi", 131 .platform_name = "atmel_pcm-audio", 132 + .codec_name = "tlv320aic23-codec.0-001a", 133 .init = afeb9260_tlv320aic23_init, 134 .ops = &afeb9260_ops, 135 };
+1 -1
sound/soc/blackfin/bf5xx-ssm2602.c
··· 119 .cpu_dai_name = "bf5xx-i2s", 120 .codec_dai_name = "ssm2602-hifi", 121 .platform_name = "bf5xx-pcm-audio", 122 - .codec_name = "ssm2602-codec.0-0x1b", 123 .ops = &bf5xx_ssm2602_ops, 124 }; 125
··· 119 .cpu_dai_name = "bf5xx-i2s", 120 .codec_dai_name = "ssm2602-hifi", 121 .platform_name = "bf5xx-pcm-audio", 122 + .codec_name = "ssm2602-codec.0-001b", 123 .ops = &bf5xx_ssm2602_ops, 124 }; 125
+1 -1
sound/soc/codecs/wm8994.c
··· 2386 else 2387 val = 0; 2388 2389 - return snd_soc_update_bits(codec, reg, mask, reg); 2390 } 2391 2392 #define WM8994_RATES SNDRV_PCM_RATE_8000_96000
··· 2386 else 2387 val = 0; 2388 2389 + return snd_soc_update_bits(codec, reg, mask, val); 2390 } 2391 2392 #define WM8994_RATES SNDRV_PCM_RATE_8000_96000
+1 -1
sound/soc/codecs/wm8995.c
··· 1223 else 1224 val = 0; 1225 1226 - return snd_soc_update_bits(codec, reg, mask, reg); 1227 } 1228 1229 /* The size in bits of the FLL divide multiplied by 10
··· 1223 else 1224 val = 0; 1225 1226 + return snd_soc_update_bits(codec, reg, mask, val); 1227 } 1228 1229 /* The size in bits of the FLL divide multiplied by 10
+7 -8
sound/soc/codecs/wm_hubs.c
··· 91 static void calibrate_dc_servo(struct snd_soc_codec *codec) 92 { 93 struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec); 94 u16 reg, reg_l, reg_r, dcs_cfg; 95 96 /* If we're using a digital only path and have a previously ··· 150 hubs->dcs_codes); 151 152 /* HPOUT1L */ 153 - if (reg_l + hubs->dcs_codes > 0 && 154 - reg_l + hubs->dcs_codes < 0xff) 155 - reg_l += hubs->dcs_codes; 156 - dcs_cfg = reg_l << WM8993_DCS_DAC_WR_VAL_1_SHIFT; 157 158 /* HPOUT1R */ 159 - if (reg_r + hubs->dcs_codes > 0 && 160 - reg_r + hubs->dcs_codes < 0xff) 161 - reg_r += hubs->dcs_codes; 162 - dcs_cfg |= reg_r; 163 164 dev_dbg(codec->dev, "DCS result: %x\n", dcs_cfg); 165
··· 91 static void calibrate_dc_servo(struct snd_soc_codec *codec) 92 { 93 struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec); 94 + s8 offset; 95 u16 reg, reg_l, reg_r, dcs_cfg; 96 97 /* If we're using a digital only path and have a previously ··· 149 hubs->dcs_codes); 150 151 /* HPOUT1L */ 152 + offset = reg_l; 153 + offset += hubs->dcs_codes; 154 + dcs_cfg = (u8)offset << WM8993_DCS_DAC_WR_VAL_1_SHIFT; 155 156 /* HPOUT1R */ 157 + offset = reg_r; 158 + offset += hubs->dcs_codes; 159 + dcs_cfg |= (u8)offset; 160 161 dev_dbg(codec->dev, "DCS result: %x\n", dcs_cfg); 162
+1 -1
sound/soc/davinci/davinci-evm.c
··· 223 .stream_name = "AIC3X", 224 .cpu_dai_name= "davinci-mcasp.0", 225 .codec_dai_name = "tlv320aic3x-hifi", 226 - .codec_name = "tlv320aic3x-codec.0-001a", 227 .platform_name = "davinci-pcm-audio", 228 .init = evm_aic3x_init, 229 .ops = &evm_ops,
··· 223 .stream_name = "AIC3X", 224 .cpu_dai_name= "davinci-mcasp.0", 225 .codec_dai_name = "tlv320aic3x-hifi", 226 + .codec_name = "tlv320aic3x-codec.1-0018", 227 .platform_name = "davinci-pcm-audio", 228 .init = evm_aic3x_init, 229 .ops = &evm_ops,
+2 -2
sound/soc/pxa/corgi.c
··· 307 static struct snd_soc_dai_link corgi_dai = { 308 .name = "WM8731", 309 .stream_name = "WM8731", 310 - .cpu_dai_name = "pxa-is2-dai", 311 .codec_dai_name = "wm8731-hifi", 312 .platform_name = "pxa-pcm-audio", 313 - .codec_name = "wm8731-codec-0.001a", 314 .init = corgi_wm8731_init, 315 .ops = &corgi_ops, 316 };
··· 307 static struct snd_soc_dai_link corgi_dai = { 308 .name = "WM8731", 309 .stream_name = "WM8731", 310 + .cpu_dai_name = "pxa2xx-i2s", 311 .codec_dai_name = "wm8731-hifi", 312 .platform_name = "pxa-pcm-audio", 313 + .codec_name = "wm8731-codec-0.001b", 314 .init = corgi_wm8731_init, 315 .ops = &corgi_ops, 316 };
+1 -1
sound/soc/pxa/poodle.c
··· 276 .cpu_dai_name = "pxa2xx-i2s", 277 .codec_dai_name = "wm8731-hifi", 278 .platform_name = "pxa-pcm-audio", 279 - .codec_name = "wm8731-codec.0-001a", 280 .init = poodle_wm8731_init, 281 .ops = &poodle_ops, 282 };
··· 276 .cpu_dai_name = "pxa2xx-i2s", 277 .codec_dai_name = "wm8731-hifi", 278 .platform_name = "pxa-pcm-audio", 279 + .codec_name = "wm8731-codec.0-001b", 280 .init = poodle_wm8731_init, 281 .ops = &poodle_ops, 282 };
+2 -2
sound/soc/pxa/spitz.c
··· 315 static struct snd_soc_dai_link spitz_dai = { 316 .name = "wm8750", 317 .stream_name = "WM8750", 318 - .cpu_dai_name = "pxa-is2", 319 .codec_dai_name = "wm8750-hifi", 320 .platform_name = "pxa-pcm-audio", 321 - .codec_name = "wm8750-codec.0-001a", 322 .init = spitz_wm8750_init, 323 .ops = &spitz_ops, 324 };
··· 315 static struct snd_soc_dai_link spitz_dai = { 316 .name = "wm8750", 317 .stream_name = "WM8750", 318 + .cpu_dai_name = "pxa2xx-i2s", 319 .codec_dai_name = "wm8750-hifi", 320 .platform_name = "pxa-pcm-audio", 321 + .codec_name = "wm8750-codec.0-001b", 322 .init = spitz_wm8750_init, 323 .ops = &spitz_ops, 324 };
+3 -3
sound/soc/samsung/neo1973_gta02_wm8753.c
··· 397 { /* Hifi Playback - for similatious use with voice below */ 398 .name = "WM8753", 399 .stream_name = "WM8753 HiFi", 400 - .cpu_dai_name = "s3c24xx-i2s", 401 .codec_dai_name = "wm8753-hifi", 402 .init = neo1973_gta02_wm8753_init, 403 .platform_name = "samsung-audio", 404 - .codec_name = "wm8753-codec.0-0x1a", 405 .ops = &neo1973_gta02_hifi_ops, 406 }, 407 { /* Voice via BT */ ··· 410 .cpu_dai_name = "bluetooth-dai", 411 .codec_dai_name = "wm8753-voice", 412 .ops = &neo1973_gta02_voice_ops, 413 - .codec_name = "wm8753-codec.0-0x1a", 414 .platform_name = "samsung-audio", 415 }, 416 };
··· 397 { /* Hifi Playback - for similatious use with voice below */ 398 .name = "WM8753", 399 .stream_name = "WM8753 HiFi", 400 + .cpu_dai_name = "s3c24xx-iis", 401 .codec_dai_name = "wm8753-hifi", 402 .init = neo1973_gta02_wm8753_init, 403 .platform_name = "samsung-audio", 404 + .codec_name = "wm8753-codec.0-001a", 405 .ops = &neo1973_gta02_hifi_ops, 406 }, 407 { /* Voice via BT */ ··· 410 .cpu_dai_name = "bluetooth-dai", 411 .codec_dai_name = "wm8753-voice", 412 .ops = &neo1973_gta02_voice_ops, 413 + .codec_name = "wm8753-codec.0-001a", 414 .platform_name = "samsung-audio", 415 }, 416 };
+3 -3
sound/soc/samsung/neo1973_wm8753.c
··· 559 .name = "WM8753", 560 .stream_name = "WM8753 HiFi", 561 .platform_name = "samsung-audio", 562 - .cpu_dai_name = "s3c24xx-i2s", 563 .codec_dai_name = "wm8753-hifi", 564 - .codec_name = "wm8753-codec.0-0x1a", 565 .init = neo1973_wm8753_init, 566 .ops = &neo1973_hifi_ops, 567 }, ··· 571 .platform_name = "samsung-audio", 572 .cpu_dai_name = "bluetooth-dai", 573 .codec_dai_name = "wm8753-voice", 574 - .codec_name = "wm8753-codec.0-0x1a", 575 .ops = &neo1973_voice_ops, 576 }, 577 };
··· 559 .name = "WM8753", 560 .stream_name = "WM8753 HiFi", 561 .platform_name = "samsung-audio", 562 + .cpu_dai_name = "s3c24xx-iis", 563 .codec_dai_name = "wm8753-hifi", 564 + .codec_name = "wm8753-codec.0-001a", 565 .init = neo1973_wm8753_init, 566 .ops = &neo1973_hifi_ops, 567 }, ··· 571 .platform_name = "samsung-audio", 572 .cpu_dai_name = "bluetooth-dai", 573 .codec_dai_name = "wm8753-voice", 574 + .codec_name = "wm8753-codec.0-001a", 575 .ops = &neo1973_voice_ops, 576 }, 577 };
+2 -2
sound/soc/samsung/s3c24xx_simtec_hermes.c
··· 94 static struct snd_soc_dai_link simtec_dai_aic33 = { 95 .name = "tlv320aic33", 96 .stream_name = "TLV320AIC33", 97 - .codec_name = "tlv320aic3x-codec.0-0x1a", 98 - .cpu_dai_name = "s3c24xx-i2s", 99 .codec_dai_name = "tlv320aic3x-hifi", 100 .platform_name = "samsung-audio", 101 .init = simtec_hermes_init,
··· 94 static struct snd_soc_dai_link simtec_dai_aic33 = { 95 .name = "tlv320aic33", 96 .stream_name = "TLV320AIC33", 97 + .codec_name = "tlv320aic3x-codec.0-001a", 98 + .cpu_dai_name = "s3c24xx-iis", 99 .codec_dai_name = "tlv320aic3x-hifi", 100 .platform_name = "samsung-audio", 101 .init = simtec_hermes_init,
+2 -2
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c
··· 85 static struct snd_soc_dai_link simtec_dai_aic23 = { 86 .name = "tlv320aic23", 87 .stream_name = "TLV320AIC23", 88 - .codec_name = "tlv320aic3x-codec.0-0x1a", 89 - .cpu_dai_name = "s3c24xx-i2s", 90 .codec_dai_name = "tlv320aic3x-hifi", 91 .platform_name = "samsung-audio", 92 .init = simtec_tlv320aic23_init,
··· 85 static struct snd_soc_dai_link simtec_dai_aic23 = { 86 .name = "tlv320aic23", 87 .stream_name = "TLV320AIC23", 88 + .codec_name = "tlv320aic3x-codec.0-001a", 89 + .cpu_dai_name = "s3c24xx-iis", 90 .codec_dai_name = "tlv320aic3x-hifi", 91 .platform_name = "samsung-audio", 92 .init = simtec_tlv320aic23_init,
+1 -1
sound/soc/samsung/s3c24xx_uda134x.c
··· 228 .stream_name = "UDA134X", 229 .codec_name = "uda134x-hifi", 230 .codec_dai_name = "uda134x-hifi", 231 - .cpu_dai_name = "s3c24xx-i2s", 232 .ops = &s3c24xx_uda134x_ops, 233 .platform_name = "samsung-audio", 234 };
··· 228 .stream_name = "UDA134X", 229 .codec_name = "uda134x-hifi", 230 .codec_dai_name = "uda134x-hifi", 231 + .cpu_dai_name = "s3c24xx-iis", 232 .ops = &s3c24xx_uda134x_ops, 233 .platform_name = "samsung-audio", 234 };