diff options
author | lars <lars@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-03-06 21:25:25 +0000 |
---|---|---|
committer | lars <lars@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-03-06 21:25:25 +0000 |
commit | 76c3e31af1f4714aee448e2d66929c8a083cd2f4 (patch) | |
tree | 71f12f278bb57ec8907d418c24a1f77be801a86c | |
parent | b67e11c7c4aeb3d573162b2159f58e5aa7e52534 (diff) |
Switch back to the previous set resolution when unblanking the screen.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14768 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.28/010-preserve-resolution.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.28/010-preserve-resolution.patch b/target/linux/s3c24xx/patches-2.6.28/010-preserve-resolution.patch new file mode 100644 index 000000000..6beff0d7b --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.28/010-preserve-resolution.patch @@ -0,0 +1,48 @@ +diff --git a/drivers/video/display/jbt6k74.c b/drivers/video/display/jbt6k74.c +index a1d48dd..2ca1bd4 100644 +--- a/drivers/video/display/jbt6k74.c ++++ b/drivers/video/display/jbt6k74.c +@@ -443,8 +443,17 @@ int jbt6k74_enter_state(struct jbt_info *jbt, enum jbt_state new_state) + break; + } + +- if (rc == 0) ++ if (rc == 0) { ++ switch (new_state) { ++ case JBT_STATE_NORMAL: ++ case JBT_STATE_QVGA_NORMAL: ++ jbt->last_state = new_state; ++ break; ++ default: ++ break; ++ } + jbt->state = new_state; ++ } + + return rc; + } +@@ -595,7 +604,14 @@ static int fb_notifier_callback(struct notifier_block *self, + switch (fb_blank) { + case FB_BLANK_UNBLANK: + dev_info(&jbt->spi_dev->dev, "**** jbt6k74 unblank\n"); +- jbt6k74_enter_state(jbt, JBT_STATE_NORMAL); ++ switch (jbt->last_state) { ++ case JBT_STATE_QVGA_NORMAL: ++ jbt6k74_enter_state(jbt, JBT_STATE_QVGA_NORMAL); ++ break; ++ default: ++ jbt6k74_enter_state(jbt, JBT_STATE_NORMAL); ++ break; ++ } + break; + case FB_BLANK_NORMAL: + dev_info(&jbt->spi_dev->dev, "**** jbt6k74 normal\n"); +@@ -720,8 +736,6 @@ static int jbt_suspend(struct spi_device *spi, pm_message_t state) + { + struct jbt_info *jbt = dev_get_drvdata(&spi->dev); + +- /* Save mode for resume */ +- jbt->last_state = jbt->state; + /* FIXME: deep standby causes WSOD on certain devices. We use + * sleep as workaround */ + jbt6k74_enter_state(jbt, JBT_STATE_SLEEP); |