We already ack pending IRQs during suspend, which renders the check for pending IRQs quite unnecessary. Signed-off-by: Felipe Balbi <balbi@xxxxxx> --- arch/arm/mach-omap2/common.h | 1 - arch/arm/mach-omap2/cpuidle34xx.c | 2 +- arch/arm/mach-omap2/irq.c | 11 ----------- arch/arm/mach-omap2/pm24xx.c | 11 ----------- arch/arm/mach-omap2/pm34xx.c | 3 --- 5 files changed, 1 insertion(+), 27 deletions(-) diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 427160b..f44a410 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -198,7 +198,6 @@ extern struct device *omap4_get_dsp_device(void); void omap2_init_irq(void); void omap3_init_irq(void); void ti81xx_init_irq(void); -extern int omap_irq_pending(void); void omap_gic_of_init(void); #ifdef CONFIG_CACHE_L2X0 diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index e18709d..96cced3 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c @@ -112,7 +112,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev, { struct omap3_idle_statedata *cx = &omap3_idle_data[index]; - if (omap_irq_pending() || need_resched()) + if (need_resched()) goto return_sleep_time; /* Deny idle for C1 */ diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 5425258..397157a 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@ -186,17 +186,6 @@ static void __init omap_irq_soft_reset(void) intc_writel(INTC_SYSCONFIG, 1 << 0); } -int omap_irq_pending(void) -{ - int irq; - - for (irq = 0; irq < omap_nr_irqs; irq += 32) - if (intc_readl(INTC_PENDING_IRQ0 + - ((irq >> 5) << 5))) - return 1; - return 0; -} - static __init void omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) { diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index 8c07594..33ea27c 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c @@ -88,17 +88,11 @@ static int omap2_enter_full_retention(void) omap2_gpio_prepare_for_idle(0); - /* One last check for pending IRQs to avoid extra latency due - * to sleeping unnecessarily. */ - if (omap_irq_pending()) - goto no_sleep; - /* Jump to SRAM suspend code */ omap2_sram_suspend(sdrc_read_reg(SDRC_DLLA_CTRL), OMAP_SDRC_REGADDR(SDRC_DLLA_CTRL), OMAP_SDRC_REGADDR(SDRC_POWER)); -no_sleep: omap2_gpio_resume_after_idle(); clk_enable(osc_ck); @@ -181,15 +175,10 @@ static int omap2_can_sleep(void) static void omap2_pm_idle(void) { if (!omap2_can_sleep()) { - if (omap_irq_pending()) - return; omap2_enter_mpu_retention(); return; } - if (omap_irq_pending()) - return; - omap2_enter_full_retention(); } diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 2764796..7c43fa0 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -338,9 +338,6 @@ void omap_sram_idle(void) static void omap3_pm_idle(void) { - if (omap_irq_pending()) - return; - trace_cpu_idle(1, smp_processor_id()); omap_sram_idle(); -- 1.8.4.GIT -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html