summaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/h8300_timer16.c
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2015-12-05 02:48:15 +0900
committerDaniel Lezcano <daniel.lezcano@linaro.org>2015-12-16 11:33:31 +0100
commit2f445e0aa00e3bdbcf6e99b88a6aab54b6b02f2a (patch)
tree75f3b7ee1c436fc7cf0a7e1180263201cc7e0f68 /drivers/clocksource/h8300_timer16.c
parent2a0ff87774e468e4b146fe5af9ffadf5169424f9 (diff)
downloadlinux-2f445e0aa00e3bdbcf6e99b88a6aab54b6b02f2a.tar.bz2
clocksource/drivers/h8300: Fix timer not overflow case
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Diffstat (limited to 'drivers/clocksource/h8300_timer16.c')
-rw-r--r--drivers/clocksource/h8300_timer16.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/clocksource/h8300_timer16.c b/drivers/clocksource/h8300_timer16.c
index b14a8da90ecc..934ed0bceec5 100644
--- a/drivers/clocksource/h8300_timer16.c
+++ b/drivers/clocksource/h8300_timer16.c
@@ -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;
}