Re: [rfc, PATCH v1 0/7] PCI: introduce p2sb helper
From: Henning Schild <hidden>
Date: 2021-06-10 09:10:52
Also in:
linux-pci, lkml
Am Mon, 8 Mar 2021 14:20:13 +0200 schrieb Andy Shevchenko [off-list ref]:
There are a few users and even at least one more is coming that would like to utilize p2sb mechanisms like hide/unhide a device from PCI configuration space. Here is the series to deduplicate existing users and provide a generic way for new comers. It also includes a patch to enable GPIO controllers on Apollo Lake when it's used with ABL bootloader w/o ACPI support.
That bit is especially interesting. Making pinctl*lake initialize when ACPI IDs are missing and p2sb is hidden. However i have seen pinctl-broxton get confused because it was trying to come up twice on a system that has the ACPI entries. Once as "INT3452" and second as "apollolake-pinctrl". They should probably mutually exclude each other. And the two different names for "the same"? thing make it impossible to write a driver using those GPIOs. Unless it would try and look up both variants or not looking up with gpiochip.label. I would also need that "enable GPIO w/o ACPI" for skylake. I think it would be generally useful if the GPIO controllers would be enabled not depending on ACPI, and coming up with only one "label" to build on top. regards, Henning
Please, comment on the approach and individual patches.
(Since it's cross subsystem, the PCI seems like a main one and
I think it makes sense to route it thru it with immutable tag
or branch provided for the others).
Andy Shevchenko (5):
PCI: Introduce pci_bus_*() printing macros when device is not
available
PCI: Convert __pci_read_base() to __pci_bus_read_base()
mfd: lpc_ich: Factor out lpc_ich_enable_spi_write()
mfd: lpc_ich: Switch to generic pci_p2sb_bar()
i2c: i801: convert to use common P2SB accessor
Jonathan Yong (1):
PCI: New Primary to Sideband (P2SB) bridge support library
Tan Jui Nee (1):
mfd: lpc_ich: Add support for pinctrl in non-ACPI system
drivers/i2c/busses/Kconfig | 1 +
drivers/i2c/busses/i2c-i801.c | 40 +++-------
drivers/mfd/Kconfig | 1 +
drivers/mfd/lpc_ich.c | 135
+++++++++++++++++++++++++++++----- drivers/pci/Kconfig |
8 ++ drivers/pci/Makefile | 1 +
drivers/pci/pci-p2sb.c | 89 ++++++++++++++++++++++
drivers/pci/pci.h | 13 +++-
drivers/pci/probe.c | 81 ++++++++++----------
include/linux/pci-p2sb.h | 28 +++++++
include/linux/pci.h | 9 +++
11 files changed, 313 insertions(+), 93 deletions(-)
create mode 100644 drivers/pci/pci-p2sb.c
create mode 100644 include/linux/pci-p2sb.h