118 lines
3.3 KiB
Diff
118 lines
3.3 KiB
Diff
|
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");
|