Merge git://git.denx.de/u-boot-video
diff --git a/common/splash_source.c b/common/splash_source.c
index a21ad62..e0defde 100644
--- a/common/splash_source.c
+++ b/common/splash_source.c
@@ -317,6 +317,11 @@
 		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/mxc_ipuv3_fb.c b/drivers/video/mxc_ipuv3_fb.c
index 0d0a0a9..8836229 100644
--- a/drivers/video/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc_ipuv3_fb.c
@@ -13,6 +13,7 @@
 
 #include <common.h>
 #include <linux/errno.h>
+#include <asm/arch/crm_regs.h>
 #include <asm/global_data.h>
 #include <linux/string.h>
 #include <linux/list.h>
@@ -568,8 +569,18 @@
 
 void ipuv3_fb_shutdown(void)
 {
-	int i;
+	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
 	struct ipu_stat *stat = (struct ipu_stat *)IPU_STAT;
+	u32 reg;
+	int i;
+
+	/*
+	 * Check if IPU clock was enabled before. Won't access
+	 * IPU registers if clock is not enabled.
+	 */
+	reg = readl(&mxc_ccm->CCGR3);
+	if ((reg & MXC_CCM_CCGR3_IPU1_IPU_MASK) == 0)
+		return;
 
 	for (i = 0; i < ARRAY_SIZE(mxcfb_info); i++) {
 		struct fb_info *fbi = mxcfb_info[i];