mbox series

[v10,0/6] i2c: add zhaoxin i2c controller driver

Message ID cover.1712479417.git.hanshu-oc@zhaoxin.com
Headers show
Series i2c: add zhaoxin i2c controller driver | expand

Message

Hans Hu April 8, 2024, 2:54 a.m. UTC
v9->v10:
	* fixed style issues that were checked out by checkpatch.pl.
	* In Patch 3 in wmt_i2c_write() function, deleted the log
	  when received nack.
	* In Patch 4 in viai2c_irq_xfer() function, return 1 for
	  I2C_SMBUS_QUICK access.
	* In Patch 6 in zxi2c_get_bus_speed() function, adjusted
	  the log when firmware gives inappropriate parameters.
	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/

v8->v9:
	* In Patch 1 in probe() do not return at the
	  i2c_add_adapter(), but call clk_disable_unprepare()
	  in case of failure.
	* In Patch 2 fix the conflict when i2c-wmt.c is removed.
	* In Patch 2 in wmt_i2c_probe() function, call
	  clk_disable_unprepare() in case of failure. While at
	  it, add a comment to explain the reason.
	* When renaming i2c_dev to i2c, change also the reference
	  in clk_disable_unprepare().
	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/

v7->v8:
	* move per-msg handling to interrupt context
	* add private struct viai2c_zhaoxin to handle zhaoxin specific things
	* fixed some other formatting issues
	Link: https://lore.kernel.org/all/cover.1704440251.git.hanshu-oc@zhaoxin.com/

v6->v7:
	* adjust the patch sequence
	* put those renaming related patches in 1 patch file
	* rename i2c-*-plt.c to i2c-viai2c-*.c
	* Some other adjustments suggested by Andi
	For more details, see the comment in each patch please.
	Link: https://lore.kernel.org/all/cover.1703830854.git.hanshu-oc@zhaoxin.com/

v5->v6:
	* fix build warnning reported by kernel test robot.
	  Link: https://lore.kernel.org/all/202312291225.cWVt6YF9-lkp@intel.com/
	Link: https://lore.kernel.org/all/cover.1703733126.git.hanshu-oc@zhaoxin.com/

v4->v5:
	* fix 1 build error.
	  Link: https://lore.kernel.org/all/ZYx0VPVmyQhtG+B9@shikoro/1-a.txt
	Link: https://lore.kernel.org/all/cover.1703647471.git.hanshu-oc@zhaoxin.com/

v3->v4:
	* Some adjustments as suggested by Wolfram.
	* rebase patch on top of for-next branch.
	Link: https://lore.kernel.org/all/cover.1698889581.git.hanshu-oc@zhaoxin.com/

v2->v3:
	* Split the number of patches from 2 to 12. Make it easier to review.
	Link: https://lore.kernel.org/all/cover.1691999569.git.hanshu-oc@zhaoxin.com/

v1->v2:
	* Fixed some bugs I found myself.
	Link: https://lore.kernel.org/all/cover.1691030850.git.hanshu-oc@zhaoxin.com/

Old version:
	This patch has already gone through a round of reviews.
	The difference from the first round is that it reuses
	the i2c-wmt driver.
	Link: https://lore.kernel.org/all/20230614094858.317652-1-hanshu-oc@zhaoxin.com/

Signed-off-by: Hans Hu <hanshu-oc@zhaoxin.com>

Hans Hu (6):
  i2c: wmt: create wmt_i2c_init for general init
  i2c: wmt: split out common files
  i2c: wmt: rename something
  i2c: wmt: fix a bug when thread blocked
  i2c: wmt: add platform type VIAI2C_PLAT_WMT
  i2c: add zhaoxin i2c controller driver

 MAINTAINERS                             |  10 +-
 drivers/i2c/busses/Kconfig              |  10 +
 drivers/i2c/busses/Makefile             |   3 +
 drivers/i2c/busses/i2c-viai2c-common.c  | 256 ++++++++++++++
 drivers/i2c/busses/i2c-viai2c-common.h  |  85 +++++
 drivers/i2c/busses/i2c-viai2c-wmt.c     | 148 +++++++++
 drivers/i2c/busses/i2c-viai2c-zhaoxin.c | 298 +++++++++++++++++
 drivers/i2c/busses/i2c-wmt.c            | 421 ------------------------
 8 files changed, 809 insertions(+), 422 deletions(-)
 create mode 100644 drivers/i2c/busses/i2c-viai2c-common.c
 create mode 100644 drivers/i2c/busses/i2c-viai2c-common.h
 create mode 100644 drivers/i2c/busses/i2c-viai2c-wmt.c
 create mode 100644 drivers/i2c/busses/i2c-viai2c-zhaoxin.c
 delete mode 100644 drivers/i2c/busses/i2c-wmt.c

