From: Linus Torvalds Date: Sat, 28 May 2011 02:45:28 +0000 (-0700) Subject: ALSA: fix hda AZX_DCAPS_NO_TCSEL quirk check in driver_caps X-Git-Tag: v3.0-rc1~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46f2cc80514e389bacfb642a32a4181fa1f1d20b;p=platform%2Fkernel%2Flinux-3.10.git ALSA: fix hda AZX_DCAPS_NO_TCSEL quirk check in driver_caps Commit 9477c58e3308 ("ALSA: hda - Reorganize controller quriks with bit flags") changed the driver type compares into various quirk bits. However, the check for AZX_DCAPS_NO_TCSEL got reverted: instead of clearing TCSEL for chipsets that have that standard capability, it cleared then when the NO_TCSEL bit was set. This can lead to noise and repeated sounds - a weird "echo" behavior. As the comment just above says: "Ensuring these bits are 0 clears playback static on some HD Audio codecs". Which is definitely true at least on my Core i5 Westmere system. Cc: Takashi Iwai Signed-off-by: Linus Torvalds --- diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 3487056..486f6de 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1085,7 +1085,7 @@ static void azx_init_pci(struct azx *chip) * codecs. * The PCI register TCSEL is defined in the Intel manuals. */ - if (chip->driver_caps & AZX_DCAPS_NO_TCSEL) { + if (!(chip->driver_caps & AZX_DCAPS_NO_TCSEL)) { snd_printdd(SFX "Clearing TCSEL\n"); update_pci_byte(chip->pci, ICH6_PCIREG_TCSEL, 0x07, 0); }