projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
297b80b
)
rk29: timer: try to fix stop on "Calibrating delay loop" bug
author
黄涛
<huangtao@rock-chips.com>
Wed, 23 Mar 2011 07:13:08 +0000
(15:13 +0800)
committer
黄涛
<huangtao@rock-chips.com>
Wed, 23 Mar 2011 07:16:02 +0000
(15:16 +0800)
arch/arm/mach-rk29/timer.c
patch
|
blob
|
history
diff --git
a/arch/arm/mach-rk29/timer.c
b/arch/arm/mach-rk29/timer.c
index 89f24857346be545bb64f0fb42be2ddfffbf5805..c390129d268f41083621333ba7640f951e994835 100644
(file)
--- a/
arch/arm/mach-rk29/timer.c
+++ b/
arch/arm/mach-rk29/timer.c
@@
-95,9
+95,12
@@
static void rk29_timer_set_mode(enum clock_event_mode mode, struct clock_event_d
{
switch (mode) {
case CLOCK_EVT_MODE_PERIODIC:
- RK_TIMER_DISABLE(TIMER_CLKEVT);
- RK_TIMER_SETCOUNT(TIMER_CLKEVT, 24000000/HZ - 1);
- RK_TIMER_ENABLE(TIMER_CLKEVT);
+ do {
+ RK_TIMER_DISABLE(TIMER_CLKEVT);
+ RK_TIMER_SETCOUNT(TIMER_CLKEVT, 24000000/HZ - 1);
+ RK_TIMER_ENABLE(TIMER_CLKEVT);
+ } while (RK_TIMER_READVALUE(TIMER_CLKEVT) > (24000000/HZ - 1));
+ break;
case CLOCK_EVT_MODE_RESUME:
case CLOCK_EVT_MODE_ONESHOT:
break;