[PATCH v6 00/12] platform/x86: introduce p2sb_bar() helper

From: Andy Shevchenko
Date: Mon Jun 06 2022 - 12:42:10 EST


There are a few users 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 to 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 brings 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.

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).

The series is ready to be merged via MFD tree, but see below.

The series also includes updates for Simatic IPC drivers that partially
tagged by respective maintainers (the main question is if Pavel is okay
with the last three patches, since I believe Hans is okay with removing
some code under PDx86). Hence the first 8 patches can be merged right
away and the rest when Pavel does his review.

Changes in v6:
- added tag to patch 5 (Lee)
- incorporated Henning's series on top of v5

Changes in v5:
- rewritten patch 1 to use pci_scan_single_device() (Lukas, Bjorn)
- rebased patch 2 on top of the new Intel SPI NOR codebase
- fixed a potential bug and rewritten resource filling in patch 5 (Lee)
- added many different tags in a few patches (Jean, Wolfram, Henning)

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

Henning Schild (4):
watchdog: simatic-ipc-wdt: convert to use P2SB accessor
leds: simatic-ipc-leds: convert to use P2SB accessor
platform/x86: simatic-ipc: drop custom P2SB bar code
leds: simatic-ipc-leds-gpio: add GPIO version of Siemens driver

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/leds/simple/Kconfig | 6 +-
drivers/leds/simple/Makefile | 1 +
drivers/leds/simple/simatic-ipc-leds-gpio.c | 105 ++++++++++++
drivers/leds/simple/simatic-ipc-leds.c | 80 +--------
drivers/mfd/Kconfig | 1 +
drivers/mfd/lpc_ich.c | 161 ++++++++++++++----
drivers/pinctrl/intel/pinctrl-intel.c | 14 +-
drivers/platform/x86/intel/Kconfig | 12 ++
drivers/platform/x86/intel/Makefile | 2 +
drivers/platform/x86/intel/p2sb.c | 133 +++++++++++++++
drivers/platform/x86/simatic-ipc.c | 43 +----
drivers/watchdog/Kconfig | 1 +
drivers/watchdog/simatic-ipc-wdt.c | 15 +-
include/linux/platform_data/x86/p2sb.h | 28 +++
.../platform_data/x86/simatic-ipc-base.h | 2 -
19 files changed, 464 insertions(+), 243 deletions(-)
create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
create mode 100644 drivers/platform/x86/intel/p2sb.c
create mode 100644 include/linux/platform_data/x86/p2sb.h


base-commit: 40b58e42584bf5bd9230481dc8946f714fb387de
--
2.35.1