ARM: SAMSUNG: Add check to ensure that clksrc_clk does have multiple clock sources
authorThomas Abraham <thomas.ab@samsung.com>
Mon, 18 Jan 2010 05:30:16 +0000 (14:30 +0900)
committerBen Dooks <ben-linux@fluff.org>
Mon, 18 Jan 2010 06:28:37 +0000 (15:28 +0900)
Adds a additional check in s3c_set_clksrc function to ensure that the clksrc_clk
does have a choice of multiple clock sources. In addition to this, a check is
added to ensure that a parent is assigned to the clksrc_clk in case it does not
have a choice of parent clocks.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/plat-samsung/clock-clksrc.c

index 33c633a8be8dece4167e4d421713cbc82e8179fa..98c6b8859f49334f37231b05452d3b3d30de7b1d 100644 (file)
@@ -129,11 +129,16 @@ void __init_or_cpufreq s3c_set_clksrc(struct clksrc_clk *clk, bool announce)
 {
        struct clksrc_sources *srcs = clk->sources;
        u32 mask = bit_mask(clk->reg_src.shift, clk->reg_src.size);
-       u32 clksrc = 0;
+       u32 clksrc;
 
-       if (clk->reg_src.reg)
-               clksrc = __raw_readl(clk->reg_src.reg);
+       if (!clk->reg_src.reg) {
+               if (!clk->clk.parent)
+                       printk(KERN_ERR "%s: no parent clock specified\n",
+                               clk->clk.name);
+               return;
+       }
 
+       clksrc = __raw_readl(clk->reg_src.reg);
        clksrc &= mask;
        clksrc >>= clk->reg_src.shift;