diff --git a/kernel/drivers/video/rockchip/lcdc/rk3288_lcdc.c b/kernel/drivers/video/rockchip/lcdc/rk3288_lcdc.c index b8a37bef27..a9fb50a256 100755 --- a/kernel/drivers/video/rockchip/lcdc/rk3288_lcdc.c +++ b/kernel/drivers/video/rockchip/lcdc/rk3288_lcdc.c @@ -1393,7 +1393,7 @@ static int rk3288_load_screen(struct rk_lcdc_driver *dev_drv, bool initscreen) val = v_DSP_LINE_FLAG_NUM(vsync_len + upper_margin + y_res); lcdc_msk_reg(lcdc_dev, INTR_CTRL0, mask, val); dev_drv->output_color = screen->color_mode; - if (dev_drv->version == VOP_FULL_RK3288_V1_1) { + if ((dev_drv->version == VOP_FULL_RK3288_V1_1) && support_uboot_display() && (dev_drv->id == 0)){ rk3288_lcdc_bcsh_path_sel(dev_drv); } else { if (dev_drv->output_color != COLOR_RGB) { @@ -2682,6 +2682,7 @@ static int rk3288_lcdc_early_resume(struct rk_lcdc_driver *dev_drv) lcdc_cfg_done(lcdc_dev); if (dev_drv->iommu_enabled) { + udelay(200); if (dev_drv->mmu_dev) rockchip_iovmm_activate(dev_drv->dev); } @@ -3804,7 +3805,7 @@ static int rk3288_lcdc_open_bcsh(struct rk_lcdc_driver *dev_drv, bool open) lcdc_msk_reg(lcdc_dev, BCSH_COLOR_BAR, mask, val); dev_drv->bcsh.enable = 0; } - if (dev_drv->version == VOP_FULL_RK3288_V1_1) + if ((dev_drv->version == VOP_FULL_RK3288_V1_1)&& support_uboot_display() && (dev_drv->id == 0)) rk3288_lcdc_bcsh_path_sel(dev_drv); lcdc_cfg_done(lcdc_dev); }