[v4,00/24] i2c: designware: code consolidation & cleanups

Message ID 20231120144641.1660574-1-andriy.shevchenko@linux.intel.com
Headers
Series i2c: designware: code consolidation & cleanups |

Message

Andy Shevchenko Nov. 20, 2023, 2:41 p.m. UTC
  The series now consists the following groups of patches:
- fixing cleanup order in error path and remove (patches 1-4)
- refactoring i2c_dw_*_lock_support() (patches 5-6)
- refactoring module alias and device ID tables (patches 7-10)
- unifying firmware parsing and configuring code (patches 11-15)
- miscellaneous cleanups (patches 16-17,21-24)
- consolidating PM ops (patch 18)
- using device_set_node() for all drivers (patches 19-20)

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 v4:
- dropped first patch as controversial (Jarkko)
- dropped Fixes tag from a few patches (Jarkko)
- moved a hunk in patch 1 to patch 2 where it belongs (Jarkko)
- exported i2c_dw_disable() for modular building (Jarkko)
- added tags (Mario, Jarkko)

v3: https://lore.kernel.org/r/20231110182304.3894319-1-andriy.shevchenko@linux.intel.com

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@linux.intel.com

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@linux.intel.com

Andy Shevchenko (24):
  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  | 167 +++++++++-
 drivers/i2c/busses/i2c-designware-core.h    |  47 +--
 drivers/i2c/busses/i2c-designware-master.c  |  19 +-
 drivers/i2c/busses/i2c-designware-pcidrv.c  | 114 ++-----
 drivers/i2c/busses/i2c-designware-platdrv.c | 337 +++++++-------------
 drivers/i2c/busses/i2c-designware-slave.c   |  12 +-
 7 files changed, 337 insertions(+), 369 deletions(-)
  

Comments

Jarkko Nikula Nov. 21, 2023, 2:30 p.m. UTC | #1
On 11/20/23 16:41, Andy Shevchenko wrote:
> The series now consists the following groups of patches:
> - fixing cleanup order in error path and remove (patches 1-4)
> - refactoring i2c_dw_*_lock_support() (patches 5-6)
> - refactoring module alias and device ID tables (patches 7-10)
> - unifying firmware parsing and configuring code (patches 11-15)
> - miscellaneous cleanups (patches 16-17,21-24)
> - consolidating PM ops (patch 18)
> - using device_set_node() for all drivers (patches 19-20)
> 
> 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 v4:
> - dropped first patch as controversial (Jarkko)
> - dropped Fixes tag from a few patches (Jarkko)
> - moved a hunk in patch 1 to patch 2 where it belongs (Jarkko)
> - exported i2c_dw_disable() for modular building (Jarkko)
> - added tags (Mario, Jarkko)
> 
> v3: https://lore.kernel.org/r/20231110182304.3894319-1-andriy.shevchenko@linux.intel.com
> 
> 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@linux.intel.com
> 
> 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@linux.intel.com
> 
> Andy Shevchenko (24):
>    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  | 167 +++++++++-
>   drivers/i2c/busses/i2c-designware-core.h    |  47 +--
>   drivers/i2c/busses/i2c-designware-master.c  |  19 +-
>   drivers/i2c/busses/i2c-designware-pcidrv.c  | 114 ++-----
>   drivers/i2c/busses/i2c-designware-platdrv.c | 337 +++++++-------------
>   drivers/i2c/busses/i2c-designware-slave.c   |  12 +-
>   7 files changed, 337 insertions(+), 369 deletions(-)
> 
To all (some I've ack'ed already):

Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
  
Serge Semin Nov. 21, 2023, 4:08 p.m. UTC | #2
On Mon, Nov 20, 2023 at 04:41:42PM +0200, Andy Shevchenko wrote:
> The series now consists the following groups of patches:
> - fixing cleanup order in error path and remove (patches 1-4)
> - refactoring i2c_dw_*_lock_support() (patches 5-6)
> - refactoring module alias and device ID tables (patches 7-10)
> - unifying firmware parsing and configuring code (patches 11-15)
> - miscellaneous cleanups (patches 16-17,21-24)
> - consolidating PM ops (patch 18)
> - using device_set_node() for all drivers (patches 19-20)
> 
> 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 v4:
> - dropped first patch as controversial (Jarkko)
> - dropped Fixes tag from a few patches (Jarkko)
> - moved a hunk in patch 1 to patch 2 where it belongs (Jarkko)
> - exported i2c_dw_disable() for modular building (Jarkko)
> - added tags (Mario, Jarkko)

It looks like the series review is almost over. I've got it tested on
DW APB I2C v1.21a on a platform with the directly and indirectly
accessible registers. No problem spotted. Thanks!

Tested-by: Serge Semin <fancer.lancer@gmail.com>

-Serge(y)

> 
> v3: https://lore.kernel.org/r/20231110182304.3894319-1-andriy.shevchenko@linux.intel.com
> 
> 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@linux.intel.com
> 
> 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@linux.intel.com
> 
> Andy Shevchenko (24):
>   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  | 167 +++++++++-
>  drivers/i2c/busses/i2c-designware-core.h    |  47 +--
>  drivers/i2c/busses/i2c-designware-master.c  |  19 +-
>  drivers/i2c/busses/i2c-designware-pcidrv.c  | 114 ++-----
>  drivers/i2c/busses/i2c-designware-platdrv.c | 337 +++++++-------------
>  drivers/i2c/busses/i2c-designware-slave.c   |  12 +-
>  7 files changed, 337 insertions(+), 369 deletions(-)
> 
> -- 
> 2.43.0.rc1.1.gbec44491f096
> 
>