Re: [PATCH v5 05/17] i3c: renesas: Reset the controller on resume
[email protected] Mon, 13 Jul 2026 13:35:50 +0000
| Newsgroups | org.infradead.lists.linux-i3c |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: Pre-existing issues: - [High] Hardware reset lines are deasserted before controller clocks are enabled during system resume. -- --- Patch [5]: [PATCH v5 05/17] i3c: renesas: Reset the controller on resume --- commit 9230535f3beec14a9429fad84d54b26dbaff5182 Author: Claudiu Beznea <[email protected]> i3c: renesas: Reset the controller on resume This commit updates the resume handler to reset the controller after enabling the clocks to match the probe sequence. It also switches renesas_i3c_reset() to use read_poll_timeout_atomic() since the resume callback runs in the noirq phase. > diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesas-i3c.c > index 517ac2df9bd40..6590da962592a 100644 > --- a/drivers/i3c/master/renesas-i3c.c > +++ b/drivers/i3c/master/renesas-i3c.c [ ... ] > @@ -1483,6 +1483,10 @@ static int renesas_i3c_resume_noirq(struct device *dev) > if (ret) > goto err_presetn; > > + ret = renesas_i3c_reset(i3c); > + if (ret) > + goto err_clks_disable; > + [Severity: High] This isn't a bug introduced by this patch, but does the sequence in renesas_i3c_resume_noirq() correctly handle hardware constraints? Looking at the code just above this hunk, the resets are deasserted before the clocks are enabled: ret = reset_control_deassert(i3c->tresetn); if (ret) return ret; ret = reset_control_deassert(i3c->presetn); if (ret) goto err_tresetn; ret = clk_bulk_enable(i3c->num_clks, i3c->clks); Deasserting peripheral resets while its clocks are disabled can cause the hardware to remain stuck in reset or enter an undefined, non-functional state when the clocks are subsequently enabled. Could this leave the I3C master unresponsive after resume? > /* Re-store I3C registers value. */ > renesas_writel(i3c->regs, STDBR, i3c->i3c_STDBR); > renesas_writel(i3c->regs, EXTBR, i3c->extbr); -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=5 -- linux-i3c mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-i3c