Skip to content

Commit 410d736

Browse files
committed
Merge tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
Fix omap4 and later lost cpu1 interrupts for periodic timer A fix from Russell that took a while to get applied into fixes as I thought Russell is merging this one. * tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
2 parents 62a23bb + 50d6b3c commit 410d736

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

arch/arm/mach-omap2/cpuidle44xx.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
152152
mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) &&
153153
(cx->mpu_logic_state == PWRDM_POWER_OFF);
154154

155+
/* Enter broadcast mode for periodic timers */
156+
tick_broadcast_enable();
157+
158+
/* Enter broadcast mode for one-shot timers */
155159
tick_broadcast_enter();
156160

157161
/*
@@ -218,15 +222,6 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
218222
return index;
219223
}
220224

221-
/*
222-
* For each cpu, setup the broadcast timer because local timers
223-
* stops for the states above C1.
224-
*/
225-
static void omap_setup_broadcast_timer(void *arg)
226-
{
227-
tick_broadcast_enable();
228-
}
229-
230225
static struct cpuidle_driver omap4_idle_driver = {
231226
.name = "omap4_idle",
232227
.owner = THIS_MODULE,
@@ -319,8 +314,5 @@ int __init omap4_idle_init(void)
319314
if (!cpu_clkdm[0] || !cpu_clkdm[1])
320315
return -ENODEV;
321316

322-
/* Configure the broadcast timer on each cpu */
323-
on_each_cpu(omap_setup_broadcast_timer, NULL, 1);
324-
325317
return cpuidle_register(idle_driver, cpu_online_mask);
326318
}

0 commit comments

Comments
 (0)