Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80bbe9f2 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

arm: Use tick broadcast expired check



Avoid going back into deep idle if the tick broadcast IPI is about to
fire.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: LAK <linux-arm-kernel@lists.infradead.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Arjan van de Veen <arjan@infradead.org>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Jason Liu <liu.h.jason@gmail.com>
Link: http://lkml.kernel.org/r/20130306111537.640722922@linutronix.de
parent eaa907c5
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -199,7 +199,16 @@ void cpu_idle(void)
#ifdef CONFIG_PL310_ERRATA_769419
			wmb();
#endif
			if (hlt_counter) {
			/*
			 * In poll mode we reenable interrupts and spin.
			 *
			 * Also if we detected in the wakeup from idle
			 * path that the tick broadcast device expired
			 * for us, we don't want to go deep idle as we
			 * know that the IPI is going to arrive right
			 * away
			 */
			if (hlt_counter || tick_check_broadcast_expired()) {
				local_irq_enable();
				cpu_relax();
			} else if (!need_resched()) {