Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Just a few driver-specific fixes for ASoC and HD-audio."

* tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda - Fix no sound from ALC662 after Windows reboot
ASoC: tlv320aic3x: Fix codec pll configure bug
ASoC: wm2200: Add missing BCLK rate

+31 -3
+28
sound/pci/hda/patch_realtek.c
··· 6688 6688 {} 6689 6689 }; 6690 6690 6691 + static void alc662_fill_coef(struct hda_codec *codec) 6692 + { 6693 + int val, coef; 6694 + 6695 + coef = alc_get_coef0(codec); 6696 + 6697 + switch (codec->vendor_id) { 6698 + case 0x10ec0662: 6699 + if ((coef & 0x00f0) == 0x0030) { 6700 + val = alc_read_coef_idx(codec, 0x4); /* EAPD Ctrl */ 6701 + alc_write_coef_idx(codec, 0x4, val & ~(1<<10)); 6702 + } 6703 + break; 6704 + case 0x10ec0272: 6705 + case 0x10ec0273: 6706 + case 0x10ec0663: 6707 + case 0x10ec0665: 6708 + case 0x10ec0670: 6709 + case 0x10ec0671: 6710 + case 0x10ec0672: 6711 + val = alc_read_coef_idx(codec, 0xd); /* EAPD Ctrl */ 6712 + alc_write_coef_idx(codec, 0xd, val | (1<<14)); 6713 + break; 6714 + } 6715 + } 6691 6716 6692 6717 /* 6693 6718 */ ··· 6731 6706 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; 6732 6707 6733 6708 alc_fix_pll_init(codec, 0x20, 0x04, 15); 6709 + 6710 + spec->init_hook = alc662_fill_coef; 6711 + alc662_fill_coef(codec); 6734 6712 6735 6713 alc_pick_fixup(codec, alc662_fixup_models, 6736 6714 alc662_fixup_tbl, alc662_fixups);
+1 -3
sound/soc/codecs/tlv320aic3x.c
··· 935 935 } 936 936 937 937 found: 938 - data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG); 939 - snd_soc_write(codec, AIC3X_PLL_PROGA_REG, 940 - data | (pll_p << PLLP_SHIFT)); 938 + snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p); 941 939 snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG, 942 940 pll_r << PLLR_SHIFT); 943 941 snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT);
+1
sound/soc/codecs/tlv320aic3x.h
··· 166 166 167 167 /* PLL registers bitfields */ 168 168 #define PLLP_SHIFT 0 169 + #define PLLP_MASK 7 169 170 #define PLLQ_SHIFT 3 170 171 #define PLLR_SHIFT 0 171 172 #define PLLJ_SHIFT 2
+1
sound/soc/codecs/wm2200.c
··· 1491 1491 1492 1492 static int wm2200_bclk_rates_cd[WM2200_NUM_BCLK_RATES] = { 1493 1493 5644800, 1494 + 3763200, 1494 1495 2882400, 1495 1496 1881600, 1496 1497 1411200,