From 7f08e7fca0934f0bf6f5312800f8088c14db5e93 Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 8 Dec 2021 15:28:59 +0100 Subject: [PATCH] wip: Revert "ARM: omap3: enable off mode automatically" This reverts commit fb2c599f056640d289b2147fbe6d9eaee689f1b2. This commit surfaces problems on the Nokia N900 when the system is actually in idle mode - causing oopses. --- arch/arm/mach-omap2/pm-debug.c | 2 ++ arch/arm/mach-omap2/pm.c | 2 -- arch/arm/mach-omap2/pm.h | 4 ++++ arch/arm/mach-omap2/pm34xx.c | 27 ++------------------------- 4 files changed, 8 insertions(+), 27 deletions(-) diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 865943488a307..6c0278a8f6bca 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c @@ -34,6 +34,8 @@ #include "prm2xxx_3xxx.h" #include "pm.h" +u32 enable_off_mode; + #ifdef CONFIG_DEBUG_FS #include #include diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index da829a90fe8c1..01ec1ba4878b2 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -28,8 +28,6 @@ #include "clockdomain.h" #include "pm.h" -u32 enable_off_mode; - #ifdef CONFIG_SUSPEND /* * omap_pm_suspend: points to a function that does the SoC-specific diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h index 80e84ae66aeef..2a883a0c1fcdb 100644 --- a/arch/arm/mach-omap2/pm.h +++ b/arch/arm/mach-omap2/pm.h @@ -49,7 +49,11 @@ static inline int omap4_opp_init(void) extern int omap3_pm_get_suspend_state(struct powerdomain *pwrdm); extern int omap3_pm_set_suspend_state(struct powerdomain *pwrdm, int state); +#ifdef CONFIG_PM_DEBUG extern u32 enable_off_mode; +#else +#define enable_off_mode 0 +#endif #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS) extern void pm_dbg_update_time(struct powerdomain *pwrdm, int prev); diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index d73c7b692116a..d37fb3304a2e5 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include @@ -406,12 +406,7 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused) if (!pwrst) return -ENOMEM; pwrst->pwrdm = pwrdm; - - if (enable_off_mode) - pwrst->next_state = PWRDM_POWER_OFF; - else - pwrst->next_state = PWRDM_POWER_RET; - + pwrst->next_state = PWRDM_POWER_RET; list_add(&pwrst->node, &pwrst_list); if (pwrdm_has_hdwr_sar(pwrdm)) @@ -445,22 +440,6 @@ static void __init pm_errata_configure(void) } } -static void __init omap3_pm_check_pmic(void) -{ - struct device_node *np; - - np = of_find_compatible_node(NULL, NULL, "ti,twl4030-power-idle"); - if (!np) - np = of_find_compatible_node(NULL, NULL, "ti,twl4030-power-idle-osc-off"); - - if (np) { - of_node_put(np); - enable_off_mode = 1; - } else { - enable_off_mode = 0; - } -} - int __init omap3_pm_init(void) { struct power_state *pwrst, *tmp; @@ -494,8 +473,6 @@ int __init omap3_pm_init(void) goto err2; } - omap3_pm_check_pmic(); - ret = pwrdm_for_each(pwrdms_setup, NULL); if (ret) { pr_err("Failed to setup powerdomains\n");