Switch back to the previous set resolution when unblanking the screen.

SVN-Revision: 14768
lede-17.01
Lars-Peter Clausen 2009-03-06 21:25:25 +00:00
parent f8509356a2
commit 2f1c2dc3a1
1 changed files with 48 additions and 0 deletions

View File

@ -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);