diff options
author | Anson Huang <b20788@freescale.com> | 2012-03-23 14:08:51 +0800 |
---|---|---|
committer | Anson Huang <b20788@freescale.com> | 2012-03-26 09:19:56 +0800 |
commit | f144c9090211b3d54c346811b9648e5b6c28eddc (patch) | |
tree | 190d9feac56fc0f186a79ebea384231a8e74cfa4 /arch/arm/kernel | |
parent | 9fdac494a4363f137279b3951c1b4ea748e54e74 (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.c | 3 |
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); |