clk: reverse default clk provider initialization order in of_clk_init()
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Thu, 27 Mar 2014 10:43:32 +0000 (11:43 +0100)
committerMike Turquette <mturquette@linaro.org>
Thu, 27 Mar 2014 23:48:06 +0000 (16:48 -0700)
This restores the default clocks registration order as parsed from
devicetree, i.e. as before commit 1771b10d605d26ccee771a7fb4b08718
"clk: respect the clock dependencies in of_clk_init", for when there
is no explicit parent clock dependencies between clock providers
specified in the device tree.

It prevents regressions (boot failure, division by 0 errors) on
imx and exynos platforms.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
drivers/clk/clk.c

index 1fbcb2b107e7d1e0b13638cefc1e1fda6eaecc30..6b44022753cb799962f0fca76937c52394c628b5 100644 (file)
@@ -2612,7 +2612,7 @@ void __init of_clk_init(const struct of_device_id *matches)
 
                parent->clk_init_cb = match->data;
                parent->np = np;
-               list_add(&parent->node, &clk_provider_list);
+               list_add_tail(&parent->node, &clk_provider_list);
        }
 
        while (!list_empty(&clk_provider_list)) {