Date: Fri, 13 Sep 2024 11:53:38 +0200
From: Andi Shyti <andi.shyti@kernel.org>
To: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: linux-i2c <linux-i2c@vger.kernel.org>, 
	lkml <linux-kernel@vger.kernel.org>, Andi Shyti <andi.shyti@kernel.org>
Subject: [GIT PULL] i2c-host-fixes for v6.11-rc8

Hi Wolfram,

Here’s the fixes pull request. It’s funny, after a few weeks with
no fixes, right at the merge window, I’m sending in five!

I’ve also brought in from the past two fixes from Robert Hancock
for the Xilinx controller.

See you later today for the next pull request.

Thanks,
Andi

The following changes since commit da3ea35007d0af457a0afc87e84fddaebc4e0b63:

  Linux 6.11-rc7 (2024-09-08 14:50:28 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-host-fixes-6.11-rc8

for you to fetch changes up to e2c85d85a05f16af2223fcc0195ff50a7938b372:

  i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq() (2024-09-12 09:08:22 +0200)

----------------------------------------------------------------
The Aspeed driver tracks the controller's state (stop, pending,
start, etc.). Previously, when the stop command was sent, the
state was not updated. The fix in this pull request ensures the
driver's state is aligned with the device status.

The Intel SCH driver receives a new look, and among the cleanups,
there is a fix where, due to an oversight, an if/else statement
was missing the else, causing it to move forward instead of
exiting the function in case of an error.

The Qualcomm GENI I2C driver adds the IRQF_NO_AUTOEN flag to the
IRQ setup to prevent unwanted interrupts during probe.

The Xilinx XPS controller fixes TX FIFO handling to avoid missed
NAKs. Another fix ensures the controller is reinitialized when
the bus appears busy.

----------------------------------------------------------------
Andy Shevchenko (1):
      i2c: isch: Add missed 'else'

Jinjie Ruan (1):
      i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq()

Robert Hancock (2):
      i2c: xiic: Wait for TX empty to avoid missed TX NAKs
      i2c: xiic: Try re-initialization on bus busy timeout

Tommy Huang (1):
      i2c: aspeed: Update the stop sw state when the bus recovery occurs

 drivers/i2c/busses/i2c-aspeed.c    | 16 ++++++++--------
 drivers/i2c/busses/i2c-isch.c      |  3 +--
 drivers/i2c/busses/i2c-qcom-geni.c |  4 +---
 drivers/i2c/busses/i2c-xiic.c      | 60 +++++++++++++++++++++++++++++++++++-------------------------
 4 files changed, 45 insertions(+), 38 deletions(-)

.
Date: Fri, 13 Sep 2024 13:20:01 +0200
From: Andi Shyti <andi.shyti@kernel.org>
To: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: linux-i2c <linux-i2c@vger.kernel.org>, 
	lkml <linux-kernel@vger.kernel.org>, Andi Shyti <andi.shyti@kernel.org>
Subject: [GIT PULL] i2c-host for v6.12

Hi Wolfram,

This turned out to be a fairly loaded pull request, covering a
variety of topics. There are four new platforms added, but the
bulk of it consists of cleanups and refactors.

I didn’t plan to have a second pull request during this merge
window. Everything that was submitted is included in this one.

Wishing you a great weekend and a fantastic conference week,
which I’m sorry to miss!

Andi

