Loading arch/ia64/include/asm/iommu.h +0 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,5 @@ extern int force_iommu, no_iommu; extern int iommu_detected; extern void iommu_dma_init(void); extern void machvec_init(const char *name); extern int forbid_dac; #endif arch/ia64/kernel/pci-dma.c +0 −7 Original line number Diff line number Diff line Loading @@ -89,13 +89,6 @@ int iommu_dma_supported(struct device *dev, u64 mask) { struct dma_mapping_ops *ops = get_dma_ops(dev); #ifdef CONFIG_PCI if (mask > 0xffffffff && forbid_dac > 0) { dev_info(dev, "Disallowing DAC for device\n"); return 0; } #endif if (ops->dma_supported_op) return ops->dma_supported_op(dev, mask); Loading arch/x86/include/asm/iommu.h +0 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ extern struct dma_mapping_ops nommu_dma_ops; extern int force_iommu, no_iommu; extern int iommu_detected; extern int dmar_disabled; extern int forbid_dac; extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len); Loading arch/x86/kernel/pci-dma.c +16 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ #include <asm/calgary.h> #include <asm/amd_iommu.h> static int forbid_dac __read_mostly; struct dma_mapping_ops *dma_ops; EXPORT_SYMBOL(dma_ops); Loading Loading @@ -291,3 +293,17 @@ void pci_iommu_shutdown(void) } /* Must execute after PCI subsystem */ fs_initcall(pci_iommu_init); #ifdef CONFIG_PCI /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ static __devinit void via_no_dac(struct pci_dev *dev) { if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { printk(KERN_INFO "PCI: VIA PCI bridge detected." "Disabling DAC.\n"); forbid_dac = 1; } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); #endif drivers/pci/quirks.c +0 −14 Original line number Diff line number Diff line Loading @@ -43,20 +43,6 @@ static void __devinit quirk_mellanox_tavor(struct pci_dev *dev) DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX,PCI_DEVICE_ID_MELLANOX_TAVOR,quirk_mellanox_tavor); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX,PCI_DEVICE_ID_MELLANOX_TAVOR_BRIDGE,quirk_mellanox_tavor); /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ int forbid_dac __read_mostly; EXPORT_SYMBOL(forbid_dac); static __devinit void via_no_dac(struct pci_dev *dev) { if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { dev_info(&dev->dev, "VIA PCI bridge detected. Disabling DAC.\n"); forbid_dac = 1; } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); /* Deal with broken BIOS'es that neglect to enable passive release, which can cause problems in combination with the 82441FX/PPro MTRRs */ static void quirk_passive_release(struct pci_dev *dev) Loading Loading
arch/ia64/include/asm/iommu.h +0 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,5 @@ extern int force_iommu, no_iommu; extern int iommu_detected; extern void iommu_dma_init(void); extern void machvec_init(const char *name); extern int forbid_dac; #endif
arch/ia64/kernel/pci-dma.c +0 −7 Original line number Diff line number Diff line Loading @@ -89,13 +89,6 @@ int iommu_dma_supported(struct device *dev, u64 mask) { struct dma_mapping_ops *ops = get_dma_ops(dev); #ifdef CONFIG_PCI if (mask > 0xffffffff && forbid_dac > 0) { dev_info(dev, "Disallowing DAC for device\n"); return 0; } #endif if (ops->dma_supported_op) return ops->dma_supported_op(dev, mask); Loading
arch/x86/include/asm/iommu.h +0 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ extern struct dma_mapping_ops nommu_dma_ops; extern int force_iommu, no_iommu; extern int iommu_detected; extern int dmar_disabled; extern int forbid_dac; extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len); Loading
arch/x86/kernel/pci-dma.c +16 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ #include <asm/calgary.h> #include <asm/amd_iommu.h> static int forbid_dac __read_mostly; struct dma_mapping_ops *dma_ops; EXPORT_SYMBOL(dma_ops); Loading Loading @@ -291,3 +293,17 @@ void pci_iommu_shutdown(void) } /* Must execute after PCI subsystem */ fs_initcall(pci_iommu_init); #ifdef CONFIG_PCI /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ static __devinit void via_no_dac(struct pci_dev *dev) { if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { printk(KERN_INFO "PCI: VIA PCI bridge detected." "Disabling DAC.\n"); forbid_dac = 1; } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); #endif
drivers/pci/quirks.c +0 −14 Original line number Diff line number Diff line Loading @@ -43,20 +43,6 @@ static void __devinit quirk_mellanox_tavor(struct pci_dev *dev) DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX,PCI_DEVICE_ID_MELLANOX_TAVOR,quirk_mellanox_tavor); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX,PCI_DEVICE_ID_MELLANOX_TAVOR_BRIDGE,quirk_mellanox_tavor); /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ int forbid_dac __read_mostly; EXPORT_SYMBOL(forbid_dac); static __devinit void via_no_dac(struct pci_dev *dev) { if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { dev_info(&dev->dev, "VIA PCI bridge detected. Disabling DAC.\n"); forbid_dac = 1; } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); /* Deal with broken BIOS'es that neglect to enable passive release, which can cause problems in combination with the 82441FX/PPro MTRRs */ static void quirk_passive_release(struct pci_dev *dev) Loading