Message ID | 20220913175019.1483658-2-vicamo.yang@canonical.com |
---|---|
State | New |
Headers | show |
Series | use IOMMU passthrough mode for Intel IPUs on Intel Raptor Lake platforms | expand |
On Wed, Sep 14, 2022 at 1:50 AM You-Sheng Yang <vicamo.yang@canonical.com> wrote: > > From: zouxiaoh <xiaohong.zou@intel.com> > > BugLink: https://bugs.launchpad.net/bugs/1989041 > > Intel IPU(Image Processing Unit) has its own (IO)MMU hardware, > The IPU driver allocates its own page table that is not mapped > via the DMA, and thus the Intel IOMMU driver blocks access giving > this error: DMAR: DRHD: handling fault status reg 3 DMAR: > [DMA Read] Request device [00:05.0] PASID ffffffff > fault addr 76406000 [fault reason 06] PTE Read access is not set > As IPU is not an external facing device which is not risky, so use > IOMMU passthrough mode for Intel IPUs. > > (backported from https://github.com/intel/ipu6-drivers/blob/89c6b99e4bec00a04b53f37cd8c3c01ce824a4ab/patch/IOMMU-passthrough-for-intel-ipu.diff) > Signed-off-by: You-Sheng Yang <vicamo.yang@canonical.com> > --- > drivers/iommu/intel/iommu.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c > index 5894a2ad638f..b602fd5084cd 100644 > --- a/drivers/iommu/intel/iommu.c > +++ b/drivers/iommu/intel/iommu.c > @@ -38,7 +38,8 @@ > #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) > #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) > #define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \ > - ((pdev)->device == 0x9a19 || \ > + ((pdev)->device == 0xa75d || \ > + (pdev)->device == 0x9a19 || \ Since it's not in IPU6 driver, maybe it's better to put it upstream? Kai-Heng > (pdev)->device == 0x9a39 || \ > (pdev)->device == 0x4e19 || \ > (pdev)->device == 0x465d || \ > -- > 2.37.2 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 5894a2ad638f..b602fd5084cd 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -38,7 +38,8 @@ #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) #define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \ - ((pdev)->device == 0x9a19 || \ + ((pdev)->device == 0xa75d || \ + (pdev)->device == 0x9a19 || \ (pdev)->device == 0x9a39 || \ (pdev)->device == 0x4e19 || \ (pdev)->device == 0x465d || \