|
|
Log in / Subscribe / Register

i3c: Hot-Join improvements and MIPI HCI Hot-Join support

From:  Adrian Hunter <adrian.hunter-AT-intel.com>
To:  alexandre.belloni-AT-bootlin.com
Subject:  [PATCH V3 0/8] i3c: Hot-Join improvements and MIPI HCI Hot-Join support
Date:  Mon, 08 Jun 2026 08:43:04 +0300
Message-ID:  <20260608054312.10604-1-adrian.hunter@intel.com>
Cc:  Frank.Li-AT-nxp.com, david.nystrom-AT-est.tech, linux-i3c-AT-lists.infradead.org, linux-kernel-AT-vger.kernel.org
Archive-link:  Article

Hi

This series tightens the I3C core's handling of Hot-Join across system
suspend, shutdown and unregister, consolidates the per-driver Hot-Join
worker into the core, and finally wires the MIPI I3C HCI driver into the
new Hot-Join framework.


	Note all patches have now been reviewed by Frank.


It applies on top of:

  https://lore.kernel.org/linux-i3c/20260603090754.16252-1-...

which is also fully reviewed by Frank.

Patches 1-2 fix latent races in the existing Hot-Join machinery
(suspend vs. Hot-Join work, and concurrent sysfs writers).

Patches 3-5 consolidate the per-driver Hot-Join worker into the core
and add proper teardown via an i3c_bus_type shutdown callback.

Patch 6 defers driver-model registration of newly discovered devices
out of the DAA caller's context, so resume-time DAA does not push
device probing into the controller's resume sequence.

Patches 7-8 add Hot-Join support to MIPI I3C HCI.


Changes in V3:

    i3c: master: Serialize i3c_set_hotjoin() with the maintenance lock
	Add Frank's Rev'd by

    i3c: master: Defer new-device registration out of DAA caller context
	Add Frank's Rev'd by

Changes in V2:

    i3c: master: Make hot-join workqueue freezable to block hot-join during suspend
	Add Fixes tag
	Add Frank's Rev'd by

    i3c: master: Serialize i3c_set_hotjoin() with the maintenance lock
	Add Fixes tag

    i3c: master: Consolidate Hot-Join DAA work in the core
	Add Frank's Rev'd by

    i3c: master: Ensure Hot-Join operations are stopped on shutdown
	Add dependency note to commit message
	Add Fixes tag
	Add Frank's Rev'd by

    i3c: dw: Drop redundant Hot-Join cancel_work_sync() in shutdown
	Add Frank's Rev'd by

    i3c: master: Defer new-device registration out of DAA caller context
	Add comment about reg_work use
	Add Fixes tag

    i3c: master: Export i3c_master_enec_disec_locked()
	Add Frank's Rev'd by

    i3c: mipi-i3c-hci: Add Hot-Join support
	Add Frank's Rev'd by


Adrian Hunter (8):
      i3c: master: Make hot-join workqueue freezable to block hot-join during suspend
      i3c: master: Serialize i3c_set_hotjoin() with the maintenance lock
      i3c: master: Consolidate Hot-Join DAA work in the core
      i3c: master: Ensure Hot-Join operations are stopped on shutdown
      i3c: dw: Drop redundant Hot-Join cancel_work_sync() in shutdown
      i3c: master: Defer new-device registration out of DAA caller context
      i3c: master: Export i3c_master_enec_disec_locked()
      i3c: mipi-i3c-hci: Add Hot-Join support

 drivers/i3c/master.c                   | 129 ++++++++++++++++++++++++++-------
 drivers/i3c/master/dw-i3c-master.c     |  15 +---
 drivers/i3c/master/dw-i3c-master.h     |   2 -
 drivers/i3c/master/i3c-master-cdns.c   |  14 +---
 drivers/i3c/master/mipi-i3c-hci/core.c |  50 ++++++++++++-
 drivers/i3c/master/mipi-i3c-hci/dma.c  |   5 ++
 drivers/i3c/master/mipi-i3c-hci/hci.h  |   1 +
 drivers/i3c/master/mipi-i3c-hci/pio.c  |   5 ++
 drivers/i3c/master/svc-i3c-master.c    |  14 +---
 include/linux/i3c/master.h             |  16 +++-
 10 files changed, 179 insertions(+), 72 deletions(-)


Regards
Adrian



Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds