[GIT PULL] I3C changes for 7.3

Alexandre Belloni <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,org.infradead.lists.linux-i3c
Message-ID <[email protected]>
Hello Linus,

Here is the i3c subsystem pull request for 7.3. We get a new driver this
cycle, for the AMD AXI I3C controller. There are also new features such
as IBI wakeup support, SETAASA device discovery and ACPI support for the
the DAA methods, meaning we can now communicate with  the SPD devices on
DDR5 modules.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

  Linux 7.2-rc1 (2026-06-28 12:01:31 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git tags/i3c/for-7.3

for you to fetch changes up to cab40cfc9e116acd4d60f95b4b1264cab78f3803:

  i3c: dw: reduce do_daa time if there's no client (2026-08-19 09:28:33 +0200)

----------------------------------------------------------------
I3C for 7.3

New driver:
 - AMD AXI I3C master controller

Subsystem:
 - I3C Common Command Code (CCC) handling improvements, especially around GET
   CCCs
 - SETAASA device discovery support
 - ACPI support for all existing DAA methods like SETDASA, SETNEWDA as well as
   I2C devices on I3C bus
 - IBI-based wakeup support

Drivers:
 - dw: SETAASA support
 - mipi-i3c-hci: advertise IBI wakeup capability, AMD_PT I3C controller support,
   PIO queue management support for HCI v1.2
 - renesas: improve suspend to RAM support, add runtime PM support

----------------------------------------------------------------
Adrian Hunter (16):
      i3c: master: Fix device_register() error path
      i3c: master: Fix info leak and UAF in device unregister path
      i3c: master: Fix recursive locking during device registration
      i3c: Fix unlocked dereference of dev->desc in i3c_device_get_supported_xfer_mode()
      i3c: master: Do not treat master device as a duplicate target
      i3c: master: Fix use-after-free of master->this
      i3c: Make dev->desc locking assumptions explicit
      i3c: master: Fix potential UAF in i3c_device_uevent()
      i3c: master: Fix potential UAF in i3c_device_match()
      i3c: master: Support IBI-based wakeup capability
      i3c: master: Report wakeup events for IBIs
      i3c: master: Add helper to query bus wakeup requirements
      i3c: master: Reject IBI requests from non-IBI-capable devices
      i3c: mipi-i3c-hci-pci: Propagate I3C wakeup requirements to PCI
      i3c: mipi-i3c-hci: Factor out i3c_hci_sysdev()
      i3c: mipi-i3c-hci: Advertise IBI wakeup capability

Adrian Ng Ho Yin (6):
      i3c: ccc: Add actual_len to struct i3c_ccc_cmd_payload
      i3c: master: Report actual GET CCC payload length on success
      i3c: master: dw: Map CCC hardware errors to I3C M0/M2
      i3c: master: Validate GET CCC payload length and retry Direct GET once
      i3c: master: Add optional_bytes for variable-length GET CCC validation
      i3c: master: require dests for read CCC commands

Akhil R (11):
      dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA
      i3c: master: Use unified device property interface
      i3c: master: Support ACPI enumeration of child devices
      i3c: master: Add support for devices using SETAASA
      i3c: master: Add support for devices without PID
      i3c: master: match I3C device through DT and ACPI
      i3c: dw-i3c-master: Add SETAASA as supported CCC
      i3c: dw-i3c-master: Add ACPI core clock frequency quirk
      i3c: dw-i3c-master: Add ACPI ID for Tegra410
      hwmon: spd5118: Remove 16-bit addressing
      hwmon: spd5118: Add I3C support

Can Peng (1):
      i3c: master: adi: add OF module alias for autoloading

Claudiu Beznea (18):
      i3c: renesas: Check that the transfer is valid before accessing it
      i3c: renesas: Restore STDBR and EXTBR registers on resume
      i3c: renesas: Follow the reset deassert order used in probe
      i3c: renesas: Reconfigure the DATBAS register on re-attach
      i3c: renesas: Reset the controller on resume
      i3c: renesas: Perform Dynamic Address Assignment on resume
      i3c: renesas: Clean DATBAS register on detach
      i3c: renesas: Fix out-of-bounds access for newdevs mask
      i3c: renesas: Use reset_control_bulk_{assert, deassert}()
      i3c: renesas: Return immediately if there is no transfer
      i3c: renesas: Follow a unified pattern for transfer and command initialization
      i3c: renesas: Drop the explicit memset() call
      i3c: renesas: Update HW registers after SW computations are done
      i3c: renesas: Organize structures to avoid unnecessary padding
      i3c: renesas: Use the "dev_name:irq_name" format for the interrupt name
      i3c: renesas: Drop unnecessary tab
      i3c: renesas: Add runtime PM support
      i3c: renesas: Drop unused structure member 'resuming'

Jakub Kicinski (1):
      i3c: dw: avoid shift-out-of-bounds when DAA assigns no devices

Jian-Ming Liao (3):
      i3c: mipi-i3c-hci: Fix missing STAT_IBI_STATUS_THLD in PIO mode
      i3c: mipi-i3c-hci: Add PIO queue management support for HCI v1.2
      i3c: mipi-i3c-hci: Add support for AMD_PT I3C controller

Jisheng Zhang (4):
      i3c: dw: use COMMAND_PORT_TRANSFER_ARG instead of hardcoding
      i3c: dw: make struct dw_i3c_cmd smaller
      i3c: dw: rename "pclk" to "apb" to match dt-binding
      i3c: dw: reduce do_daa time if there's no client

Manikanta Guntupalli (2):
      dt-bindings: i3c: Add AMD I3C master controller support
      i3c: master: Add driver for AMD AXI I3C master controller

Maoyi Xie (1):
      i3c: master: svc: bound IBI payload to the requested max_payload_len

Pengpeng Hou (1):
      i3c: master: svc: report timeout waiting for STOP idle

Runyu Xiao (1):
      i3c: master: adi: initialize the lock before enabling interrupts

Shubham Patil (2):
      dt-bindings: i3c: dw: Document missing optional core reset
      i3c: master: dw: Drop redundant core reset name

Swark Yang (1):
      dt-bindings: i3c: cdns: add Axiado AX3005 I3C variant

Tommaso Merciai (1):
      i3c: renesas: Don't register devices when ENTDAA times out

Tze Yee Ng (1):
      i3c: master: dw-i3c-master: fix OD timing for first broadcast

 .../devicetree/bindings/i3c/cdns,i3c-master.yaml   |    1 +
 Documentation/devicetree/bindings/i3c/i3c.yaml     |   36 +-
 .../bindings/i3c/snps,dw-i3c-master.yaml           |    3 +
 .../devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml  |   58 +
 MAINTAINERS                                        |    8 +
 drivers/hwmon/Kconfig                              |    9 +-
 drivers/hwmon/spd5118.c                            |  119 +--
 drivers/i3c/device.c                               |   13 +-
 drivers/i3c/internals.h                            |    5 +
 drivers/i3c/master.c                               |  632 +++++++++--
 drivers/i3c/master/Kconfig                         |   15 +
 drivers/i3c/master/Makefile                        |    1 +
 drivers/i3c/master/adi-i3c-master.c                |   19 +-
 drivers/i3c/master/amd-i3c-master.c                | 1124 ++++++++++++++++++++
 drivers/i3c/master/dw-i3c-master.c                 |  188 +++-
 drivers/i3c/master/dw-i3c-master.h                 |    1 +
 drivers/i3c/master/i3c-master-cdns.c               |    3 +
 drivers/i3c/master/mipi-i3c-hci/core.c             |   30 +-
 drivers/i3c/master/mipi-i3c-hci/dma.c              |   15 +-
 drivers/i3c/master/mipi-i3c-hci/hci.h              |    7 +
 drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c |   32 +-
 drivers/i3c/master/mipi-i3c-hci/pio.c              |   74 +-
 drivers/i3c/master/renesas-i3c.c                   |  390 +++++--
 drivers/i3c/master/svc-i3c-master.c                |   22 +-
 include/dt-bindings/i3c/i3c.h                      |    4 +
 include/linux/i3c/ccc.h                            |   12 +-
 include/linux/i3c/master.h                         |   27 +-
 27 files changed, 2470 insertions(+), 378 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
 create mode 100644 drivers/i3c/master/amd-i3c-master.c

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.