diff --git a/MAINTAINERS b/MAINTAINERS index f7e6abd6fdc73b192d2839e8f85d2a4cb83df8bb..04acf2b89dcbb17112e58085e9a853003a0f635f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -449,6 +449,8 @@ M: Anatolij Gustschin <agust@denx.de> S: Maintained T: git git://git.denx.de/u-boot-video.git F: drivers/video/ +F: common/lcd*.c +F: include/lcd*.h X86 M: Simon Glass <sjg@chromium.org> diff --git a/common/splash_source.c b/common/splash_source.c index a21ad62f82d7abd59d6789a345d7a5903d7e474b..e0defdebd6ae7a24cfd5cb345020b047d1465d07 100644 --- a/common/splash_source.c +++ b/common/splash_source.c @@ -317,6 +317,11 @@ static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr) return res; img_header = (struct image_header *)bmp_load_addr; + if (image_get_magic(img_header) != FDT_MAGIC) { + printf("Could not find FDT magic\n"); + return -EINVAL; + } + fit_size = fdt_totalsize(img_header); /* Read in entire FIT */ diff --git a/drivers/video/ipu.h b/drivers/video/ipu.h index 348be58bf6abaa729401d0db9744bdc0cf801c90..ff91d18868b4dd438436c0d7cf71250386262b20 100644 --- a/drivers/video/ipu.h +++ b/drivers/video/ipu.h @@ -253,6 +253,7 @@ struct clk *clk_get_parent(struct clk *clk); void ipu_dump_registers(void); int ipu_probe(void); +bool ipu_clk_enabled(void); void ipu_dmfc_init(int dmfc_type, int first); void ipu_init_dc_mappings(void); diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index f8d4488fcef4a94483de9cd66920e23b1825d78a..f259fb9633212ba42b39d1efe5015fbcc5ac984d 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -1243,3 +1243,8 @@ int ipu_set_ldb_clock(int rate) return 0; } + +bool ipu_clk_enabled(void) +{ + return g_ipu_clk_enabled; +} diff --git a/drivers/video/mxc_ipuv3_fb.c b/drivers/video/mxc_ipuv3_fb.c index 0d0a0a97ff43c0d3a720e2689da53de09c0f34d4..1ab5cb7b1c87c37a5d16030c38520c96c3c576d8 100644 --- a/drivers/video/mxc_ipuv3_fb.c +++ b/drivers/video/mxc_ipuv3_fb.c @@ -571,6 +571,9 @@ void ipuv3_fb_shutdown(void) int i; struct ipu_stat *stat = (struct ipu_stat *)IPU_STAT; + if (!ipu_clk_enabled()) + return; + for (i = 0; i < ARRAY_SIZE(mxcfb_info); i++) { struct fb_info *fbi = mxcfb_info[i]; if (fbi) {