[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGETcx_YeiNAMkSxtbTSZcsQugxK4=CwhR6UfbSLLHzQ2EfguA@mail.gmail.com>
Date: Tue, 16 Feb 2021 10:25:59 -0800
From: Saravana Kannan <saravanak@...gle.com>
To: Geert Uytterhoeven <geert+renesas@...der.be>
Cc: Magnus Damm <magnus.damm@...il.com>,
Sebastian Reichel <sre@...nel.org>,
Linux-Renesas <linux-renesas-soc@...r.kernel.org>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
Linux PM <linux-pm@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: Re: [PATCH v2] soc: renesas: rmobile-sysc: Mark fwnode when PM domain
is added
On Tue, Feb 16, 2021 at 4:40 AM Geert Uytterhoeven
<geert+renesas@...der.be> wrote:
>
> Currently, there are two drivers binding to the R-Mobile System
> Controller (SYSC):
> - The rmobile-sysc driver registers PM domains from a core_initcall(),
> and does not use a platform driver,
> - The optional rmobile-reset driver registers a reset handler, and
> does use a platform driver.
>
> As fw_devlink only considers devices, commit bab2d712eeaf9d60 ("PM:
> domains: Mark fwnodes when their powerdomain is added/removed") works
> only for PM Domain drivers where the DT node is a real device node, and
> not for PM Domain drivers using a hierarchical representation inside a
> subnode. Hence if fw_devlink is enabled, probing of on-chip devices
> that are part of the SYSC PM domain is deferred until the optional
> rmobile-reset driver has been bound. If the rmobile-reset driver is
> not available, this will never happen, and thus lead to complete system
> boot failures.
>
> Fix this by explicitly marking the fwnode initialized.
>
> Suggested-by: Saravana Kannan <saravanak@...gle.com>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@...der.be>
> ---
> This is v2 of "soc: renesas: rmobile-sysc: Set OF_POPULATED and absorb
> reset handling".
> To be queued in renesas-devel as a fix for v5.12 if v5.12-rc1 will have
> fw_devlink enabled.
>
> v2:
> - Call fwnode_dev_initialized() instead of setting OF_POPULATED,
> - Drop reset handling move, as fwnode_dev_initialized() does not
> prevent the rmobile-reset driver from binding against the same
> device.
> ---
> drivers/soc/renesas/rmobile-sysc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/soc/renesas/rmobile-sysc.c b/drivers/soc/renesas/rmobile-sysc.c
> index bf64d052f9245db5..204e6135180b919c 100644
> --- a/drivers/soc/renesas/rmobile-sysc.c
> +++ b/drivers/soc/renesas/rmobile-sysc.c
> @@ -342,6 +342,8 @@ static int __init rmobile_init_pm_domains(void)
> of_node_put(np);
> break;
> }
> +
> + fwnode_dev_initialized(&np->fwnode, true);
> }
>
> put_special_pds();
Acked-by: Saravana Kannan <saravanak@...gle.com>
Keep in mind that this might have to land in driver-core-next since
that API is currently only in driver-core-next.
-Saravana
Powered by blists - more mailing lists