summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2014-01-22 15:09:37 +0800
committerSandor Yu <R01008@freescale.com>2014-01-23 10:07:54 +0800
commit0abc2943fd9db99ffd01ad14ef3470793cf13e41 (patch)
tree141da374287fb68fa0baddf5dec7b57cf3a2972b /drivers
parent472b005110dda0a9fa714ce135041acd01372ab1 (diff)
ENGR00296050 mxsfb: fb failed to work after suspend in console mode
When device boot into console, frame buffer failed to work after suspend/resume. That is caused by LCDIF IP lost all registers configuration in suspend mode, and console didn't reconfiguration fb after resume. Same issue didn't found with Yocto UI. Reinitialize frame buffer driver after resume to fix the issue. Signed-off-by: Sandor Yu <R01008@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/mxsfb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index 1b733f7f22c6..7b0304af8665 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -4,7 +4,7 @@
* This code is based on:
* Author: Vitaly Wool <vital@embeddedalley.com>
*
- * Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2008-2014 Freescale Semiconductor, Inc. All Rights Reserved.
* Copyright 2008 Embedded Alley Solutions, Inc All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
@@ -434,6 +434,9 @@ static void mxsfb_enable_controller(struct fb_info *fb_info)
clk_prepare_enable(host->clk_pix);
clk_set_rate(host->clk_pix, PICOS2KHZ(fb_info->var.pixclock) * 1000U);
+ /* Clean soft reset and clock gate bit if it was enabled */
+ writel(CTRL_SFTRST | CTRL_CLKGATE, host->base + LCDC_CTRL + REG_CLR);
+
/* if it was disabled, re-enable the mode again */
writel(CTRL_DOTCLK_MODE, host->base + LCDC_CTRL + REG_SET);
@@ -729,6 +732,7 @@ static int mxsfb_blank(int blank, struct fb_info *fb_info)
case FB_BLANK_UNBLANK:
if (!host->enabled)
mxsfb_enable_controller(fb_info);
+ mxsfb_set_par(&host->fb_info);
break;
}
return 0;