From: David Henningsson Date: Mon, 4 Oct 2010 10:02:14 +0000 (+0200) Subject: ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA controllers X-Git-Tag: upstream/snapshot3+hdmi~12401^2~35^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bdd9ef24cd343c508ed93f1e08f30d4db595b754;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git ALSA: HDA: Correctly apply position_fix quirks for ATI and VIA controllers Position_fix quirks for specific machines now override the default position_fix behavior for all HDA controllers. BugLink: http://launchpad.net/bugs/465942 BugLink: http://launchpad.net/bugs/580749 BugLink: http://launchpad.net/bugs/587546 Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 38b063e..5cbea85 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -2315,14 +2315,6 @@ static int __devinit check_position_fix(struct azx *chip, int fix) return fix; } - /* Check VIA/ATI HD Audio Controller exist */ - switch (chip->driver_type) { - case AZX_DRIVER_VIA: - case AZX_DRIVER_ATI: - /* Use link position directly, avoid any transfer problem. */ - return POS_FIX_VIACOMBO; - } - q = snd_pci_quirk_lookup(chip->pci, position_fix_list); if (q) { printk(KERN_INFO @@ -2331,6 +2323,15 @@ static int __devinit check_position_fix(struct azx *chip, int fix) q->value, q->subvendor, q->subdevice); return q->value; } + + /* Check VIA/ATI HD Audio Controller exist */ + switch (chip->driver_type) { + case AZX_DRIVER_VIA: + case AZX_DRIVER_ATI: + /* Use link position directly, avoid any transfer problem. */ + return POS_FIX_VIACOMBO; + } + return POS_FIX_AUTO; }