Skip to content
  • Mark Fortescue's avatar
    [SPARC32]: Fix rounding errors in ndelay/udelay implementation. · 196bffa5
    Mark Fortescue authored
    
    
    __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: default avatarMark Fortescue <mark@mtfhpc.demon.co.uk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    196bffa5