On Wed, Aug 29, 2012 at 10:25:24PM +0100, Will Deacon wrote:
From: Jonathan Austin <redacted>
The current timer-based delay loop relies on the architected timer to
initiate the switch away from the polling-based implementation. This is
unfortunate for platforms without the architected timers but with a
suitable delay source (that is, constant frequency, always powered-up
and ticking as long as the CPUs are online).
This patch introduces a registration mechanism for the delay timer
(which provides an unconditional read_current_timer implementation) and
updates the architected timer code to use the new interface.
[...]
+int read_current_timer(unsigned long *timer_val)
+{
+ return delay_timer ? delay_timer->read_current_timer() : -ENXIO;
+}
So this is clearly wrong with the new function prototype -- I've fixed it on
my delay branch (when the mirrors sync).
Will