]> git.sur5r.net Git - u-boot/commitdiff
Merge git://git.denx.de/u-boot-video
authorTom Rini <trini@konsulko.com>
Fri, 1 Sep 2017 16:57:03 +0000 (12:57 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 1 Sep 2017 16:57:03 +0000 (12:57 -0400)
common/splash_source.c
drivers/video/mxc_ipuv3_fb.c

index a21ad62f82d7abd59d6789a345d7a5903d7e474b..e0defdebd6ae7a24cfd5cb345020b047d1465d07 100644 (file)
@@ -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 */
index 0d0a0a97ff43c0d3a720e2689da53de09c0f34d4..88362290ef90db248e53003232ae728befe4085f 100644 (file)
@@ -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 @@ err0:
 
 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];