From 8f2e795b08180b9a9e9ea88cddd5110e01406b5e Mon Sep 17 00:00:00 2001 From: Sandor Yu Date: Wed, 22 Jan 2014 15:09:37 +0800 Subject: [PATCH] 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 --- drivers/video/fbdev/mxsfb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/mxsfb.c b/drivers/video/fbdev/mxsfb.c index 09bfd79748f9..5e5901403e5b 100644 --- a/drivers/video/fbdev/mxsfb.c +++ b/drivers/video/fbdev/mxsfb.c @@ -4,7 +4,7 @@ * This code is based on: * Author: Vitaly Wool * - * 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 @@ -358,6 +358,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); @@ -587,6 +590,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; -- 2.39.2