]> git.ipfire.org Git - thirdparty/linux.git/commit
i3c: master: Add i3c_master_do_daa_ext() for post-hibernation address recovery
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 23 Jan 2026 06:33:23 +0000 (08:33 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 30 Jan 2026 23:02:24 +0000 (00:02 +0100)
commitc481ef12e713fb7c292d04f53b3532ac0804ab3d
tree8539d7c542765c3611799378ba601c3bd9bb2b02
parentb58eaa4761ab02fc38c39d674a6bcdd55e00f388
i3c: master: Add i3c_master_do_daa_ext() for post-hibernation address recovery

After system hibernation, I3C Dynamic Addresses may be reassigned at boot
and no longer match the values recorded before suspend. Introduce
i3c_master_do_daa_ext() to handle this situation.

The restore procedure is straightforward: issue a Reset Dynamic Address
Assignment (RSTDAA), then run the standard DAA sequence. The existing DAA
logic already supports detecting and updating devices whose dynamic
addresses differ from previously known values.

Refactor the DAA path by introducing a shared helper used by both the
normal i3c_master_do_daa() path and the new extended restore function,
and correct the kernel-doc in the process.

Export i3c_master_do_daa_ext() so that master drivers can invoke it from
their PM restore callbacks.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260123063325.8210-2-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master.c
include/linux/i3c/master.h