Comments

Andi Shyti April 23, 2024, 12:02 p.m. UTC | #1
Hi Hans,

it all looks good, except for that unrelated cleanup you added in
patch '1'.

If you are OK with it, I can take the series and remove the
cleanup.

Please keep in mind that splitting patches in smaller chunks
helps reviews and future bisects, even if the change is a trivial
cosmetic improvement.

Thanks,
Andi

On Mon, Apr 08, 2024 at 10:54:42AM +0800, Hans Hu wrote:
> v9->v10:
> 	* fixed style issues that were checked out by checkpatch.pl.
> 	* In Patch 3 in wmt_i2c_write() function, deleted the log
> 	  when received nack.
> 	* In Patch 4 in viai2c_irq_xfer() function, return 1 for
> 	  I2C_SMBUS_QUICK access.
> 	* In Patch 6 in zxi2c_get_bus_speed() function, adjusted
> 	  the log when firmware gives inappropriate parameters.
> 	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/
> 
> v8->v9:
> 	* In Patch 1 in probe() do not return at the
> 	  i2c_add_adapter(), but call clk_disable_unprepare()
> 	  in case of failure.
> 	* In Patch 2 fix the conflict when i2c-wmt.c is removed.
> 	* In Patch 2 in wmt_i2c_probe() function, call
> 	  clk_disable_unprepare() in case of failure. While at
> 	  it, add a comment to explain the reason.
> 	* When renaming i2c_dev to i2c, change also the reference
> 	  in clk_disable_unprepare().
> 	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/
> 
> v7->v8:
> 	* move per-msg handling to interrupt context
> 	* add private struct viai2c_zhaoxin to handle zhaoxin specific things
> 	* fixed some other formatting issues
> 	Link: https://lore.kernel.org/all/cover.1704440251.git.hanshu-oc@zhaoxin.com/
> 
> v6->v7:
> 	* adjust the patch sequence
> 	* put those renaming related patches in 1 patch file
> 	* rename i2c-*-plt.c to i2c-viai2c-*.c
> 	* Some other adjustments suggested by Andi
> 	For more details, see the comment in each patch please.
> 	Link: https://lore.kernel.org/all/cover.1703830854.git.hanshu-oc@zhaoxin.com/
> 
> v5->v6:
> 	* fix build warnning reported by kernel test robot.
> 	  Link: https://lore.kernel.org/all/202312291225.cWVt6YF9-lkp@intel.com/
> 	Link: https://lore.kernel.org/all/cover.1703733126.git.hanshu-oc@zhaoxin.com/
> 
> v4->v5:
> 	* fix 1 build error.
> 	  Link: https://lore.kernel.org/all/ZYx0VPVmyQhtG+B9@shikoro/1-a.txt
> 	Link: https://lore.kernel.org/all/cover.1703647471.git.hanshu-oc@zhaoxin.com/
> 
> v3->v4:
> 	* Some adjustments as suggested by Wolfram.
> 	* rebase patch on top of for-next branch.
> 	Link: https://lore.kernel.org/all/cover.1698889581.git.hanshu-oc@zhaoxin.com/
> 
> v2->v3:
> 	* Split the number of patches from 2 to 12. Make it easier to review.
> 	Link: https://lore.kernel.org/all/cover.1691999569.git.hanshu-oc@zhaoxin.com/
> 
> v1->v2:
> 	* Fixed some bugs I found myself.
> 	Link: https://lore.kernel.org/all/cover.1691030850.git.hanshu-oc@zhaoxin.com/
> 
> Old version:
> 	This patch has already gone through a round of reviews.
> 	The difference from the first round is that it reuses
> 	the i2c-wmt driver.
> 	Link: https://lore.kernel.org/all/20230614094858.317652-1-hanshu-oc@zhaoxin.com/
> 
> Signed-off-by: Hans Hu <hanshu-oc@zhaoxin.com>
> 
> Hans Hu (6):
>   i2c: wmt: create wmt_i2c_init for general init
>   i2c: wmt: split out common files
>   i2c: wmt: rename something
>   i2c: wmt: fix a bug when thread blocked
>   i2c: wmt: add platform type VIAI2C_PLAT_WMT
>   i2c: add zhaoxin i2c controller driver
> 
>  MAINTAINERS                             |  10 +-
>  drivers/i2c/busses/Kconfig              |  10 +
>  drivers/i2c/busses/Makefile             |   3 +
>  drivers/i2c/busses/i2c-viai2c-common.c  | 256 ++++++++++++++
>  drivers/i2c/busses/i2c-viai2c-common.h  |  85 +++++
>  drivers/i2c/busses/i2c-viai2c-wmt.c     | 148 +++++++++
>  drivers/i2c/busses/i2c-viai2c-zhaoxin.c | 298 +++++++++++++++++
>  drivers/i2c/busses/i2c-wmt.c            | 421 ------------------------
>  8 files changed, 809 insertions(+), 422 deletions(-)
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-common.c
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-common.h
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-wmt.c
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-zhaoxin.c
>  delete mode 100644 drivers/i2c/busses/i2c-wmt.c
> 
> -- 
> 2.34.1
>
Hans Hu April 23, 2024, 12:16 p.m. UTC | #2
Hi Andi,


