PCI: Get rid of dev->has_secondary_link flag
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 22 Aug 2019 08:55:53 +0000 (11:55 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Sat, 7 Sep 2019 12:45:31 +0000 (07:45 -0500)
commitca78410403dd64ac0ee0e3cc8646b38335271bfd
tree2822ba00e849f240e6a97cb7b5b326c22f914ba2
parent984998e3404e9073479281dbba8af36b104e8c00
PCI: Get rid of dev->has_secondary_link flag

In some systems, the Device/Port Type in the PCI Express Capabilities
register incorrectly identifies upstream ports as downstream ports.

d0751b98dfa3 ("PCI: Add dev->has_secondary_link to track downstream PCIe
links") addressed this by adding pci_dev.has_secondary_link, which is set
for downstream ports.  But this is confusing because pci_pcie_type()
sometimes gives the wrong answer, and it's not obvious that we should use
pci_dev.has_secondary_link instead.

Reduce the confusion by correcting the type of the port itself so that
pci_pcie_type() returns the actual type regardless of what the Device/Port
Type register claims it is.  Update the users to call pci_pcie_type() and
pcie_downstream_port() accordingly, and remove pci_dev.has_secondary_link
completely.

Link: https://lore.kernel.org/linux-pci/20190703133953.GK128603@google.com/
Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20190822085553.62697-2-mika.westerberg@linux.intel.com
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/pci/pci.c
drivers/pci/pcie/aspm.c
drivers/pci/pcie/err.c
drivers/pci/probe.c
drivers/pci/vc.c
include/linux/pci.h