* Russell King - ARM Linux <[EMAIL PROTECTED]> [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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html