[PATCH v1 0/9] PCI: Simplify PCIe port driver

From: Bjorn Helgaas
Date: Wed Mar 07 2018 - 01:13:31 EST


This is an attempt to move a few things out of the port driver.

Patches 1-2 move a workaround for a BIOS PME issue from the port driver to
the PCI core, so it doesn't depend on CONFIG_PCIEPORTBUS.

Patch 3 extends that workaround so it works for Root Complex Event
Collectors. I haven't seen reports of this being a problem, but I think we
should handle Event Collector PMEs the same as Root Port PMEs.

Patch 4 disables the port driver completely for "pcie_ports=compat". We
used to register the driver, claim port devices, enable them, etc., as part
of supporting the above BIOS workaround.

Patch 5 removes a port driver link order dependency.

Patch 6 removes the unused VC service.

Patch 7 simplifies the _OSC code path by keeping more of the details in the
ACPI pci_root.c driver.

Patch 8 removes an unnecessary #include.

Patch 9 removes the "pcie_hp=nomsi" parameter. This was added to work
around an issue when shutting down devices, but a later patch fixed the
root cause, and I don't think we need such a specific parameter any more
(we still have "pci=nomsi").

---

Bjorn Helgaas (9):
PCI/PM: Move pcie_clear_root_pme_status() to core
PCI/PM: Clear PCIe PME Status bit in core, not PCIe port driver
PCI/PM: Clear PCIe PME Status bit for Root Complex Event Collectors
PCI/portdrv: Disable port driver in compat mode
PCI/portdrv: Remove pcie_port_bus_type link order dependency
PCI/portdrv: Remove unused PCIE_PORT_SERVICE_VC
PCI/portdrv: Simplify PCIe feature permission checking
PCI/portdrv: Remove unnecessary include of <linux/pci-aspm.h>
PCI/portdrv: Remove "pcie_hp=nomsi" kernel parameter


Documentation/admin-guide/kernel-parameters.txt | 4 -
drivers/acpi/pci_root.c | 13 +++-
drivers/pci/pci-driver.c | 60 ++++++++++++++++++
drivers/pci/pci.c | 9 +++
drivers/pci/pci.h | 1
drivers/pci/pcie/Makefile | 3 -
drivers/pci/pcie/portdrv.h | 27 --------
drivers/pci/pcie/portdrv_acpi.c | 2 -
drivers/pci/pcie/portdrv_bus.c | 56 -----------------
drivers/pci/pcie/portdrv_core.c | 77 ++++++++++-------------
drivers/pci/pcie/portdrv_pci.c | 40 +-----------
drivers/pci/probe.c | 10 +++
include/linux/pci.h | 3 +
include/linux/pcieport_if.h | 4 -
14 files changed, 131 insertions(+), 178 deletions(-)
delete mode 100644 drivers/pci/pcie/portdrv_bus.c