From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio Estevam Date: Wed, 22 Feb 2017 07:09:46 -0300 Subject: [U-Boot] [PATCH v2] video: mxsfb: Fix reset hang when videomode variable is not present Message-ID: <1487758186-14459-1-git-send-email-festevam@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Fabio Estevam Currently the system hangs when the 'videomode' variable is not present: => setenv videomode => saveenv => reset (Board hangs) lcdif_power_down() assumes that the LCDIF controller has been properly configured and enabled, which may not be true. To fix this issue check whether 'videomode' variable is present and in case it is not present, do not continue with the LCDIF powerdown sequence. Tested on a imx7dsabresd board. Signed-off-by: Fabio Estevam --- Changes since v1: - Only check videomode variable to avoid LCDIF to initialize again. drivers/video/mxsfb.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 3cc03ca..eb986ee 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -135,6 +135,11 @@ void lcdif_power_down(void) { struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs *)MXS_LCDIF_BASE; int timeout = 1000000; + char *penv; + + penv = getenv("videomode"); + if (!penv) + return; writel(panel.frameAdrs, ®s->hw_lcdif_cur_buf_reg); writel(panel.frameAdrs, ®s->hw_lcdif_next_buf_reg); -- 2.7.4