On 03.04.2010 23:09, Carl-Daniel Hailfinger wrote:
On 03.04.2010 01:28, Urja Rannikko wrote:
This seems to "fix" this for me - the delay loop is still unreliable, but atleast the recalibration attempts only take 5s instead of minutes. This is a combined diff for both my fix and the % fix.
Index: udelay.c
--- udelay.c (revision 990) +++ udelay.c (working copy) @@ -66,6 +66,7 @@ printf("Calibrating delay loop... ");
recalibrate:
- count = 1000; while (1) { timeusec = measure_delay(count); if (timeusec > 1000000 / 4)
Does the timing get more reliable if you try the following stuff:
- change the comparison above to
if (timeusec > 1000)
I expect this little change to improve precision dramatically.
- Make sure there are no CPU frequency changes or sleep states
Signed-off-by: Urja Rannikko urjaman@gmail.com
In general, I like your patch. I just hope to get more input if reducing the abort condition in the loop from 250 ms to 1 ms helps as well.
We need your patch, I had just hoped that improved precision would be possible with the additional change I suggested. Anyway, this is Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Can you commit?
Regards, Carl-Daniel