]> git.baikalelectronics.ru Git - kernel.git/commit
[SPARC32]: Fix rounding errors in ndelay/udelay implementation.
authorMark Fortescue <mark@mtfhpc.demon.co.uk>
Sun, 22 Jul 2007 02:17:41 +0000 (19:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 22 Jul 2007 02:17:41 +0000 (19:17 -0700)
commit2459b98f36f634f427b1a2dcc6975467ee6416b6
tree24675b94165ea6886827d47006cb12e9dd6b3539
parent2cbdf416d36c5a20eaac28bf00268485dafcf26d
[SPARC32]: Fix rounding errors in ndelay/udelay implementation.

__ndelay and __udelay have not been delayung >= specified time.
The problem with __ndelay has been tacked down to the rounding of the
multiplier constant. By changing this, delays > app 18us are correctly
calculated.
The problem with __udelay has also been tracked down to rounding issues.
Changing the multiplier constant (to match that used in sparc64) corrects
for large delays and adding in a rounding constant corrects for trunctaion
errors in the claculations.
Many short delays will return without looping. This is not an error as there
is the fixed delay of doing all the maths to calculate the loop count.

Signed-off-by: Mark Fortescue <mark@mtfhpc.demon.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/entry.S