summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2009-03-06 21:25:25 +0000
committerLars-Peter Clausen <lars@metafoo.de>2009-03-06 21:25:25 +0000
commit2f1c2dc3a1a3e5de38d444f6502b37d974c2aa47 (patch)
treef61bb5794685d3994dd13b35036aa9c405ea91b4 /target
parentf8509356a24a1c855cfaaa433bc459e65010c806 (diff)
downloadmaster-31e0f0ae-2f1c2dc3a1a3e5de38d444f6502b37d974c2aa47.tar.gz
master-31e0f0ae-2f1c2dc3a1a3e5de38d444f6502b37d974c2aa47.tar.bz2
master-31e0f0ae-2f1c2dc3a1a3e5de38d444f6502b37d974c2aa47.zip
Switch back to the previous set resolution when unblanking the screen.
SVN-Revision: 14768
Diffstat (limited to 'target')
-rw-r--r--target/linux/s3c24xx/patches-2.6.28/010-preserve-resolution.patch48
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 0000000000..6beff0d7bb
--- /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);