da8xx-fb: enable LCDC if FB is unblanked
authorManjunathappa, Prakash <prakash.pm@ti.com>
Fri, 31 Aug 2012 14:18:59 +0000 (19:48 +0530)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Sat, 22 Sep 2012 21:24:51 +0000 (21:24 +0000)
It is expected that LCDC to continue to be disabled after
resume if it is blanked before suspend. This is also true
for DVFS. But it is observed that LCDC being enabled after
suspend/resume cycle or DVFS.

Correcting it by having check for FB_BLANK_UNBLANK before
enabling.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
drivers/video/da8xx-fb.c

index 03ebc0ddcfdbcfbeae3b125d52aedb82d489ad18..af2aa387ec17a8a76b2badfbc2e08e41be6df057 100644 (file)
@@ -988,7 +988,8 @@ static int lcd_da8xx_cpufreq_transition(struct notifier_block *nb,
                        par->lcd_fck_rate = clk_get_rate(par->lcdc_clk);
                        lcd_disable_raster(true);
                        lcd_calc_clk_divider(par);
-                       lcd_enable_raster();
+                       if (par->blank == FB_BLANK_UNBLANK)
+                               lcd_enable_raster();
                }
        }
 
@@ -1514,10 +1515,12 @@ static int fb_resume(struct platform_device *dev)
 
        console_lock();
        clk_enable(par->lcdc_clk);
-       lcd_enable_raster();
+       if (par->blank == FB_BLANK_UNBLANK) {
+               lcd_enable_raster();
 
-       if (par->panel_power_ctrl)
-               par->panel_power_ctrl(1);
+               if (par->panel_power_ctrl)
+                       par->panel_power_ctrl(1);
+       }
 
        fb_set_suspend(info, 0);
        console_unlock();