static void frob_mem_refresh(int cpu_slowing_down,			     unsigned long clock_tick,			     unsigned long old_divisor, unsigned long divisor){	unsigned long old_refr_count, refr_count, mctrl;	refr_count  = (clock_tick * MCTRL0_REFR_INTERVAL);	refr_count /= (MCTRL0_REFR_CLKS_P_CNT * divisor * 1000000000UL);	mctrl = read_hbreg(HBIRD_MEM_CNTL0_ADDR);	old_refr_count = (mctrl & MCTRL0_REFR_COUNT_MASK)		>> MCTRL0_REFR_COUNT_SHIFT;	mctrl &= ~MCTRL0_REFR_COUNT_MASK;	mctrl |= refr_count << MCTRL0_REFR_COUNT_SHIFT;	write_hbreg(HBIRD_MEM_CNTL0_ADDR, mctrl);	mctrl = read_hbreg(HBIRD_MEM_CNTL0_ADDR);	if (cpu_slowing_down && !(mctrl & MCTRL0_SREFRESH_ENAB)) {		unsigned long usecs;		/* We have to wait for both refresh counts (old		 * and new) to go to zero.		 */		usecs = (MCTRL0_REFR_CLKS_P_CNT *			 (refr_count + old_refr_count) *			 1000000UL *			 old_divisor) / clock_tick;		udelay(usecs + 1UL);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2cab224d1f6557e7014601f251d6a41982963e6b/us2e_cpufreq.c/clean/arch/sparc64/kernel/us2e_cpufreq.c