From 0163b3f1e5e1c828ede0bc8b2556961f08eb012c 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.5