aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/mxsfb.c
diff options
context:
space:
mode:
authorFabio Estevam2017-02-22 10:40:22 -0300
committerAnatolij Gustschin2017-02-22 21:47:59 +0100
commitb24cf8540a85a9bf97975aadd6a7542f166c78a3 (patch)
tree885e3c15641f4ac0d3844396c53b8b22ceae417e /drivers/video/mxsfb.c
parent4d6f9e0d21bb223ace577030ef69b8fbbd98f678 (diff)
video: mxsfb: Fix reset hang when videomode variable is not present
Currently the system hangs when the 'videomode' variable is not present and a reset command is issued: => 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 panel.frameAdrs has been initialized and in case it has not been initialized, do not continue with the LCDIF powerdown sequence. Tested on a imx7dsabresd board. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'drivers/video/mxsfb.c')
-rw-r--r--drivers/video/mxsfb.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index 3cc03cadeee..32ecbe2b099 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -136,6 +136,9 @@ void lcdif_power_down(void)
struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs *)MXS_LCDIF_BASE;
int timeout = 1000000;
+ if (!panel.frameAdrs)
+ return;
+
writel(panel.frameAdrs, &regs->hw_lcdif_cur_buf_reg);
writel(panel.frameAdrs, &regs->hw_lcdif_next_buf_reg);
writel(LCDIF_CTRL1_VSYNC_EDGE_IRQ, &regs->hw_lcdif_ctrl1_clr);