[PATCH] ARM: mxs/clock-mx28: fix up name##_set_rate

Shawn Guo shawn.guo at freescale.com
Mon Apr 4 10:18:19 EDT 2011


On Mon, Apr 04, 2011 at 04:12:04PM +0200, Uwe Kleine-König wrote:
> For the lcdif clock get_rate looks as follows:
> 
> 	read div from HW_CLKCTRL_DIS_LCDIF.DIV
> 	return clk_get_rate(clk->parent) / div
> 
> with clk->parent being ref_pix_clk on my system.
> 
> ref_pix_clk's rate depends on HW_CLKCTRL_FRAC1.PIXFRAC.
> 
> The set_rate function for lcdif does:
> 
> 	parent_rate = clk_get_rate(clk->parent);
> 	based on that calculate frac and div such that
> 	  parent_rate * 18 / frac / div is near the requested rate.
> 	HW_CLKCTRL_FRAC1.PIXFRAC is updated with frac
> 	HW_CLKCTRL_DIS_LCDIF.DIV is updated with div
> 
> For this calculation to be correct parent_rate needs to be
> initialized not with the clock rate of lcdif's parent (i.e. ref_pix) but
> that of its grandparent (i.e. ref_pix' parent == pll0_clk).
> 
> The obvious downside of this patch is that now set_rate(lcdif) changes
> its parent's rate, too.  Still this is better than a wrong rate.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

Acked-by: Shawn Guo <shawn.guo at freescale.com>

-- 
Regards,
Shawn




More information about the linux-arm-kernel mailing list