Re: [PATCH v5 09/17] i3c: renesas: Use reset_control_bulk_{assert, deassert}()
Frank Li <[email protected]> Mon, 13 Jul 2026 13:02:52 -0400
| Newsgroups | org.infradead.lists.linux-i3c,org.kernel.vger.linux-kernel,org.kernel.vger.linux-renesas-soc |
|---|---|
| Message-ID | <alUaPJMt_kCaMfWh@lizhi-Precision-Tower-5810> |
On Mon, Jul 13, 2026 at 04:05:37PM +0300, Claudiu Beznea wrote: > From: Claudiu Beznea <[email protected]> > > Use reset_control_bulk_assert() and reset_control_bulk_deassert() in the > suspend and resume paths to simplify the code. > > Signed-off-by: Claudiu Beznea <[email protected]> > --- Reviewed-by: Frank Li <[email protected]> > > Changes in v5: > - none > > Changes in v4: > - none > > Changes in v3: > - none > > Changes in v2: > - none > > drivers/i3c/master/renesas-i3c.c | 30 +++++++++++++----------------- > 1 file changed, 13 insertions(+), 17 deletions(-) > > diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesas-i3c.c > index c459e40fd5ff..915090d0ad37 100644 > --- a/drivers/i3c/master/renesas-i3c.c > +++ b/drivers/i3c/master/renesas-i3c.c > @@ -1437,24 +1437,22 @@ static void renesas_i3c_remove(struct platform_device *pdev) > static int renesas_i3c_suspend(struct device *dev) > { > struct renesas_i3c *i3c = dev_get_drvdata(dev); > + struct reset_control_bulk_data resets[] = { > + { .rstc = i3c->presetn }, > + { .rstc = i3c->tresetn }, > + }; > int ret; > > i2c_mark_adapter_suspended(&i3c->base.i2c); > > - ret = reset_control_assert(i3c->presetn); > + ret = reset_control_bulk_assert(ARRAY_SIZE(resets), resets); > if (ret) > goto err_mark_resumed; > > - ret = reset_control_assert(i3c->tresetn); > - if (ret) > - goto err_presetn; > - > clk_bulk_disable(i3c->num_clks, i3c->clks); > > return 0; > > -err_presetn: > - reset_control_deassert(i3c->presetn); > err_mark_resumed: > i2c_mark_adapter_resumed(&i3c->base.i2c); > > @@ -1464,19 +1462,19 @@ static int renesas_i3c_suspend(struct device *dev) > static int renesas_i3c_resume(struct device *dev) > { > struct renesas_i3c *i3c = dev_get_drvdata(dev); > + struct reset_control_bulk_data resets[] = { > + { .rstc = i3c->presetn }, > + { .rstc = i3c->tresetn }, > + }; > int ret; > > - ret = reset_control_deassert(i3c->tresetn); > + ret = reset_control_bulk_deassert(ARRAY_SIZE(resets), resets); > if (ret) > return ret; > > - ret = reset_control_deassert(i3c->presetn); > - if (ret) > - goto err_tresetn; > - > ret = clk_bulk_enable(i3c->num_clks, i3c->clks); > if (ret) > - goto err_presetn; > + goto err_resets_asserted; > > ret = renesas_i3c_reset(i3c); > if (ret) > @@ -1507,10 +1505,8 @@ static int renesas_i3c_resume(struct device *dev) > > err_clks_disable: > clk_bulk_disable(i3c->num_clks, i3c->clks); > -err_presetn: > - reset_control_assert(i3c->presetn); > -err_tresetn: > - reset_control_assert(i3c->tresetn); > +err_resets_asserted: > + reset_control_bulk_assert(ARRAY_SIZE(resets), resets); > return ret; > } > > -- > 2.43.0 > -- linux-i3c mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-i3c