]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Timer: omap-common: support 64bit timer value in get_ticks()
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 22 Aug 2013 13:56:40 +0000 (15:56 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 22 Aug 2013 13:56:40 +0000 (15:56 +0200)
arch/arm/cpu/armv7/omap-common/timer.c

index 95da2741787e64afd2ec64618177ee919545a4d0..152995aac5ed828f22864643f696842c3f441652 100644 (file)
@@ -89,6 +89,7 @@ int timer_init(void)
 #endif
        gd->arch.lastinc = -30 * TIMER_CLOCK;
        gd->arch.tbl = TIMER_START;
+       gd->arch.tbu = 0;
        gd->arch.timer_rate_hz = TIMER_CLOCK;
 
        return 0;
@@ -133,9 +134,11 @@ unsigned long long get_ticks(void)
        ulong now = readl(&timer_base->tcrr);
        ulong inc = now - gd->arch.lastinc;
 
+       if (gd->arch.tbl + inc < gd->arch.tbl)
+               gd->arch.tbu++;
        gd->arch.tbl += inc;
        gd->arch.lastinc = now;
-       return gd->arch.tbl;
+       return ((unsigned long long)gd->arch.tbu << 32) | gd->arch.tbl;
 }
 
 /*