Re: [PATCH 09/17] i3c: renesas: Use reset_control_bulk_{assert, deassert}()
Frank Li <[email protected]>
| Newsgroups | org.infradead.lists.linux-i3c,org.kernel.vger.linux-kernel,org.kernel.vger.linux-renesas-soc |
|---|---|
| Message-ID | <ahCsOZ74txWyp0OO@lizhi-Precision-Tower-5810> |
On Fri, May 22, 2026 at 01:18:07PM +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]> > --- > 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 d32646deb69f..e5963270d6e5 100644 > --- a/drivers/i3c/master/renesas-i3c.c > +++ b/drivers/i3c/master/renesas-i3c.c > @@ -1414,24 +1414,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 }, > + }; Suppose it is also used in probe funciton. can move these into renesas_i3c Frank > 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); > > @@ -1441,19 +1439,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) > @@ -1484,10 +1482,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