Linus, after the hot-fix, here is my main pull request for I2C: * big refactoring of the PASEMI driver to support the Apple M1 * huge improvements to the XIIC in terms of locking and SMP safety * refactoring and clean ups for the i801 driver * and a usual bunch of small driver updates The latest two patches look like they have been applied only yesterday, but they have been in the tree before and got lost for reasons I sadly cannot recall or reproduce. They have been reviewed on October, 17th. Please pull. Thanks, Wolfram The following changes since commit 64570fbc14f8d7cb3fe3995f20e26bc25ce4b2cc: Linux 5.15-rc5 (2021-10-10 17:01:59 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-mergewindow for you to fetch changes up to c6f49acb52c79f8e84af2eda4fc002a2068a6c9e: i2c: amd-mp2-plat: ACPI: Use ACPI_COMPANION() directly (2021-11-07 14:57:41 +0100) ---------------------------------------------------------------- Andy Shevchenko (1): i2c: i801: Add support for Intel Ice Lake PCH-N Christophe JAILLET (2): i2c: switch from 'pci_' to 'dma_' API i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()' Dmitry Osipenko (1): i2c: tegra: Ensure that device is suspended before driver is removed Heiner Kallweit (6): i2c: i801: Improve is_dell_system_with_lis3lv02d i2c: i801: Remove not needed check for PCI_COMMAND_INTX_DISABLE i2c: i801: Improve i801_acpi_probe/remove functions i2c: i801: Improve i801_add_mux i2c: i801: Use PCI bus rescan mutex to protect P2SB access i2c: i801: Stop using pm_runtime_set_autosuspend_delay(-1) Jarkko Nikula (1): i2c: i801: Fix incorrect and needless software PEC disabling Jie Deng (1): i2c: virtio: update the maintainer to Conghui Kewei Xu (3): i2c: mediatek: fixing the incorrect register offset i2c: mediatek: Reset the handshake signal between i2c and dma i2c: mediatek: Dump i2c/dma register when a timeout occurs Krzysztof Kozlowski (2): i2c: pxa: drop unneeded MODULE_ALIAS i2c: exynos: describe drivers in KConfig Marek Vasut (6): i2c: xiic: Fix broken locking on tx_msg i2c: xiic: Drop broken interrupt handler i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process() i2c: xiic: Switch from waitqueue to completion i2c: xiic: Only ever transfer single message i2c: xiic: Fix RX IRQ busy check Michael Brunner (1): i2c: kempld: deprecate class based instantiation Raag Jadav (1): dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05 Rafael J. Wysocki (1): i2c: amd-mp2-plat: ACPI: Use ACPI_COMPANION() directly Randy Dunlap (1): i2c: qup: fix a trivial typo Sven Peter (11): dt-bindings: i2c: Add Apple I2C controller bindings i2c: pasemi: Use io{read,write}32 i2c: pasemi: Use dev_name instead of port number i2c: pasemi: Remove usage of pci_dev i2c: pasemi: Split off common probing code i2c: pasemi: Split pci driver to its own file i2c: pasemi: Move common reset code to own function i2c: pasemi: Allow to configure bus frequency i2c: pasemi: Refactor _probe to use devm_* i2c: pasemi: Add Apple platform driver i2c: pasemi: Set enable bit for Apple variant Tian Tao (1): i2c: qup: move to use request_irq by IRQF_NO_AUTOEN flag Vadim Pasternak (2): i2c: mlxcpld: Reduce polling time for performance improvement i2c: mlxcpld: Allow flexible polling time setting for I2C transactions Wolfram Sang (3): i2c: rcar: enable interrupts before starting transfer Merge branch 'i2c/for-current' into i2c/for-mergewindow Merge tag 'at24-updates-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow zhaoxiao (1): i2c: bcm-kona: Fix return value in probe() with much appreciated quality assurance from ---------------------------------------------------------------- Andy Shevchenko (2): (Rev.) i2c: i801: Use PCI bus rescan mutex to protect P2SB access (Rev.) i2c: i801: Remove not needed check for PCI_COMMAND_INTX_DISABLE Arnd Bergmann (10): (Rev.) i2c: pasemi: Set enable bit for Apple variant (Rev.) i2c: pasemi: Add Apple platform driver (Rev.) i2c: pasemi: Refactor _probe to use devm_* (Rev.) i2c: pasemi: Allow to configure bus frequency (Rev.) i2c: pasemi: Move common reset code to own function (Rev.) i2c: pasemi: Split pci driver to its own file (Rev.) i2c: pasemi: Split off common probing code (Rev.) i2c: pasemi: Remove usage of pci_dev (Rev.) i2c: pasemi: Use io{read,write}32 (Rev.) dt-bindings: i2c: Add Apple I2C controller bindings Chen-Yu Tsai (1): (Rev.) i2c: mediatek: fixing the incorrect register offset Christian Zigotzky (11): (Test) i2c: pasemi: Set enable bit for Apple variant (Test) i2c: pasemi: Add Apple platform driver (Test) i2c: pasemi: Refactor _probe to use devm_* (Test) i2c: pasemi: Allow to configure bus frequency (Test) i2c: pasemi: Move common reset code to own function (Test) i2c: pasemi: Split pci driver to its own file (Test) i2c: pasemi: Split off common probing code (Test) i2c: pasemi: Remove usage of pci_dev (Test) i2c: pasemi: Use dev_name instead of port number (Test) i2c: pasemi: Use io{read,write}32 (Test) dt-bindings: i2c: Add Apple I2C controller bindings Jean Delvare (10): (Rev.) i2c: i801: Add support for Intel Ice Lake PCH-N (Rev.) i2c: i801: Fix incorrect and needless software PEC disabling (Rev.) i2c: i801: Stop using pm_runtime_set_autosuspend_delay(-1) (Rev.) i2c: i801: Use PCI bus rescan mutex to protect P2SB access (Rev.) i2c: i801: Improve i801_add_mux (Test) i2c: i801: Improve i801_add_mux (Rev.) i2c: i801: Improve i801_acpi_probe/remove functions (Test) i2c: i801: Improve i801_acpi_probe/remove functions (Rev.) i2c: i801: Remove not needed check for PCI_COMMAND_INTX_DISABLE (Rev.) i2c: i801: Improve is_dell_system_with_lis3lv02d Mika Westerberg (1): (Rev.) i2c: i801: Improve i801_acpi_probe/remove functions Niklas Söderlund (1): (Rev.) i2c: rcar: enable interrupts before starting transfer Qii Wang (3): (Rev.) i2c: mediatek: Dump i2c/dma register when a timeout occurs (Rev.) i2c: mediatek: Reset the handshake signal between i2c and dma (Rev.) i2c: mediatek: fixing the incorrect register offset Rob Herring (1): (Rev.) dt-bindings: i2c: Add Apple I2C controller bindings Ulrich Hecht (1): (Rev.) i2c: rcar: enable interrupts before starting transfer Documentation/devicetree/bindings/eeprom/at24.yaml | 6 + .../devicetree/bindings/i2c/apple,i2c.yaml | 61 ++++++++ MAINTAINERS | 2 +- drivers/i2c/busses/Kconfig | 16 +- drivers/i2c/busses/Makefile | 3 + drivers/i2c/busses/i2c-amd-mp2-pci.c | 4 +- drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 +- drivers/i2c/busses/i2c-bcm-kona.c | 2 +- drivers/i2c/busses/i2c-i801.c | 83 ++++------- drivers/i2c/busses/i2c-ismt.c | 12 +- drivers/i2c/busses/i2c-kempld.c | 3 +- drivers/i2c/busses/i2c-mlxcpld.c | 14 +- drivers/i2c/busses/i2c-mt65xx.c | 82 ++++++++++- .../i2c/busses/{i2c-pasemi.c => i2c-pasemi-core.c} | 114 ++++----------- drivers/i2c/busses/i2c-pasemi-core.h | 21 +++ drivers/i2c/busses/i2c-pasemi-pci.c | 85 +++++++++++ drivers/i2c/busses/i2c-pasemi-platform.c | 122 ++++++++++++++++ drivers/i2c/busses/i2c-pxa.c | 1 - drivers/i2c/busses/i2c-qup.c | 6 +- drivers/i2c/busses/i2c-rcar.c | 6 +- drivers/i2c/busses/i2c-tegra.c | 4 +- drivers/i2c/busses/i2c-xiic.c | 161 +++++++++------------ drivers/i2c/busses/i2c-xlr.c | 6 +- 23 files changed, 558 insertions(+), 261 deletions(-) create mode 100644 Documentation/devicetree/bindings/i2c/apple,i2c.yaml rename drivers/i2c/busses/{i2c-pasemi.c => i2c-pasemi-core.c} (77%) create mode 100644 drivers/i2c/busses/i2c-pasemi-core.h create mode 100644 drivers/i2c/busses/i2c-pasemi-pci.c create mode 100644 drivers/i2c/busses/i2c-pasemi-platform.c