From: Tejun Heo Subject: x86: disallow DAC for MCP51 PCI bridge References: bnc#463829 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 --- arch/x86/kernel/pci-dma.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) Index: linux-2.6.27-SLE11_BRANCH/arch/x86/kernel/pci-dma.c =================================================================== --- linux-2.6.27-SLE11_BRANCH.orig/arch/x86/kernel/pci-dma.c +++ linux-2.6.27-SLE11_BRANCH/arch/x86/kernel/pci-dma.c @@ -415,4 +415,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