soc: renesas: rmobile-sysc: Mark fwnode when PM domain is added
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 16 Feb 2021 12:39:58 +0000 (13:39 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 8 Mar 2021 09:25:00 +0000 (10:25 +0100)
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@google.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20210216123958.3180014-1-geert+renesas@glider.be
drivers/soc/renesas/rmobile-sysc.c

index bf64d05..204e613 100644 (file)
@@ -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();