Thanks Romit..

Will fix and send the patch.

Regards
Teerth

> -----Original Message-----
> From: Dasgupta, Romit
> Sent: Wednesday, December 23, 2009 8:02 PM
> To: Reddy, Teerth
> Cc: [email protected]
> Subject: Re: [PATCH] OMAP3: PM: Dynamic calculation of SDRC clock
> stabilization delay
> 
> > +#ifdef CONFIG_ARCH_OMAP3
> > +unsigned long (*_omap3_sram_delay)(unsigned long);
> > +unsigned int  measure_sram_delay(unsigned int loop)
> > +{
> > +   static struct omap_dm_timer *gpt;
> > +   unsigned long flags, diff = 0, gt_rate, mpurate;
> > +   unsigned int delay_sram, error_gain;
> > +
> > +   omap_dm_timer_init();
> > +   gpt = omap_dm_timer_request_specific(10);
> > +   if (!gpt)
> > +           pr_err("Could not get the gptimer\n");
> > +   omap_dm_timer_set_source(gpt, OMAP_TIMER_SRC_SYS_CLK);
> > +
> > +   gt_rate = clk_get_rate(omap_dm_timer_get_fclk(gpt));
> > +   omap_dm_timer_set_load_start(gpt, 0, 0);
> > +
> > +   local_irq_save(flags);
> > +   diff = _omap3_sram_delay(loop);
> > +   local_irq_restore(flags);
> > +
> > +   omap_dm_timer_stop(gpt);
> > +   omap_dm_timer_free(gpt);
> > +
> > +   mpurate = clk_get_rate(clk_get(NULL, "arm_fck"));
> > +
> > +   /* calculate the sram delay */
> > +   delay_sram = ((((mpurate/1000000) / (gt_rate/1000000)) * diff) /
> 20000);
> Can remove the 1000000 from the denominators as they cancel out.
> > +
> > +   error_gain = ((mpurate/1000000) / (gt_rate/1000000));
> Same as before.
> > +   delay_sram = delay_sram + error_gain;
> > +
> > +   return delay_sram;
> > +}

--
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

Reply via email to