On Fri, Apr 30, 2010 at 03:11:20PM -0700, Kevin Hilman wrote:
Colin Cross [off-list ref] writes:
quoted
An alternative to this patch would be to add a config option to use
sched_clock() to provide the counter instead of the cycle loop. The
same loops_per_jiffy calibration could be done to determine the
sched_clock frequency. Any machine with an available constant tick
rate counter, which is likely to be used for sched_clock() already,
can enable CONFIG_UDELAY_USES_SCHED_CLOCK.
Or even better, why not have an option to use the clocksource which is
most likely using the constant tick timer as well.
We may be running into the same problem which we did with the printk
clock - that is using a machine provided sched_clock() or clocksource
requires MMIO accesses, which can only be done after the IO mappings
have been initialized.
Let's hope no one ever uses udelay() before the necessary IO mappings
are present.