Re: [PATCH v2 06/17] i3c: renesas: Perform Dynamic Address Assignment on resume

Frank Li <[email protected]>
Newsgroups org.infradead.lists.linux-i3c,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <ah85RaUXmaBVFkYk@lizhi-Precision-Tower-5810>
On Tue, Jun 02, 2026 at 04:28:13PM +0300, Claudiu Beznea wrote:
> From: Claudiu Beznea <[email protected]>
>
> The Renesas RZ/G3S SoC supports a power saving mode where power to most
> SoC components, including I3C, is turned off.
>
> On systems where the I3C devices also loses power during suspend (e.g. NXP
> P3T1085UK-ARD connected to the PMOD1_6A connector of the RZ SMARC Carrier
> 2 + Renesas RZ/G3S SMARC SOM), the devices becomes unreachable after
> resume.
>
> Running DAA in the controller resume path restores communication. However,
> DAA relies on interrupts for TX/RX, which are not available in the noirq
> suspend/resume phase (unless they are wakeup interrupts). For this, the
> suspend/resume callbacks were moved out of the noirq phase. Currently,
> there is no identified use case on either the Renesas RZ/G3S or Renesas
> RZ/G3E SoCs that requires the controller suspend/resume hooks to be part of
> the noirq suspend/resume phase.
>
> Since renesas_i3c_reset() is not called anymore in atomic context
> update it to use read_poll_timeout().
>
> To cover the case where the controller had already attached all the
> i3c->maxdevs devices before a suspend/resume cycle and i3c->free_pos is
> zero, struct renesas_i3c::resuming flag was introduced.
>
> The flag is set in renesas_i3c_resume() before calling
> i3c_master_do_daa_ext() and checked in renesas_i3c_daa(). In case it is
> set the previous saved DATBAS register values are used for the slots
> already occupied before suspend. This allows keeping alive the connection
> to the I3C devices when all the supported slots are occupied before
> suspend.
>
> When resuming from suspend, renesas_i3c_daa() re-runs DAA for al
> slots except those used by I2C devices. I2C devices are attached during
> probe, at bus initialization time, and always occupy the first positions in
> i3c->free_pos. In addition, there are no DATBAS register settings
> associated with them.
>
> Fixes: e7218986319b ("i3c: renesas: Add suspend/resume support")
> Cc: [email protected]
> Signed-off-by: Claudiu Beznea <[email protected]>
> ---

Please check sashiko review result

https://sashiko.dev/#/patchset/20260602132824.3541151-1-claudiu.beznea%40kernel.org

Frank

>

-- 
linux-i3c mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-i3c
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.