pmaports/device/community/linux-nokia-n900/0007-Revert-ARM-omap3-enable-off-mode-automatically.patch

118 lines
3.3 KiB
Diff
Raw Normal View History

From d3b8625fd76fc839fc95e90b9117fafaf2d377bb Mon Sep 17 00:00:00 2001
From: Merlijn Wajer <merlijn@wizzup.org>
Date: Wed, 8 Dec 2021 15:28:59 +0100
Subject: [PATCH] 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 b3110399a3fb..104634a9b5b3 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 <linux/debugfs.h>
#include <linux/seq_file.h>
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index da829a90fe8c..01ec1ba4878b 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 80e84ae66aee..2a883a0c1fcd 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 d73c7b692116..d37fb3304a2e 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -25,7 +25,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/slab.h>
-#include <linux/of.h>
+#include <linux/omap-gpmc.h>
#include <trace/events/power.h>
@@ -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");