clocksource/drivers/h8300: Fix timer not overflow case
authorYoshinori Sato <ysato@users.sourceforge.jp>
Fri, 4 Dec 2015 17:48:15 +0000 (02:48 +0900)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 16 Dec 2015 10:33:31 +0000 (11:33 +0100)
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/clocksource/h8300_timer16.c

index b14a8da..934ed0b 100644 (file)
@@ -48,8 +48,10 @@ static unsigned long timer16_get_counter(struct timer16_priv *p)
        } while (unlikely((o1 != o2) || (v1 > v2 && v1 < v3)
                          || (v2 > v3 && v2 < v1) || (v3 > v1 && v3 < v2)));
 
-       v2 |= 0x10000;
-       return v2;
+       if (likely(!o1))
+               return v2;
+       else
+               return v2 + 0x10000;
 }