diff options
author | Tony Lindgren <tony@atomide.com> | 2018-05-21 10:34:17 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2018-05-21 10:34:17 -0700 |
commit | 3bb3799cd4233b7c24622ae8c41455fb27a55c0f (patch) | |
tree | a67e8208aba5cc0b0cc05de0428be29f759ef0b8 /arch/arm/mach-omap2 | |
parent | a9f73632416fe50549b95573fe63144a0a3ed9f1 (diff) | |
parent | f74297dd9354c7115988c5e640d89fcfffbc70a5 (diff) |
Merge branch 'omap-for-v4.18/soc-fixes' into omap-for-v4.18/soc
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/pm44xx.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index b3870220612e..78e1ace7d17d 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c @@ -131,6 +131,19 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused) return 0; } + /* + * Bootloader or kexec boot may have LOGICRETSTATE cleared + * for some domains. This is the case when kexec booting from + * Android kernels that support off mode for example. + * Make sure it's set at least for core and per, otherwise + * we currently will see lost GPIO interrupts for wlcore and + * smsc911x at least if per hits retention during idle. + */ + if (!strncmp(pwrdm->name, "core", 4) || + !strncmp(pwrdm->name, "l4per", 5) || + !strncmp(pwrdm->name, "wkup", 4)) + pwrdm_set_logic_retst(pwrdm, PWRDM_POWER_RET); + pwrst = kmalloc(sizeof(struct power_state), GFP_ATOMIC); if (!pwrst) return -ENOMEM; |