Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50e3bbf9 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Use LPIB for ATI/AMD chipsets as default



ATI and AMD chipsets seem not providing the proper position-buffer
information, and it also doesn't provide FIFO register required by
VIACOMBO fix.  It's better to use LPIB for these.

Reported-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
Cc: <stable@kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 314c3ff4
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -2367,9 +2367,16 @@ static int __devinit check_position_fix(struct azx *chip, int 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;
	case AZX_DRIVER_ATI:
		/* ATI chipsets don't work well with position-buffer */
		return POS_FIX_LPIB;
	case AZX_DRIVER_GENERIC:
		/* AMD chipsets also don't work with position-buffer */
		if (chip->pci->vendor == PCI_VENDOR_ID_AMD)
			return POS_FIX_LPIB;
		break;
	}

	return POS_FIX_AUTO;