soc: renesas: rcar-sysc: Make PM domain initialization more robust
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 5 Jun 2018 15:05:15 +0000 (17:05 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Fri, 8 Jun 2018 08:04:25 +0000 (10:04 +0200)
commit977d5ba4507dfe5b1346597ee57750262d8d2b19
treea7d412f6ad63fb6e5f36f27ff1d070cade182012
parent086b399965a7ee7e50c3b3c57f2dba30ff0334b0
soc: renesas: rcar-sysc: Make PM domain initialization more robust

The quirk for R-Car E3 ES1.0 added in commit 086b399965a7ee7e ("soc:
renesas: r8a77990-sysc: Add workaround for 3DG-{A,B}") makes the 3DG-A
PM domain a subdomain of the 3DG-B PM domain.  However, registering
3DG-A with its parent fails silently, as the 3DG-B PM domain hasn't been
registered yet, and such failures are never reported.

Fix this by:
  1. Splitting PM Domain initialization in two steps, so all PM domains
     are registered before any child-parent links are established,
  2. Reporting any failures in establishing child-parent relations.

Check for and report pm_genpd_init() failures, too, as that function
gained a return value in commit 7eb231c337e00735 ("PM / Domains: Convert
pm_genpd_init() to return an error code").

Fixes: 086b399965a7ee7e ("soc: renesas: r8a77990-sysc: Add workaround for 3DG-{A,B}")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/soc/renesas/rcar-sysc.c