> Hi Hans,
>
> it all looks good, except for that unrelated cleanup you added in
> patch '1'.
>
> If you are OK with it, I can take the series and remove the
> cleanup.
>
> Please keep in mind that splitting patches in smaller chunks
> helps reviews and future bisects, even if the change is a trivial
> cosmetic improvement.


I'm OK with it.

I have learned a lot from submitting the i2c patch this time,
and I will keep in mind all the suggestions you and others have.

Hans,
Thank you very much!
Andi Shyti April 29, 2024, 12:20 a.m. UTC | #3
Hi Hans,

With the small change I announced in patch 1, I have applied the
patches to i2c/i2c-host on:

git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git

Thank you,
Andi

Patches applied
===============
[1/6] i2c: wmt: create wmt_i2c_init for general init
      commit: 526a34e7cf93806305b9fd91a5ff7a7d17901b9b
[2/6] i2c: wmt: split out common files
      commit: 9743b438b7177178c7783877c5416e845b23c06d
[3/6] i2c: wmt: rename something
      commit: 185df2a0f3c45b477d6833fbc3ac57b8ef336352
[4/6] i2c: wmt: fix a bug when thread blocked
      commit: b538a9ab48414ddae46aec07939c575f8c5b43c2
[5/6] i2c: wmt: add platform type VIAI2C_PLAT_WMT
      commit: b28d202ef30163a32e61af4cdbf19dbeded05698
[6/6] i2c: add zhaoxin i2c controller driver
      commit: d103b529c3b75168e79eae8134ade797126a6a98