The following changes since commit da3ea35007d0af457a0afc87e84fddaebc4e0b63:

  Linux 6.11-rc7 (2024-09-08 14:50:28 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-host-6.12

for you to fetch changes up to f56f4ba2fc1dbefd3242946f2fad35338a60e3bc:

  i2c: designware: Use pci_get_drvdata() (2024-09-11 12:52:46 +0200)

----------------------------------------------------------------
The DesignWare and the Renesas I2C drivers have received most of
the changes in this pull request.

The first has has undergone through a series of cleanups that
have been sent to the mailing list a year ago for the first time
and finally get merged in this pull request. They are many, from
typos (e.g. i2/i2c), to cosmetics, to refactoring (e.g. move
inline functions to librarieas) and many others.

Besides that, all the DesignWare Kconfig options have been
grouped under the I2C_DESIGNWARE_CORE and this required some
adaptation in many of the kernel configuration files for
different arm and mips boards.

Follows the list of the rest of the changes grouped by type of
change.

Cleanups
--------
The Qualcomm Geni platform improves the exit path in the runtime
resume function.

The Intel LJCA driver loses "target_addr" parameter in
ljca_i2c_stop() because it was unused.

The MediaTek controller intializes the restart_flag in the
transfer function using the ternary conditional operator ("? :")
instead of initializing it in different parts.

Constified a few global data structures in the virtio driver.

The Renesas driver simplifies the bus speed handling in the init
function making it more readable.

Improved an if/else statement in probe function of the Renesas
R-Car driver.

The iMX/MXC driver switches to using the RUNTIME_PM_OPS() instead
of SET_RUNTIME_PM_OPS().

Still in the iMX/MXC driver a comma ',' has been replaced by a
semicolon ';', while in different drivers the ',' has been
removed from the '{ }' delimiters.

Finally three devm_clk_get_enabled() have been used to simplify
the devm_clk_get/clk_prepare_enable tuple in the Renesas EMEV2,
Ingenic and MPC drivers.

Refactors
---------
The Nuvoton fixes a potential out of boundary array access. This
is not a bug fix because the issue could never occur due to
hardware not having the properties listed in the array. The
change makes the driver more future proof and, at the same time,
silences code analyzers.

Improvements
------------
The Renesas I2C (riic) driver undergoes several patches improving
the runtime power management handling.

The Intel i801 driver uses a more descriptive adapter's name to
show the presence of the IDF feature.

In the Intel Denverton (ismt) adapter the pending transactions
are killed when irq's can't complete their handling, triggering a
timeout. This could have been considered as a bug fix, but
because, standing to Vasily, it's very sporadic, I preferred
considering the patch rather as an improvement.

New Feature
-----------
The Renesas I2C (riic) driver now supports the fast mode plus.

New support
-----------
Added support for:

    - Renesas R9A08G045
    - Rockchip RK3576
    - KEBA I2C
    - Theobroma Systems Mule Multiplexer.

The Keba comes with a new driver, i2c-keba.c.
The Mule is an i2c multiplexer and it also comes with a new
driver, mux/i2c-mux-mule.c.

Core patch
----------
This pull request includes also a patch in the I2C framework, in
i2c-core-base.c where the runtime PM functions have been replaced
in order to allow to be accessed during the device add.

Devicetree
----------
Some cleanups in the devicetree, as well. nVidia and Qualcomm
bindings improve their "if:then:" blocks. While the aspeed
binding loses the "multi-master" property because it was
redundant.

The i2c-sprd binding has been converted to YAML.

----------------------------------------------------------------
Adrian Huang (1):
      i2c: designware: Fix wrong setting for {ss,fs,hs}_{h,l}cnt registers

Andi Shyti (2):
      i2c: qcom-geni: Use goto for clearer exit path
      i2c: ljca: Remove unused "target_addr" parameter

Andy Shevchenko (16):
      i2c: designware: Replace a while-loop by for-loop
      i2c: designware: Let PCI core to take care about interrupt vectors
      i2c: designware: Add missing 'c' into PCI IDs variable name
      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()

AngeloGioacchino Del Regno (1):
      i2c: mt65xx: Avoid double initialization of restart_flag in isr

Christophe JAILLET (1):
      i2c: virtio: Constify struct i2c_algorithm and struct virtio_device_id

Claudiu Beznea (8):
      i2c: riic: Use temporary variable for struct device
      i2c: riic: Call pm_runtime_get_sync() when need to access registers
      i2c: riic: Use pm_runtime_resume_and_get()
      i2c: riic: Enable runtime PM autosuspend support
      i2c: riic: Add suspend/resume support
      i2c: riic: Define individual arrays to describe the register offsets
      dt-bindings: i2c: renesas,riic: Document the R9A08G045 support
      i2c: riic: Add support for fast mode plus

Detlev Casanova (1):
      dt-bindings: i2c: i2c-rk3x: Add rk3576 compatible

Fabio Estevam (1):
      i2c: imx: Switch to RUNTIME_PM_OPS()

Farouk Bouabid (2):
      dt-bindings: i2c: add support for tsd,mule-i2c-mux
      i2c: muxes: add support for tsd,mule-i2c multiplexer

Geert Uytterhoeven (1):
      i2c: riic: Simplify unsupported bus speed handling

Gerhard Engleder (1):
      i2c: keba: Add KEBA I2C controller support

Hans de Goede (2):
      i2c: core: Setup i2c_adapter runtime-pm before calling device_add()
      i2c: i801: Use a different adapter-name for IDF adapters

Heikki Krogerus (7):
      ARC: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM
      ARM: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM
      arm64: defconfig: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM
      mips: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM
      RISC-V: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM
      net: txgbe: Fix I2C Kconfig dependencies
      i2c: designware: Group all DesignWare drivers under a single option

Krzysztof Kozlowski (5):
      dt-bindings: i2c: nvidia,tegra20-i2c: combine same if:then: clauses
      dt-bindings: i2c: nvidia,tegra20-i2c: restrict also clocks in if:then:
      dt-bindings: i2c: nvidia,tegra20-i2c: define power-domains top-level
      dt-bindings: i2c: qcom,i2c-cci: add missing clocks constraint in if:then:
      dt-bindings: i2c: aspeed: drop redundant multi-master

Kuninori Morimoto (1):
      i2c: rcar: tidyup priv->devtype handling on rcar_i2c_probe()

Rong Qianfeng (2):
      i2c: emev2: Use devm_clk_get_enabled() helpers
      i2c: jz4780: Use devm_clk_get_enabled() helpers

Shen Lichuan (1):
      i2c: imx: Convert comma to semicolon

Stanislav Jakubek (1):
      dt-bindings: i2c: i2c-sprd: convert to YAML

Tyrone Ting (1):
      i2c: npcm: restore slave addresses array length

Vasily Khoruzhick (1):
      i2c: ismt: kill transaction in hardware on timeout

Wolfram Sang (1):
      i2c: don't use ',' after delimiters

Zhang Zekun (1):
      i2c: mpc: Use devm_clk_get_optional_enabled() to simplify code

 .../devicetree/bindings/i2c/aspeed,i2c.yaml        |   5 -
 .../devicetree/bindings/i2c/i2c-rk3x.yaml          |   1 +
 Documentation/devicetree/bindings/i2c/i2c-sprd.txt |  31 --
 .../bindings/i2c/nvidia,tegra20-i2c.yaml           |  27 +-
 .../devicetree/bindings/i2c/qcom,i2c-cci.yaml      |   1 +
 .../devicetree/bindings/i2c/renesas,riic.yaml      |   4 +
 .../devicetree/bindings/i2c/sprd,sc9860-i2c.yaml   |  65 +++
 .../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml  |  69 +++
 arch/arc/configs/axs101_defconfig                  |   1 +
 arch/arc/configs/axs103_defconfig                  |   1 +
 arch/arc/configs/axs103_smp_defconfig              |   1 +
 arch/arc/configs/tb10x_defconfig                   |   1 +
 arch/arm/configs/hisi_defconfig                    |   1 +
 arch/arm/configs/multi_v7_defconfig                |   1 +
 arch/arm/configs/pxa_defconfig                     |   1 +
 arch/arm/configs/socfpga_defconfig                 |   1 +
 arch/arm/configs/spear13xx_defconfig               |   1 +
 arch/arm/configs/spear3xx_defconfig                |   1 +
 arch/arm/configs/spear6xx_defconfig                |   1 +
 arch/arm64/configs/defconfig                       |   1 +
 arch/mips/configs/generic/board-ocelot.config      |   1 +
 arch/riscv/configs/defconfig                       |   1 +
 arch/riscv/configs/nommu_k210_defconfig            |   1 +
 arch/riscv/configs/nommu_k210_sdcard_defconfig     |   1 +
 drivers/i2c/busses/Kconfig                         |  40 +-
 drivers/i2c/busses/Makefile                        |   1 +
 drivers/i2c/busses/i2c-ali1535.c                   |   3 +-
 drivers/i2c/busses/i2c-amd-mp2-plat.c              |   2 +-
 drivers/i2c/busses/i2c-aspeed.c                    |   2 +-
 drivers/i2c/busses/i2c-designware-common.c         | 180 ++++++-
 drivers/i2c/busses/i2c-designware-core.h           |  39 +-
 drivers/i2c/busses/i2c-designware-master.c         |  36 +-
 drivers/i2c/busses/i2c-designware-pcidrv.c         |  88 +--
 drivers/i2c/busses/i2c-designware-platdrv.c        | 184 ++-----
 drivers/i2c/busses/i2c-designware-slave.c          |   6 +-
 drivers/i2c/busses/i2c-digicolor.c                 |   2 +-
 drivers/i2c/busses/i2c-emev2.c                     |  25 +-
 drivers/i2c/busses/i2c-i801.c                      |   9 +-
 drivers/i2c/busses/i2c-imx-lpi2c.c                 |   2 +-
 drivers/i2c/busses/i2c-imx.c                       |  11 +-
 drivers/i2c/busses/i2c-ismt.c                      |  10 +
 drivers/i2c/busses/i2c-jz4780.c                    |  22 +-
 drivers/i2c/busses/i2c-keba.c                      | 598 +++++++++++++++++++++
 drivers/i2c/busses/i2c-ljca.c                      |   6 +-
 drivers/i2c/busses/i2c-mpc.c                       |  23 +-
 drivers/i2c/busses/i2c-mt65xx.c                    |   5 +-
 drivers/i2c/busses/i2c-npcm7xx.c                   |   6 +-
 drivers/i2c/busses/i2c-omap.c                      |   2 +-
 drivers/i2c/busses/i2c-piix4.c                     |   2 +-
 drivers/i2c/busses/i2c-pnx.c                       |   2 +-
 drivers/i2c/busses/i2c-pxa-pci.c                   |   2 +-
 drivers/i2c/busses/i2c-pxa.c                       |   2 +-
 drivers/i2c/busses/i2c-qcom-geni.c                 |  23 +-
 drivers/i2c/busses/i2c-qup.c                       |   2 +-
 drivers/i2c/busses/i2c-rcar.c                      |  12 +-
 drivers/i2c/busses/i2c-riic.c                      | 228 +++++---
 drivers/i2c/busses/i2c-s3c2410.c                   |   2 +-
 drivers/i2c/busses/i2c-virtio.c                    |   4 +-
 drivers/i2c/i2c-core-base.c                        |  20 +-
 drivers/i2c/muxes/Kconfig                          |  16 +
 drivers/i2c/muxes/Makefile                         |   1 +
 drivers/i2c/muxes/i2c-mux-mule.c                   | 148 +++++
 drivers/net/ethernet/wangxun/Kconfig               |   3 +-
 63 files changed, 1480 insertions(+), 508 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-sprd.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/sprd,sc9860-i2c.yaml
 create mode 100644 Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
 create mode 100644 drivers/i2c/busses/i2c-keba.c
 create mode 100644 drivers/i2c/muxes/i2c-mux-mule.c

.
Date: Thu, 19 Sep 2024 11:31:35 +0200
From: Wolfram Sang <wsa@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
	Peter Rosin <peda@axentia.se>, Bartosz Golaszewski <brgl@bgdev.pl>,
	Andi Shyti <andi.shyti@kernel.org>
Subject: [PULL REQUEST] i2c-for-6.11-final-but-missed-it


--1hPKzSjkPqTv1RD6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

The following changes since commit da3ea35007d0af457a0afc87e84fddaebc4e0b63:

  Linux 6.11-rc7 (2024-09-08 14:50:28 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git tags/i2c-for-6.11-final-but-missed-it

for you to fetch changes up to e03ad65cea610b24c6991aebf432d5c6824cd002:

  Merge tag 'i2c-host-fixes-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current (2024-09-16 14:06:04 +0200)

----------------------------------------------------------------
i2c-for-6.11-final-but-missed-it

These are only fixes originally meant for 6.11 final. Because of serious
travel problems, I could not send them in time and so this is my first
PR for 6.12.

The Aspeed driver tracks the controller's state (stop, pending,
start, etc.). Previously, when the stop command was sent, the
state was not updated. The fix in this pull request ensures the
driver's state is aligned with the device status.

The Intel SCH driver receives a new look, and among the cleanups,
there is a fix where, due to an oversight, an if/else statement
was missing the else, causing it to move forward instead of
exiting the function in case of an error.

The Qualcomm GENI I2C driver adds the IRQF_NO_AUTOEN flag to the
IRQ setup to prevent unwanted interrupts during probe.

The Xilinx XPS controller fixes TX FIFO handling to avoid missed
NAKs. Another fix ensures the controller is reinitialized when
the bus appears busy.

----------------------------------------------------------------
Andy Shevchenko (1):
      i2c: isch: Add missed 'else'

Jinjie Ruan (1):
      i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq()

Robert Hancock (2):
      i2c: xiic: Wait for TX empty to avoid missed TX NAKs
      i2c: xiic: Try re-initialization on bus busy timeout

Tommy Huang (1):
      i2c: aspeed: Update the stop sw state when the bus recovery occurs

Wolfram Sang (1):
      Merge tag 'i2c-host-fixes-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current


with much appreciated quality assurance from
----------------------------------------------------------------
Manikanta Guntupalli (2):
      (Rev.) i2c: xiic: Try re-initialization on bus busy timeout
      (Rev.) i2c: xiic: Wait for TX empty to avoid missed TX NAKs

Vladimir Zapolskiy (1):
      (Rev.) i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq()

 drivers/i2c/busses/i2c-aspeed.c    | 16 +++++-----
 drivers/i2c/busses/i2c-isch.c      |  3 +-
 drivers/i2c/busses/i2c-qcom-geni.c |  4 +--
 drivers/i2c/busses/i2c-xiic.c      | 60 ++++++++++++++++++++++----------------
 4 files changed, 45 insertions(+), 38 deletions(-)

--1hPKzSjkPqTv1RD6
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAmbr73cACgkQFA3kzBSg
KbZeCw/+MxNvxS23CC3geCrlDklBymA1G+kvwpBtqwMumCjvTQQsGxNjUcKVYKPR
LgyVdubPsT1gtlX8vL28AyyDeK147tTj5K4Q2WP47TdJnOitAuQUO9gronzJ3q5M
2J38ueOyFpcsEFOKBWeo+CWu6VWX3vivWuBtpKLwT+ajM5uU+H9Mb/MWmPAK9zdw
lBJI+81/us2qZ0CYJTrr5VJ4uXaC7KetTWPFGbN9XQ1rG84FgKqyr/11SaI/Hg/V
7cjkJcNtJ+ELzaLd+cNtc4pgXSPwwMq9Ffgq6jr3IDih/4BiDvZhzHaASigyP/u2
nKt04o99wxmIHYtjUeIBs8NBROPdvm70shsHbJS2Ft0ZIW6FH5Ezi9/Wu4IfMfRr
xqseLN1o5j2Si5h4Tr6Wr69somKqUXmg+Qb/gofVtnQ6G+2+vSkqRWp9joHGA3E3
AbWf5UK/jRhhzE8NyiG4TbRg1DAN+kQiffjJPzxK3PEdEd6kbwTQsIxDJwdMf09d
5G03QdMhwUlFMoE1N1Eh5B0eafGrJtPtcvJffstbiDRmjLfBJ1+mP4DHbMcauAUA
Sw10VarZylqT32j1yLQWJq1DPb2G8bSqxu5A+D3oyo+1gd78BWicMOMAj8QdAD/M
vit3YH1bLiI2up6UNfetrEWmABJaFbYKgZawzKoH0WxXtb97LTU=
=8hRB
-----END PGP SIGNATURE-----

--1hPKzSjkPqTv1RD6--

.
