ARM: SAMSUNG: Add check to ensure that clksrc_clk does have multiple clock sources
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>
This commit is contained in:
Родитель
a0de298a0e
Коммит
b8792dbff6
|
@ -129,11 +129,16 @@ void __init_or_cpufreq s3c_set_clksrc(struct clksrc_clk *clk, bool announce)
|
||||||
{
|
{
|
||||||
struct clksrc_sources *srcs = clk->sources;
|
struct clksrc_sources *srcs = clk->sources;
|
||||||
u32 mask = bit_mask(clk->reg_src.shift, clk->reg_src.size);
|
u32 mask = bit_mask(clk->reg_src.shift, clk->reg_src.size);
|
||||||
u32 clksrc = 0;
|
u32 clksrc;
|
||||||
|
|
||||||
if (clk->reg_src.reg)
|
if (!clk->reg_src.reg) {
|
||||||
clksrc = __raw_readl(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 &= mask;
|
||||||
clksrc >>= clk->reg_src.shift;
|
clksrc >>= clk->reg_src.shift;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче