Re: [rfc, PATCH v1 0/7] PCI: introduce p2sb helper
From: Henning Schild
Date: Thu Jun 10 2021 - 05:10:53 EST
Am Mon, 8 Mar 2021 14:20:13 +0200
schrieb Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>:
> 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
>