Browse Source

Merge branch 'omap-for-v4.18/soc-fixes' into omap-for-v4.18/soc

Tony Lindgren 7 năm trước cách đây
mục cha
commit
3bb3799cd4
1 tập tin đã thay đổi với 13 bổ sung0 xóa
  1. 13 0
      arch/arm/mach-omap2/pm44xx.c

+ 13 - 0
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;