From: Tejun Heo Subject: x86: disallow DAC for MCP51 PCI bridge References: bnc#463829, bnc#482220 Patch-mainline: not yet MCP51 corrupts DAC transfers. Disallow it. Reported by pgnet on bnc#463829. https://bugzilla.novell.com/show_bug.cgi?id=463829 Signed-off-by: Tejun Heo Reported-by: pgnet Signed-off-by: Tejun Heo Automatically created from "patches.arch/x86-mcp51-no-dac" by xen-port-patches.py --- head-2010-11-22.orig/arch/x86/kernel/pci-dma-xen.c 2010-11-24 11:26:31.000000000 +0100 +++ head-2010-11-22/arch/x86/kernel/pci-dma-xen.c 2010-11-24 11:43:02.000000000 +0100 @@ -411,4 +411,18 @@ static __devinit void via_no_dac(struct } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); + +/* + * MCP51 PCI bridge corrupts data for DAC. Disable it. Reported in + * bnc#463829. + */ +static __devinit void mcp51_no_dac(struct pci_dev *dev) +{ + if (forbid_dac == 0) { + printk(KERN_INFO + "PCI: MCP51 PCI bridge detected. Disabling DAC.\n"); + forbid_dac = 1; + } +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x026f, mcp51_no_dac); #endif