diff options
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.h | 4 | 
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index c28552bfeb8..5739429894b 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -1356,7 +1356,8 @@ static void _enable_sysc(struct omap_hwmod *oh)  	clkdm = _get_clkdm(oh);  	if (sf & SYSC_HAS_SIDLEMODE) { -		if (oh->flags & HWMOD_SWSUP_SIDLE) { +		if (oh->flags & HWMOD_SWSUP_SIDLE || +		    oh->flags & HWMOD_SWSUP_SIDLE_ACT) {  			idlemode = HWMOD_IDLEMODE_NO;  		} else {  			if (sf & SYSC_HAS_ENAWAKEUP) diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h index fe5962921f0..8498774b5fb 100644 --- a/arch/arm/mach-omap2/omap_hwmod.h +++ b/arch/arm/mach-omap2/omap_hwmod.h @@ -463,6 +463,9 @@ struct omap_hwmod_omap4_prcm {   *     is kept in force-standby mode. Failing to do so causes PM problems   *     with musb on OMAP3630 at least. Note that musb has a dedicated register   *     to control MSTANDBY signal when MIDLEMODE is set to force-standby. + * HWMOD_SWSUP_SIDLE_ACT: omap_hwmod code should manually bring the module + *     out of idle, but rely on smart-idle to the put it back in idle, + *     so the wakeups are still functional (Only known case for now is UART)   */  #define HWMOD_SWSUP_SIDLE			(1 << 0)  #define HWMOD_SWSUP_MSTANDBY			(1 << 1) @@ -476,6 +479,7 @@ struct omap_hwmod_omap4_prcm {  #define HWMOD_EXT_OPT_MAIN_CLK			(1 << 9)  #define HWMOD_BLOCK_WFI				(1 << 10)  #define HWMOD_FORCE_MSTANDBY			(1 << 11) +#define HWMOD_SWSUP_SIDLE_ACT			(1 << 12)  /*   * omap_hwmod._int_flags definitions  |