1 --- a/drivers/video/display/jbt6k74.c
2 +++ b/drivers/video/display/jbt6k74.c
3 @@ -443,8 +443,17 @@ int jbt6k74_enter_state(struct jbt_info
10 + case JBT_STATE_NORMAL:
11 + case JBT_STATE_QVGA_NORMAL:
12 + jbt->last_state = new_state;
17 jbt->state = new_state;
22 @@ -595,7 +604,14 @@ static int fb_notifier_callback(struct n
24 case FB_BLANK_UNBLANK:
25 dev_info(&jbt->spi_dev->dev, "**** jbt6k74 unblank\n");
26 - jbt6k74_enter_state(jbt, JBT_STATE_NORMAL);
27 + switch (jbt->last_state) {
28 + case JBT_STATE_QVGA_NORMAL:
29 + jbt6k74_enter_state(jbt, JBT_STATE_QVGA_NORMAL);
32 + jbt6k74_enter_state(jbt, JBT_STATE_NORMAL);
37 dev_info(&jbt->spi_dev->dev, "**** jbt6k74 normal\n");
38 @@ -720,8 +736,6 @@ static int jbt_suspend(struct spi_device
40 struct jbt_info *jbt = dev_get_drvdata(&spi->dev);
42 - /* Save mode for resume */
43 - jbt->last_state = jbt->state;
44 /* FIXME: deep standby causes WSOD on certain devices. We use
45 * sleep as workaround */
46 jbt6k74_enter_state(jbt, JBT_STATE_SLEEP);