aboutsummaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorFabio Estevam <festevam@gmail.com>2019-11-01 09:25:21 -0300
committerAnatolij Gustschin <agust@denx.de>2019-11-12 10:32:37 +0100
commitec3dcea7447031463643c33143b3a5f027f0b54d (patch)
treeb1e1aaf3861dbbade411d0817c0dc5cf1c6ba127 /drivers/video
parenta965a8b904093c9e6790d0460d18a144cefa5e42 (diff)
downloadu-boot-ec3dcea7447031463643c33143b3a5f027f0b54d.zip
u-boot-ec3dcea7447031463643c33143b3a5f027f0b54d.tar.gz
u-boot-ec3dcea7447031463643c33143b3a5f027f0b54d.tar.bz2
video: mxsfb: Configure the clock after eLCDIF reset
Running stress reboot test on a i.MX6ULL evk board with a custom LCD can lead to splash screen failure (black screen). After comparing the eLCDIF initialization with the Linux kernel driver, it was noticed that the eLCDIF reset is the first operation that needs to be done. So do like the eLCDIF Linux driver and move the eLCDIF clock frequency configuration after the eLCDIF reset and just prior to setting the RUN bit. With this change applied, no more black screen issues has been found during overnight reboot stress tests. Signed-off-by: Fabio Estevam <festevam@gmail.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/mxsfb.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index c529810..d73a8ba 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -57,9 +57,6 @@ static void mxs_lcd_init(u32 fb_addr, struct ctfb_res_modes *mode, int bpp)
uint32_t word_len = 0, bus_width = 0;
uint8_t valid_data = 0;
- /* Kick in the LCDIF clock */
- mxs_set_lcdclk(MXS_LCDIF_BASE, PS2KHZ(mode->pixclock));
-
/* Restart the LCDIF block */
mxs_reset_block(&regs->hw_lcdif_ctrl_reg);
@@ -130,6 +127,9 @@ static void mxs_lcd_init(u32 fb_addr, struct ctfb_res_modes *mode, int bpp)
/* FIFO cleared */
writel(LCDIF_CTRL1_FIFO_CLEAR, &regs->hw_lcdif_ctrl1_clr);
+ /* Kick in the LCDIF clock */
+ mxs_set_lcdclk(MXS_LCDIF_BASE, PS2KHZ(mode->pixclock));
+
/* RUN! */
writel(LCDIF_CTRL_RUN, &regs->hw_lcdif_ctrl_set);
}