if (clk->flags & RATE_CKCTL) { dsor_exp = calc_dsor_exp(clk, rate); if (dsor_exp < 0) return dsor_exp; if (dsor_exp > 3) dsor_exp = 3; return clk->parent->rate / (1 << dsor_exp); }  if(clk->round_rate != 0) return clk->round_rate(clk, rate);  return clk->rate; 
return ret; 
long clk_round_rate(struct clk *clk, unsigned long rate){	int dsor_exp;	if (clk->flags & RATE_FIXED)		return clk->rate;	if (clk->flags & RATE_CKCTL) {		dsor_exp = calc_dsor_exp(clk, rate);		if (dsor_exp < 0)			return dsor_exp;		if (dsor_exp > 3)			dsor_exp = 3;		return clk->parent->rate / (1 << dsor_exp);	}	if(clk->round_rate != 0)		return clk->round_rate(clk, rate);	return clk->rate;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1a8bfa1eb998af6e650ad26201f7cae9f2a2fdc8/clock.c/clean/arch/arm/plat-omap/clock.c