aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2021-09-02 14:56:42 -0500
committerBjorn Helgaas <bhelgaas@google.com>2021-09-02 14:56:42 -0500
commit34627f4dcd0f4fefab9e0eb88a45aad4178064f7 (patch)
tree8f6e38891f6831aa515ec57e903a81d3797e8cf2 /drivers/pci
parentMerge branch 'pci/irq' (diff)
parentPCI/portdrv: Enable Bandwidth Notification only if port supports it (diff)
downloadlinux-dev-34627f4dcd0f4fefab9e0eb88a45aad4178064f7.tar.xz
linux-dev-34627f4dcd0f4fefab9e0eb88a45aad4178064f7.zip
Merge branch 'pci/portdrv'
- Enable Bandwidth Notification only if port supports it (Stuart Hayes) * pci/portdrv: PCI/portdrv: Enable Bandwidth Notification only if port supports it
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pcie/portdrv_core.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
index e1fed6649c41..3ee63968deaa 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -257,8 +257,13 @@ static int get_port_device_capability(struct pci_dev *dev)
services |= PCIE_PORT_SERVICE_DPC;
if (pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM ||
- pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
- services |= PCIE_PORT_SERVICE_BWNOTIF;
+ pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) {
+ u32 linkcap;
+
+ pcie_capability_read_dword(dev, PCI_EXP_LNKCAP, &linkcap);
+ if (linkcap & PCI_EXP_LNKCAP_LBNC)
+ services |= PCIE_PORT_SERVICE_BWNOTIF;
+ }
return services;
}