summaryrefslogtreecommitdiff
path: root/target/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch')
-rwxr-xr-xtarget/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch94
1 files changed, 94 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch b/target/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch
new file mode 100755
index 0000000..17af5b4
--- /dev/null
+++ b/target/linux/s3c24xx/patches-2.6.26/1168-change-lcm-keep-power-faster-resume.patch.patch
@@ -0,0 +1,94 @@
+From b022e94ed594ce88e0aeec92d0cd56cc9aa2758d Mon Sep 17 00:00:00 2001
+From: Andy Green <andy@openmoko.com>
+Date: Fri, 25 Jul 2008 23:06:13 +0100
+Subject: [PATCH] change-lcm-keep-power-faster-resume.patch
+
+The LCM spins for 100ms during resume for not much reason. Leave it powered
+(it is meant to pull uA when suspended) and get nice fast resume to video.
+
+Signed-off-by: Andy Green <andy@openmoko.com>
+---
+ arch/arm/mach-s3c2440/mach-gta02.c | 1 +
+ drivers/video/display/jbt6k74.c | 24 ++++--------------------
+ 2 files changed, 5 insertions(+), 20 deletions(-)
+
+diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
+index accdbc5..d5841d7 100644
+--- a/arch/arm/mach-s3c2440/mach-gta02.c
++++ b/arch/arm/mach-s3c2440/mach-gta02.c
+@@ -553,6 +553,7 @@ static struct pcf50633_platform_data gta02_pcf_pdata = {
+ },
+ [PCF50633_REGULATOR_LDO6] = {
+ .name = "user1",
++ .flags = PMU_VRAIL_F_SUSPEND_ON,
+ .voltage = {
+ .init = 0,
+ .max = 3300,
+diff --git a/drivers/video/display/jbt6k74.c b/drivers/video/display/jbt6k74.c
+index 7cc00ad..6fa1fe7 100644
+--- a/drivers/video/display/jbt6k74.c
++++ b/drivers/video/display/jbt6k74.c
+@@ -628,7 +628,7 @@ static int jbt_suspend(struct spi_device *spi, pm_message_t state)
+ struct jbt_info *jbt = dev_get_drvdata(&spi->dev);
+ struct jbt6k74_platform_data *jbt6k74_pdata = spi->dev.platform_data;
+
+- /* platform needs to register resume dependencies here */
++ /* platform can register resume dependencies here, if any */
+ if (jbt6k74_pdata->suspending)
+ (jbt6k74_pdata->suspending)(0, spi);
+
+@@ -638,7 +638,7 @@ static int jbt_suspend(struct spi_device *spi, pm_message_t state)
+
+ jbt->have_resumed = 0;
+
+- (jbt6k74_pdata->reset)(0, 0);
++/* (jbt6k74_pdata->reset)(0, 0); */
+
+ return 0;
+ }
+@@ -648,31 +648,17 @@ int jbt6k74_resume(struct spi_device *spi)
+ struct jbt_info *jbt = dev_get_drvdata(&spi->dev);
+ struct jbt6k74_platform_data *jbt6k74_pdata = spi->dev.platform_data;
+
+- /* if we still wait on dependencies, exit because we will get called
+- * again. This guy will get called once by core resume action, and
+- * should be set as resume_dependency callback for any dependencies
+- * set by platform code.
+- */
+-
+ if (jbt6k74_pdata->all_dependencies_resumed)
+ if (!(jbt6k74_pdata->all_dependencies_resumed)(0))
+ return 0;
+
+ /* we can get called twice with all dependencies resumed if our core
+- * resume callback is last of all. Protect against going twice
++ * resume callback is last of all. Protect against doing anything twice
+ */
+ if (jbt->have_resumed)
+ return 0;
+
+- jbt->have_resumed = 1;
+-
+- /* OK we are sure all devices we depend on for operation are up now */
+-
+- /* even this needs glamo up on GTA02 :-/ */
+- (jbt6k74_pdata->reset)(0, 1);
+-
+- jbt6k74_enter_state(jbt, JBT_STATE_DEEP_STANDBY);
+- msleep(100);
++ jbt->have_resumed |= 1;
+
+ switch (jbt->last_state) {
+ case JBT_STATE_QVGA_NORMAL:
+@@ -684,8 +670,6 @@ int jbt6k74_resume(struct spi_device *spi)
+ }
+ jbt6k74_display_onoff(jbt, 1);
+
+- /* this gives the platform a chance to bring up backlight now */
+-
+ if (jbt6k74_pdata->resuming)
+ (jbt6k74_pdata->resuming)(0);
+
+--
+1.5.6.3
+