• Jesper Nilsson's avatar
    CRIS: GENERIC_TIME fixes · 60dbd663
    Jesper Nilsson authored
    GENERIC_TIME was not functional for CRIS, giving random backward
    time jumps.
    
    For CRISv32 implement a new clocksource using the free running counter
    and ditch the arch_gettimeoffset.
    
    The random time jumps still existed, but turned out to be the write_seqlock
    which was missing around our do_timer() call.
    
    So switch over to GENERIC_TIME using the clocksource for CRISv32.
    
    CRISv10 doesn't have the free running counter needed for the
    clocksource trick, but we can still use GENERIC_TIME with
    arch_gettimeoffset.
    
    Unfortunately, there were problems in using the prescaler register
    to timer0 for the gettimeoffset calculation, so it is now ignored,
    making our resolution worse by the tune of 40usec (0.4%) worst case.
    
    At the same time, clean up some formatting and use NSEC_PER_SEC
    instead of 1000000000.
    Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
    60dbd663
time.c 8.69 KB