Hi Ben, On Mon, Jan 18, 2010 at 10:10 AM, Ben Dooks <ben-linux@xxxxxxxxx> wrote: > On Mon, Jan 18, 2010 at 09:38:17AM +0900, Thomas Abraham wrote: >> The function s3c_set_clksrc should return if the clksrc_clk clock has >> only one possible parent clock. > > Does this actually relate to a real bug or is this something that you've > come across whilst reading the code? This is required in cases where a clock has a divider but no mux. In s3c_register_clksrc function, after the default set of clock operations are assigned, the parent clock set function s3c_set_clksrc is called. For clocks that do not have mux, the call to s3c_set_clksrc is incorrect. > > From arch/arm/plat-samnsung/clock-clksrc.c: > > 181 if (!clksrc->reg_div.reg) > 182 clksrc->clk.ops = &clksrc_ops_nodiv; > 183 else if (!clksrc->reg_src.reg) > 184 clksrc->clk.ops = &clksrc_ops_nosrc; > 185 else > 186 clksrc->clk.ops = &clksrc_ops; > > So we change the ops dependant on which register(s) we have availalbe. > >> Signed-of-by: Thomas Abraham <thomas.ab@xxxxxxxxxxx> >> --- >> arch/arm/plat-samsung/clock-clksrc.c | 5 +++-- >> 1 files changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm/plat-samsung/clock-clksrc.c b/arch/arm/plat-samsung/clock-clksrc.c >> index 33c633a..80da4c4 100644 >> --- a/arch/arm/plat-samsung/clock-clksrc.c >> +++ b/arch/arm/plat-samsung/clock-clksrc.c >> @@ -131,9 +131,10 @@ void __init_or_cpufreq s3c_set_clksrc(struct clksrc_clk *clk, bool announce) >> u32 mask = bit_mask(clk->reg_src.shift, clk->reg_src.size); >> u32 clksrc = 0; >> >> - if (clk->reg_src.reg) >> - clksrc = __raw_readl(clk->reg_src.reg); >> + if (!clk->reg_src.reg) >> + return; >> >> + clksrc = __raw_readl(clk->reg_src.reg); >> clksrc &= mask; >> clksrc >>= clk->reg_src.shift; >> >> -- >> 1.6.3.3 >> > > -- > -- > Ben > > Q: What's a light-year? > A: One-third less calories than a regular year. > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Thanks, Thomas. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html