RE: [PATCH 12/17] OMAP2/3: Do not enable AUTOIDLE in interrupt controller

Girish S G
2009-10-19T18:31:35Z

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of
> Tero.Kristo@nokia.com
> Sent: Monday, October 19, 2009 5:19 AM
>
> Anyway, I guess the optimization would look something like this:
>
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index 210a806..7a98321 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -93,6 +93,8 @@ u32 voltage_off_while_idle;
> OMAP3430_ST_GPT5_MASK|OMAP3430_ST_GPT4_MASK|\
> OMAP3430_ST_GPT3_MASK|OMAP3430_ST_GPT2_MASK)
>
> +#define INTC_SYSCONFIG 0x10
> +
> struct power_state {
> struct powerdomain *pwrdm;
> u32 next_state;
> @@ -505,6 +507,12 @@ void omap_sram_idle(void)
> prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
> omap3_enable_io_chain();
> }
> + /*
> + * Disable INTC autoidle as it can cause interrupt controller
> + * to enter unknown state with right combination of sleep / wakeup
> + * transitions
> + */
> + omap_writel(0x0, OMAP34XX_IC_BASE + INTC_SYSCONFIG);
>
> /*
> * On EMU/HS devices ROM code restores a SRDC value
> @@ -561,6 +569,8 @@ void omap_sram_idle(void)
> OMAP3430_GR_MOD,
> OMAP3_PRM_VOLTCTRL_OFFSET);
> }
> + /* Re-enable interrupt controller autoidle */
> + omap_writel(OMAP3430_AUTOIDLE, OMAP34XX_IC_BASE + INTC_SYSCONFIG);
>
> /*
> * Enable smartreflex after WFI. Only needed if we

Ack from me.

-Girish

> --
> 1.5.4.3--
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html