The series now consists the following groups of patches: - fixing cleanup order in error path and remove (patches 1-5) - refactoring i2c_dw_*_lock_support() (patches 6-7) - refactoring module alias and device ID tables (patches 8-11) - unifying firmware parsing and configuring code (patches 12-16) - miscellaneous cleanups (patches 17-18,22-25) - consolidating PM ops (patch 19) - using device_set_node() for all drivers (patches 20-21) The "Consolidate PM ops" might be considered as rft, however I don't think we have any hardware where the behaviour will be changed, anyways, good to test. Changelog v3: - doubled the size of the series - fixed compilation error (LKP) - added tags (Andi) v2: https://lore.kernel.org/r/20231109182823.3531846-1-andriy.shevchenko@xxxxxxxxxxxxxxx Changelog v2: - reworked the series to make it less twisted (Jarkko, Andi) - added tags to the patches that have been rebased (Andi, Mario, Jarkko) - introduced a few new changes (PM ops, export namespace) v1: https://lore.kernel.org/r/20230725143023.86325-1-andriy.shevchenko@xxxxxxxxxxxxxxx Andy Shevchenko (25): i2c: designware: Delete adapter before disabling in i2c_dw_pci_remove() i2c: designware: Fix PM calls order in dw_i2c_plat_probe() i2c: designware: Fix reset call order in dw_i2c_plat_probe() i2c: designware: Let PCI core to take care about interrupt vectors i2c: designware: Fix lock probe call order in dw_i2c_plat_probe() i2c: designware: Replace a while-loop by for-loop i2c: designware: Save pointer to semaphore callbacks instead of index i2c: designware: Add missing 'c' into PCI IDs variable name i2c: designware: Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE() i2c: designware: Unify terminator in device ID tables i2c: designware: Always provide device ID tables i2c: designware: Drop return value from i2c_dw_acpi_configure() i2c: designware: Drop return value from dw_i2c_of_configure() i2c: designware: Rename dw_i2c_of_configure() -> i2c_dw_of_configure() i2c: designware: Consolidate firmware parsing and configuring code i2c: designware: Unify the firmware type checks i2c: designware: Move exports to I2C_DW namespaces i2c: designware: Remove ->disable() callback i2c: designware: Consolidate PM ops i2c: designware: Uninline i2c_dw_probe() i2c: designware: Propagate firmware node i2c: designware: Use pci_get_drvdata() i2c: designware: Use temporary variable for struct device i2c: designware: Get rid of redundant 'else' i2c: designware: Fix spelling and other issues in the comments drivers/i2c/busses/i2c-designware-amdpsp.c | 10 +- drivers/i2c/busses/i2c-designware-common.c | 166 +++++++++- drivers/i2c/busses/i2c-designware-core.h | 47 +-- drivers/i2c/busses/i2c-designware-master.c | 19 +- drivers/i2c/busses/i2c-designware-pcidrv.c | 118 ++----- drivers/i2c/busses/i2c-designware-platdrv.c | 337 +++++++------------- drivers/i2c/busses/i2c-designware-slave.c | 12 +- 7 files changed, 338 insertions(+), 371 deletions(-) -- 2.43.0.rc1.1.gbec44491f096