projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
bfc4560
)
PCI: Fix enabling of PASID on RC integrated endpoints
author
Felix Kuehling
<
[email protected]
>
Mon, 10 Sep 2018 19:27:42 +0000
(15:27 -0400)
committer
Bjorn Helgaas
<
[email protected]
>
Wed, 12 Sep 2018 02:46:49 +0000
(21:46 -0500)
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.
Link:
https://bugzilla.kernel.org/show_bug.cgi?id=201079
Fixes: 7ce3f912ae ("PCI: Enable PASID only if entire path supports End-End TLP prefixes")
Signed-off-by: Felix Kuehling <
[email protected]
>
Signed-off-by: Bjorn Helgaas <
[email protected]
>
drivers/pci/probe.c
patch
|
blob
|
history
diff --git
a/drivers/pci/probe.c
b/drivers/pci/probe.c
index ec784009a36b8d7b694ebb8f0b26a3f3810636f5..201f9e5ff55c0a97e330d9dcf139f8d2cd96bad1 100644
(file)
--- 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);