Am Mon, 31 Jan 2022 17:13:38 +0200 schrieb Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>: > There are a few users and at least one more is coming (*) that would > like to utilize P2SB mechanism of hiding and unhiding a device from > the PCI configuration space. > > Here is the series to consolidate p2sb handling code for existing > users and provide a generic way for new comer(s). > > It also includes a patch to enable GPIO controllers on Apollo Lake > when it's used with ABL bootloader w/o ACPI support. > > The patch that bring the helper ("platform/x86/intel: Add Primary > to Sideband (P2SB) bridge support") has a commit message that > sheds a light on what the P2SB is and why this is needed. > > The changes made in v2 do not change the main idea and the > functionality in a big scale. What we need is probably one more > (RE-)test done by Henning. Just actually read all this the first time, sorry for that! Will take care of testing on a few of those Simatic IPCs and write patches to switch to P2SB ... possibly pinctrl where that might pop up without ACPI. I guess p5 will make pinctrl show up on what i would call a 127E ... apollo lake. > I hope to have it merged to v5.18-rc1 that > Siemens can develop their changes based on this series. Will do. Sorry for the delay after having passed you i now seem to slow you down. Henning > I have tested this on Apollo Lake platform (I'm able to see SPI NOR > and since we have an ACPI device for GPIO I do not see any attempts > to recreate one). > > *) One in this series, and one is a due after merge in the Simatic > IPC drivers > > The series may be routed either via MFD (and I guess Lee would prefer > that) or via PDx86, whichever seems better for you, folks. As of > today patches are ACKed by the respective maintainers, but I2C one > and one of the MFD. > > Wolfram, can you ACK the patch against i2c-i801 driver, if you have no > objections? > > Changes in v4: > - added tag to the entire series (Hans) > - added tag to pin control patch (Mika) > - dropped PCI core changes (PCI core doesn't want modifications to be > made) > - as a consequence of the above merged necessary bits into p2sb.c > - added a check that p2sb is really hidden (Hans) > - added EDAC patches (reviewed by maintainer internally) > > Changes in v3: > - resent with cover letter > > Changes in v2: > - added parentheses around bus in macros (Joe) > - added tag (Jean) > - fixed indentation and wrapping in the header (Christoph) > - moved out of PCI realm to PDx86 as the best common denominator > (Bjorn) > - added a verbose commit message to explain P2SB thingy (Bjorn) > - converted first parameter from pci_dev to pci_bus > - made first two parameters (bus and devfn) optional (Henning, Lee) > - added Intel pin control patch to the series (Henning, Mika) > - fixed English style in the commit message of one of MFD patch (Lee) > - added tags to my MFD LPC ICH patches (Lee) > - used consistently (c) (Lee) > - made indexing for MFD cell and resource arrays (Lee) > - fixed the resource size in i801 (Jean) > > Andy Shevchenko (6): > pinctrl: intel: Check against matching data instead of ACPI > companion mfd: lpc_ich: Factor out lpc_ich_enable_spi_write() > mfd: lpc_ich: Switch to generic p2sb_bar() > i2c: i801: convert to use common P2SB accessor > EDAC, pnd2: Use proper I/O accessors and address space annotation > EDAC, pnd2: convert to use common P2SB accessor > > Jonathan Yong (1): > platform/x86/intel: Add Primary to Sideband (P2SB) bridge support > > Tan Jui Nee (1): > mfd: lpc_ich: Add support for pinctrl in non-ACPI system > > drivers/edac/Kconfig | 1 + > drivers/edac/pnd2_edac.c | 62 ++--- > drivers/i2c/busses/Kconfig | 1 + > drivers/i2c/busses/i2c-i801.c | 39 +--- > drivers/mfd/Kconfig | 1 + > drivers/mfd/lpc_ich.c | 136 +++++++++-- > drivers/pinctrl/intel/pinctrl-intel.c | 14 +- > drivers/platform/x86/intel/Kconfig | 12 + > drivers/platform/x86/intel/Makefile | 1 + > drivers/platform/x86/intel/p2sb.c | 305 > +++++++++++++++++++++++++ include/linux/platform_data/x86/p2sb.h | > 27 +++ 11 files changed, 500 insertions(+), 99 deletions(-) > create mode 100644 drivers/platform/x86/intel/p2sb.c > create mode 100644 include/linux/platform_data/x86/p2sb.h >