Do not suspend the regulator.
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 6 Mar 2009 21:23:34 +0000 (21:23 +0000)
committerLars-Peter Clausen <lars@metafoo.de>
Fri, 6 Mar 2009 21:23:34 +0000 (21:23 +0000)
SVN-Revision: 14767

target/linux/s3c24xx/patches-2.6.28/005-dont-suspend-regulator.patch [new file with mode: 0644]

diff --git a/target/linux/s3c24xx/patches-2.6.28/005-dont-suspend-regulator.patch b/target/linux/s3c24xx/patches-2.6.28/005-dont-suspend-regulator.patch
new file mode 100644 (file)
index 0000000..12204c8
--- /dev/null
@@ -0,0 +1,65 @@
+From: Balaji Rao <balajirrao@openmoko.org>
+Date: Mon, 5 Jan 2009 10:33:28 +0000 (+0000)
+Subject: pcf50633 remove suspend_enable/disable regulator functions
+X-Git-Tag: fork-to-stable-2.6.29-rc2~142
+X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=commitdiff_plain;h=276709515c384f4239c9479b56fcf008ae37eec8
+
+pcf50633 remove suspend_enable/disable regulator functions
+
+Since we don't switch to PMU.standby, on suspend we should not
+be defining these.
+
+Btw, this fixes the WSOD I observed on andy-tracking and also
+gets rid of the regulator related backtrace seen upon resume.
+
+Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
+---
+
+diff --git a/arch/arm/plat-s3c/pm.c b/arch/arm/plat-s3c/pm.c
+index 422dea2..889f191 100644
+--- a/arch/arm/plat-s3c/pm.c
++++ b/arch/arm/plat-s3c/pm.c
+@@ -18,7 +18,6 @@
+ #include <linux/delay.h>
+ #include <linux/serial_core.h>
+ #include <linux/io.h>
+-#include <linux/regulator/machine.h>
+ #include <asm/cacheflush.h>
+ #include <mach/hardware.h>
+@@ -353,22 +352,11 @@ static void s3c_pm_finish(void)
+       s3c_pm_check_cleanup();
+ }
+-static int s3c_pm_begin(suspend_state_t state)
+-{
+-        int ret = 0;
+-
+-#ifdef CONFIG_REGULATOR
+-        ret = regulator_suspend_prepare(state);
+-#endif
+-        return ret;
+-}
+-
+ static struct platform_suspend_ops s3c_pm_ops = {
+       .enter          = s3c_pm_enter,
+       .prepare        = s3c_pm_prepare,
+       .finish         = s3c_pm_finish,
+       .valid          = suspend_valid_only_mem,
+-      .begin          = s3c_pm_begin,
+ };
+ /* s3c_pm_init
+diff --git a/drivers/regulator/pcf50633-regulator.c b/drivers/regulator/pcf50633-regulator.c
+index 343f43e..d284200 100644
+--- a/drivers/regulator/pcf50633-regulator.c
++++ b/drivers/regulator/pcf50633-regulator.c
+@@ -249,8 +249,6 @@ struct regulator_ops pcf50633_regulator_ops = {
+       .enable = pcf50633_regulator_enable,
+       .disable = pcf50633_regulator_disable,
+       .is_enabled = pcf50633_regulator_is_enabled,
+-      .set_suspend_enable = pcf50633_regulator_enable,
+-      .set_suspend_disable = pcf50633_regulator_disable,
+ };
+ static struct regulator_desc regulators[] = {