mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-01 07:43:09 +02:00
95 lines
3.1 KiB
Diff
95 lines
3.1 KiB
Diff
|
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
|
||
|
|