@@ -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
@@ -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 */
@@ -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)
{
@@ -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();
}
@@ -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();
We already ack pending IRQs during suspend, which renders the check for pending IRQs quite unnecessary. Signed-off-by: Felipe Balbi <balbi@ti.com> --- 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(-)