/* Use only for very small delays ( < 1 msec). Should probably use a lookup table, really, as the multiplications take much too long with short delays. This is a "reasonable" implementation, though (and the first constant multiplications gets optimized away if the delay is a constant)  */
void __udelay(unsigned long us)
/* Use only for very small delays ( < 1 msec). Should probably use a lookup table, really, as the multiplications take much too long with short delays. This is a "reasonable" implementation, though (and the first constant multiplications gets optimized away if the delay is a constant)  */
void __udelay(unsigned long us)
{
	unsigned int lpj = current_cpu_data.udelay_val;
	__delay((us * 0x000010c7ull * HZ * lpj) >> 32);
}