On Mon, Apr 08, 2024 at 10:54:42AM +0800, Hans Hu wrote:
> v9->v10:
> 	* fixed style issues that were checked out by checkpatch.pl.
> 	* In Patch 3 in wmt_i2c_write() function, deleted the log
> 	  when received nack.
> 	* In Patch 4 in viai2c_irq_xfer() function, return 1 for
> 	  I2C_SMBUS_QUICK access.
> 	* In Patch 6 in zxi2c_get_bus_speed() function, adjusted
> 	  the log when firmware gives inappropriate parameters.
> 	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/
> 
> v8->v9:
> 	* In Patch 1 in probe() do not return at the
> 	  i2c_add_adapter(), but call clk_disable_unprepare()
> 	  in case of failure.
> 	* In Patch 2 fix the conflict when i2c-wmt.c is removed.
> 	* In Patch 2 in wmt_i2c_probe() function, call
> 	  clk_disable_unprepare() in case of failure. While at
> 	  it, add a comment to explain the reason.
> 	* When renaming i2c_dev to i2c, change also the reference
> 	  in clk_disable_unprepare().
> 	Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@kernel.org/
> 
> v7->v8:
> 	* move per-msg handling to interrupt context
> 	* add private struct viai2c_zhaoxin to handle zhaoxin specific things
> 	* fixed some other formatting issues
> 	Link: https://lore.kernel.org/all/cover.1704440251.git.hanshu-oc@zhaoxin.com/
> 
> v6->v7:
> 	* adjust the patch sequence
> 	* put those renaming related patches in 1 patch file
> 	* rename i2c-*-plt.c to i2c-viai2c-*.c
> 	* Some other adjustments suggested by Andi
> 	For more details, see the comment in each patch please.
> 	Link: https://lore.kernel.org/all/cover.1703830854.git.hanshu-oc@zhaoxin.com/
> 
> v5->v6:
> 	* fix build warnning reported by kernel test robot.
> 	  Link: https://lore.kernel.org/all/202312291225.cWVt6YF9-lkp@intel.com/
> 	Link: https://lore.kernel.org/all/cover.1703733126.git.hanshu-oc@zhaoxin.com/
> 
> v4->v5:
> 	* fix 1 build error.
> 	  Link: https://lore.kernel.org/all/ZYx0VPVmyQhtG+B9@shikoro/1-a.txt
> 	Link: https://lore.kernel.org/all/cover.1703647471.git.hanshu-oc@zhaoxin.com/
> 
> v3->v4:
> 	* Some adjustments as suggested by Wolfram.
> 	* rebase patch on top of for-next branch.
> 	Link: https://lore.kernel.org/all/cover.1698889581.git.hanshu-oc@zhaoxin.com/
> 
> v2->v3:
> 	* Split the number of patches from 2 to 12. Make it easier to review.
> 	Link: https://lore.kernel.org/all/cover.1691999569.git.hanshu-oc@zhaoxin.com/
> 
> v1->v2:
> 	* Fixed some bugs I found myself.
> 	Link: https://lore.kernel.org/all/cover.1691030850.git.hanshu-oc@zhaoxin.com/
> 
> Old version:
> 	This patch has already gone through a round of reviews.
> 	The difference from the first round is that it reuses
> 	the i2c-wmt driver.
> 	Link: https://lore.kernel.org/all/20230614094858.317652-1-hanshu-oc@zhaoxin.com/
> 
> Signed-off-by: Hans Hu <hanshu-oc@zhaoxin.com>
> 
> Hans Hu (6):
>   i2c: wmt: create wmt_i2c_init for general init
>   i2c: wmt: split out common files
>   i2c: wmt: rename something
>   i2c: wmt: fix a bug when thread blocked
>   i2c: wmt: add platform type VIAI2C_PLAT_WMT
>   i2c: add zhaoxin i2c controller driver
> 
>  MAINTAINERS                             |  10 +-
>  drivers/i2c/busses/Kconfig              |  10 +
>  drivers/i2c/busses/Makefile             |   3 +
>  drivers/i2c/busses/i2c-viai2c-common.c  | 256 ++++++++++++++
>  drivers/i2c/busses/i2c-viai2c-common.h  |  85 +++++
>  drivers/i2c/busses/i2c-viai2c-wmt.c     | 148 +++++++++
>  drivers/i2c/busses/i2c-viai2c-zhaoxin.c | 298 +++++++++++++++++
>  drivers/i2c/busses/i2c-wmt.c            | 421 ------------------------
>  8 files changed, 809 insertions(+), 422 deletions(-)
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-common.c
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-common.h
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-wmt.c
>  create mode 100644 drivers/i2c/busses/i2c-viai2c-zhaoxin.c
>  delete mode 100644 drivers/i2c/busses/i2c-wmt.c
> 
> -- 
> 2.34.1
>