mirror of https://gitee.com/openkylin/linux.git
ARM: OMAP2+: Add hwmod flag for HWMOD_RECONFIG_IO_CHAIN
Commit cc824534d4
("ARM: OMAP2+: hwmod: Rearm wake-up interrupts
for DT when MUSB is idled") fixed issues with hung UART wake-up
events by calling _reconfigure_io_chain() when MUSB is connected
or disconnected.
As pointed out by Paul Walmsley, we may need to also call
_reconfigure_io_chain() in other cases, so it should be a separate
flag. Let's add HWMOD_RECONFIG_IO_CHAIN as suggested by Paul.
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
377fb3f5d9
commit
6a08b11add
|
@ -2185,7 +2185,7 @@ static int _enable(struct omap_hwmod *oh)
|
|||
oh->mux->pads_dynamic))) {
|
||||
omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);
|
||||
_reconfigure_io_chain();
|
||||
} else if (oh->flags & HWMOD_FORCE_MSTANDBY) {
|
||||
} else if (oh->flags & HWMOD_RECONFIG_IO_CHAIN) {
|
||||
_reconfigure_io_chain();
|
||||
}
|
||||
|
||||
|
@ -2293,7 +2293,7 @@ static int _idle(struct omap_hwmod *oh)
|
|||
if (oh->mux && oh->mux->pads_dynamic) {
|
||||
omap_hwmod_mux(oh->mux, _HWMOD_STATE_IDLE);
|
||||
_reconfigure_io_chain();
|
||||
} else if (oh->flags & HWMOD_FORCE_MSTANDBY) {
|
||||
} else if (oh->flags & HWMOD_RECONFIG_IO_CHAIN) {
|
||||
_reconfigure_io_chain();
|
||||
}
|
||||
|
||||
|
|
|
@ -514,6 +514,9 @@ struct omap_hwmod_omap4_prcm {
|
|||
* 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)
|
||||
* HWMOD_RECONFIG_IO_CHAIN: omap_hwmod code needs to reconfigure wake-up
|
||||
* events by calling _reconfigure_io_chain() when a device is enabled
|
||||
* or idled.
|
||||
*/
|
||||
#define HWMOD_SWSUP_SIDLE (1 << 0)
|
||||
#define HWMOD_SWSUP_MSTANDBY (1 << 1)
|
||||
|
@ -528,6 +531,7 @@ struct omap_hwmod_omap4_prcm {
|
|||
#define HWMOD_BLOCK_WFI (1 << 10)
|
||||
#define HWMOD_FORCE_MSTANDBY (1 << 11)
|
||||
#define HWMOD_SWSUP_SIDLE_ACT (1 << 12)
|
||||
#define HWMOD_RECONFIG_IO_CHAIN (1 << 13)
|
||||
|
||||
/*
|
||||
* omap_hwmod._int_flags definitions
|
||||
|
|
|
@ -1730,8 +1730,8 @@ static struct omap_hwmod omap3xxx_usbhsotg_hwmod = {
|
|||
* Note that musb has OTG_FORCESTDBY register that controls MSTANDBY
|
||||
* signal when MIDLEMODE is set to force-idle.
|
||||
*/
|
||||
.flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE
|
||||
| HWMOD_FORCE_MSTANDBY,
|
||||
.flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE |
|
||||
HWMOD_FORCE_MSTANDBY | HWMOD_RECONFIG_IO_CHAIN,
|
||||
};
|
||||
|
||||
/* usb_otg_hs */
|
||||
|
|
Loading…
Reference in New Issue