aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index b91f7acdda6f..6c67d9ebf166 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -378,17 +378,23 @@ static __be32 __iomem *rstcr;
378static int __init setup_rstcr(void) 378static int __init setup_rstcr(void)
379{ 379{
380 struct device_node *np; 380 struct device_node *np;
381 np = of_find_node_by_name(NULL, "global-utilities"); 381
382 if ((np && of_get_property(np, "fsl,has-rstcr", NULL))) { 382 for_each_node_by_name(np, "global-utilities") {
383 rstcr = of_iomap(np, 0) + 0xb0; 383 if ((of_get_property(np, "fsl,has-rstcr", NULL))) {
384 if (!rstcr) 384 rstcr = of_iomap(np, 0) + 0xb0;
385 printk (KERN_EMERG "Error: reset control register " 385 if (!rstcr)
386 "not mapped!\n"); 386 printk (KERN_ERR "Error: reset control "
387 } else if (ppc_md.restart == fsl_rstcr_restart) 387 "register not mapped!\n");
388 break;
389 }
390 }
391
392 if (!rstcr && ppc_md.restart == fsl_rstcr_restart)
388 printk(KERN_ERR "No RSTCR register, warm reboot won't work\n"); 393 printk(KERN_ERR "No RSTCR register, warm reboot won't work\n");
389 394
390 if (np) 395 if (np)
391 of_node_put(np); 396 of_node_put(np);
397
392 return 0; 398 return 0;
393} 399}
394 400