On Tue, 2016-01-26 at 11:31 +0100, Jacek Lawrynowicz wrote: > MIC x200 NTB forwards PCIe traffic using multiple alien RID. They have to > be added as aliases to the DMA device in order to allow buffer access > when IOMMU is enabled. > > Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@xxxxxxxxx> > --- > drivers/pci/quirks.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index b094061..bc23bc8 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -3703,6 +3703,21 @@ DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias); > DECLARE_PCI_FIXUP_HEADER(0x8086, 0x244e, quirk_use_pcie_bridge_dma_alias); > > /* > + * MIC x200 NTB forwards PCIe traffic using multiple alien RID. They have to > + * be added as aliases to the DMA device in order to allow buffer access > + * when IOMMU is enabled. > + */ > +static void quirk_mic_x200_dma_alias(struct pci_dev *pdev) > +{ > + if (iommu_present(pdev->dev.bus)) { Why do we need this test? The alias simply goes unused without an IOMMU, right? > + pci_enable_dma_alias(pdev, PCI_DEVFN(0x10, 0x0)); > + pci_enable_dma_alias(pdev, PCI_DEVFN(0x11, 0x0)); > + pci_enable_dma_alias(pdev, PCI_DEVFN(0x12, 0x3)); > + } > +} > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2264, quirk_mic_x200_dma_alias); > + > +/* > * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) > * class code. Fix it. > */ -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html