On Mon, Sep 10, 2018 at 03:27:42PM -0400, Felix Kuehling wrote: > Set the eetlp_prefix_path on PCIE_EXP_TYPE_RC_END devices to allow PASID > to be enabled on them. This fixes IOMMUv2 initialization on AMD Carrizo > APUs. > > Fixes: 7ce3f912ae ("PCI: Enable PASID only if entire path supports End-End TLP prefixes") > Link: https://bugzilla.kernel.org/show_bug.cgi?id=201079 > Signed-off-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> Applied to for-linus for v4.19, thanks! > --- > drivers/pci/probe.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index ec78400..201f9e5 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -2074,6 +2074,7 @@ static void pci_configure_eetlp_prefix(struct pci_dev *dev) > { > #ifdef CONFIG_PCI_PASID > struct pci_dev *bridge; > + int pcie_type; > u32 cap; > > if (!pci_is_pcie(dev)) > @@ -2083,7 +2084,9 @@ static void pci_configure_eetlp_prefix(struct pci_dev *dev) > if (!(cap & PCI_EXP_DEVCAP2_EE_PREFIX)) > return; > > - if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) > + pcie_type = pci_pcie_type(dev); > + if (pcie_type == PCI_EXP_TYPE_ROOT_PORT || > + pcie_type == PCI_EXP_TYPE_RC_END) > dev->eetlp_prefix_path = 1; > else { > bridge = pci_upstream_bridge(dev); > -- > 2.7.4 >