summaryrefslogtreecommitdiff
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2012-03-23 14:08:51 +0800
committerJason Liu <r64343@freescale.com>2012-07-20 13:24:24 +0800
commit6c3b67138ca26e6f7a941f15a2546d7df7e94abd (patch)
treecbb2982d5f410e391ee4cff47fadc116355e3cb7 /arch/arm/kernel
parent947d9bad8ecec953f3ceea0e33e6c12485e9a254 (diff)
ENGR00177757 Fix suspend/resume issue when enable localtimer
Need to disable localtimer's PPI when suspend, or ARM core will run into exception when resume. Signed-off-by: Anson Huang <b20788@freescale.com>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/smp_twd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c
index 983f8cc078cb..a5a2f45069d5 100644
--- a/arch/arm/kernel/smp_twd.c
+++ b/arch/arm/kernel/smp_twd.c
@@ -43,15 +43,18 @@ static void twd_set_mode(enum clock_event_mode mode,
ctrl = TWD_TIMER_CONTROL_ENABLE | TWD_TIMER_CONTROL_IT_ENABLE
| TWD_TIMER_CONTROL_PERIODIC;
__raw_writel(twd_timer_rate / HZ, twd_base + TWD_TIMER_LOAD);
+ gic_enable_ppi(clk->irq);
break;
case CLOCK_EVT_MODE_ONESHOT:
/* period set, and timer enabled in 'next_event' hook */
ctrl = TWD_TIMER_CONTROL_IT_ENABLE | TWD_TIMER_CONTROL_ONESHOT;
+ gic_enable_ppi(clk->irq);
break;
case CLOCK_EVT_MODE_UNUSED:
case CLOCK_EVT_MODE_SHUTDOWN:
default:
ctrl = 0;
+ gic_disable_ppi(clk->irq);
}
__raw_writel(ctrl, twd_base + TWD_TIMER_CONTROL);