From: hjc Date: Fri, 31 Oct 2014 08:48:32 +0000 (+0800) Subject: rk312x lcdc: kernel bcsh selete depend on uboot config X-Git-Tag: firefly_0821_release~4511 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=45166c7028855564883df23e617220730c85e6d0;p=firefly-linux-kernel-4.4.55.git rk312x lcdc: kernel bcsh selete depend on uboot config --- diff --git a/drivers/video/rockchip/lcdc/rk312x_lcdc.c b/drivers/video/rockchip/lcdc/rk312x_lcdc.c index 6b4b6cefe922..d8ffc64d8105 100755 --- a/drivers/video/rockchip/lcdc/rk312x_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk312x_lcdc.c @@ -727,8 +727,12 @@ static int rk312x_lcdc_pre_init(struct rk_lcdc_driver *dev_drv) lcdc_cfg_done(lcdc_dev); while(lcdc_readl(lcdc_dev, SYS_CTRL) & (m_WIN0_EN | m_WIN1_EN)); }*/ - if ((dev_drv->ops->open_bcsh) && (dev_drv->output_color == COLOR_YCBCR)) - dev_drv->ops->open_bcsh(dev_drv, 1); + if ((dev_drv->ops->open_bcsh) && (dev_drv->output_color == COLOR_YCBCR)) { + if(support_uboot_display()) + dev_drv->bcsh_init_status = 1; + else + dev_drv->ops->open_bcsh(dev_drv, 1); + } lcdc_dev->pre_init = true; return 0; @@ -1998,7 +2002,10 @@ static int rk312x_lcdc_open_bcsh(struct rk_lcdc_driver *dev_drv, bool open) struct lcdc_device *lcdc_dev = container_of(dev_drv, struct lcdc_device, driver); u32 mask, val; - + if(dev_drv->bcsh_init_status && open) { + dev_drv->bcsh_init_status = 0; + return 0; + } spin_lock(&lcdc_dev->reg_lock); if (lcdc_dev->clk_on) { rk312x_lcdc_select_bcsh(dev_drv, lcdc_dev); diff --git a/include/linux/rk_fb.h b/include/linux/rk_fb.h index 85959bace47d..bf9b6205d68f 100755 --- a/include/linux/rk_fb.h +++ b/include/linux/rk_fb.h @@ -593,6 +593,7 @@ struct rk_lcdc_driver { struct rk_lcdc_bcsh bcsh; int *hwc_lut; int uboot_logo; + int bcsh_init_status; }; struct rk_fb_par {