* Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> [080409 21:22]: > On Wed, Apr 09, 2008 at 08:57:13PM +0000, Tony Lindgren wrote: > > Here's how it now looks: > > Not quite. The point I was trying to make is: > > > @@ -302,15 +288,17 @@ > > int eth_cs; > > unsigned long cs_mem_base; > > unsigned int muxed, rate; > > - struct clk *l3ck; > > + struct clk *gpmc_fck; > > > > eth_cs = H4_SMC91X_CS; > > > > - l3ck = clk_get(NULL, "core_l3_ck"); > > - if (IS_ERR(l3ck)) > > - rate = 100000000; > > - else > > - rate = clk_get_rate(l3ck); > > + gpmc_fck = clk_get(NULL, "gpmc_fck"); /* Always on ENABLE_ON_INIT */ > > + if (IS_ERR(gpmc_fck)) { > > + WARN_ON(1); > > + return; > > + } > > + > > that there should be a call to clk_enable() here - if even if it's > apparantly "always on". (If it's always enabled then the call won't > do any harm anyway - it just serves to ensure that the API conditions > are followed.) OK, I'll clk_enable() before clk_get_rate() and then clk_disable() to make usecounts happy as rate is only needed for setting GPMC timings: @@ -302,15 +288,19 @@ int eth_cs; unsigned long cs_mem_base; unsigned int muxed, rate; - struct clk *l3ck; + struct clk *gpmc_fck; eth_cs = H4_SMC91X_CS; - l3ck = clk_get(NULL, "core_l3_ck"); - if (IS_ERR(l3ck)) - rate = 100000000; - else - rate = clk_get_rate(l3ck); + gpmc_fck = clk_get(NULL, "gpmc_fck"); /* Always on ENABLE_ON_INIT */ + if (IS_ERR(gpmc_fck)) { + WARN_ON(1); + return; + } + + clk_enable(gpmc_fck); + rate = clk_get_rate(gpmc_fck); + clk_disable(gpmc_fck); if (is_gpmc_muxed()) muxed = 0x200; Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html