Check for FB_BLANK_UNBLANK before enabling LCDC from PM resume
and DVFS. Without this, behavior in case of below used case is
not be not expected,
1) Issue FB_BLANK, LCDC disabled.
2) Do suspend/resume cycle or DVFS.
3) Do not expect LCDC to get enabled at this point.

Re-enabling of LCDC is done when FB_BLANK_UNBLANK is issued.

Signed-off-by: Manjunathappa, Prakash <[email protected]>
---
Applies on top of fbdev-next of Florian Tobias Schandinat's tree.

 drivers/video/da8xx-fb.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 761c8d1..1273354 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -962,7 +962,8 @@ static int lcd_da8xx_cpufreq_transition(struct 
notifier_block *nb,
                        par->lcd_fck_rate = clk_get_rate(par->lcdc_clk);
                        lcd_disable_raster();
                        lcd_calc_clk_divider(par);
-                       lcd_enable_raster();
+                       if (par->blank == FB_BLANK_UNBLANK)
+                               lcd_enable_raster();
                }
        }
 
@@ -1486,10 +1487,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();
-- 
1.7.1

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to