[GIT PULL] i2c for v7.4, part 2

From: Andi Shyti

Date: Sun Oct 25 2026 - 16:20:44 EST


Hi Linus,

as anticipated, here is the second part of the I2C pull request
for v7.4.

This round introduces dynamic transfer timeouts in the I2C core,
already used by qcom-geni. There is also support for additional
transfer modes in imx and a handful of driver fixes.

I've also merged Igor's Rust I2C pull request, which removes an
unsafe conversion.

The branch is rebased on top of your part 1 I2C merge[*].

I'll now start queuing patches for a possible third week of the
merge window. Otherwise, they will go into v7.5.

Thanks and wishing you a good rest of your holidays,
Andi

[*] bb436f2a8568 ("Merge tag 'i2c-7.4-part1' ...")

The following changes since commit bb436f2a8568d14f176475c79b0d5069f0a6f9e3:

Merge tag 'i2c-7.4-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux (2026-10-22 07:36:22 -1000)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-7.4-part2

for you to fetch changes up to f7b70efba26963bf725f10574cc071f86cd5ee1d:

i2c: sh_mobile: request IRQs after mapping registers (2026-10-24 00:05:15 +0200)

----------------------------------------------------------------
i2c for v7.4, part 2

This second part introduces dynamic transfer timeouts in the I2C
core, already used by qcom-geni. Alongside some driver
improvements and fixes, it also brings in the Rust I2C pull
request.

Core:

- core, qcom-geni: add and use a dynamic timeout helper
- acpi: fix adapter reference leak when creating I2C clients

Drivers:

- imx: support reversed address direction and no-start transfers
- designware: queue block data reads once length is known
- mt7621: skip the second data register for chunks up to 4 bytes
- sh_mobile: ensure IRQs are freed before unmapping registers

Rust:

- Remove unsound device-to-client reference conversion

----------------------------------------------------------------
Andi Shyti (1):
Merge tag 'rust-i2c-for-7.4' into i2c/i2c

Aniket Randive (2):
i2c: core: Add i2c_update_timeout() helper for dynamic transfer timeouts
i2c: qcom-geni: Add dynamic transfer timeout based on transfer length and frequency

Christian Marangi (1):
i2c: mt7621: fix copying uninitialized kernel stack with reduced page_len

Ma Ke (1):
i2c: acpi: Fix adapter reference leak in i2c_acpi_new_device_by_fwnode()

Myeonghun Pak (1):
i2c: sh_mobile: request IRQs after mapping registers

Navon John Lukose (1):
i2c: designware: queue only one read command for block reads

Nicolás Antinori (1):
rust: i2c: remove TryFrom<&Device> implementation for &I2cClient

Vincent Jardin (1):
i2c: imx: add I2C_M_REV_DIR_ADDR and I2C_M_NOSTART

drivers/i2c/Kconfig | 13 +++++++++++++
drivers/i2c/busses/i2c-designware-master.c | 8 ++++++++
drivers/i2c/busses/i2c-imx.c | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------
drivers/i2c/busses/i2c-mt7621.c | 9 ++++++---
drivers/i2c/busses/i2c-qcom-geni.c | 48 +++++++++++++++++++++++++++++++++++++++---------
drivers/i2c/busses/i2c-sh_mobile.c | 8 ++++----
drivers/i2c/i2c-core-acpi.c | 6 +++++-
drivers/i2c/i2c-core-base.c | 43 +++++++++++++++++++++++++++++++++++++++++++
drivers/i2c/i2c-dev.c | 3 +++
include/linux/i2c.h | 13 +++++++++++++
rust/kernel/i2c.rs | 21 ---------------------
11 files changed, 251 insertions(+), 78 deletions(-)