[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<TYCPR01MB11332C28E89179D2E852A31638685A@TYCPR01MB11332.jpnprd01.prod.outlook.com>
Date: Thu, 8 Jan 2026 11:30:32 +0000
From: Biju Das <biju.das.jz@...renesas.com>
To: geert <geert@...ux-m68k.org>, biju.das.au <biju.das.au@...il.com>
CC: Michael Turquette <mturquette@...libre.com>, Philipp Zabel
<p.zabel@...gutronix.de>, Stephen Boyd <sboyd@...nel.org>,
"linux-renesas-soc@...r.kernel.org" <linux-renesas-soc@...r.kernel.org>,
"linux-clk@...r.kernel.org" <linux-clk@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Prabhakar
Mahadev Lad <prabhakar.mahadev-lad.rj@...renesas.com>
Subject: RE: [PATCH 1/2] clk: renesas: rzg2l: Deassert reset on assert timeout
Hi Geert,
Thanks for the feedback.
> -----Original Message-----
> From: Geert Uytterhoeven <geert@...ux-m68k.org>
> Sent: 07 January 2026 11:16
> Subject: Re: [PATCH 1/2] clk: renesas: rzg2l: Deassert reset on assert timeout
>
> Hi Biju,
>
> On Mon, 8 Dec 2025 at 11:14, Biju <biju.das.au@...il.com> wrote:
> > From: Biju Das <biju.das.jz@...renesas.com>
> >
> > If the assert() fails due to timeout error, set the reset register bit
> > back to deasserted state. This change is needed especially for
> > handling assert error in suspend() callback that expect the device to
> > be in operational state in case of failure.
> >
> > Signed-off-by: Biju Das <biju.das.jz@...renesas.com>
>
> Thanks for your patch!
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@...der.be>
>
> However, I am wondering what you think about the alternative below?
>
> > --- a/drivers/clk/renesas/rzg2l-cpg.c
> > +++ b/drivers/clk/renesas/rzg2l-cpg.c
> > @@ -1669,8 +1669,11 @@ static int __rzg2l_cpg_assert(struct
> > reset_controller_dev *rcdev,
> >
> > ret = readl_poll_timeout_atomic(priv->base + reg, value,
> > assert == !!(value & mask),
> > 10, 200);
>
> If this loop would use its own "u32 mon" instead of reusing "value"...
OK.
>
> > - if (ret && !assert) {
> > + if (ret) {
>
> ... then "value" would still have the wanted state here...
>
> > value = mask << 16;
> > + if (assert)
> > + value |= mask;
> > +
>
> ... and you can just switch back to the old state using:
>
> value ^= mask;
Agreed. Will send v2 incorporating those comments.
Cheers,
Biju
Powered by blists - more mailing lists