From ea450470913828911da098059f810da0ee669fce Mon Sep 17 00:00:00 2001 From: hjc Date: Sat, 11 Oct 2014 15:50:43 +0800 Subject: [PATCH] rk312x lcdc: this vop bg layer not support yuv domain overlay,so bg val have to set 0x800a80 equeal to 0x000000 at rgb domian,after open win0/win1 alpha we recover to 0x00000. --- drivers/video/rockchip/lcdc/rk312x_lcdc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/video/rockchip/lcdc/rk312x_lcdc.c b/drivers/video/rockchip/lcdc/rk312x_lcdc.c index b304a97cb7e9..f600bdbd6680 100755 --- a/drivers/video/rockchip/lcdc/rk312x_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk312x_lcdc.c @@ -301,6 +301,12 @@ static int rk312x_lcdc_alpha_cfg(struct lcdc_device *lcdc_dev) mask = m_WIN0_ALPHA_MODE | m_ALPHA_MODE_SEL0 | m_ALPHA_MODE_SEL1; val = v_WIN0_ALPHA_MODE(1) | v_ALPHA_MODE_SEL0(1) | v_ALPHA_MODE_SEL1(0); lcdc_msk_reg(lcdc_dev, DSP_CTRL0, mask, val); + /*this vop bg layer not support yuv domain overlay,so bg val + have to set 0x800a80 equeal to 0x000000 at rgb domian,after + android start we recover to 0x00000*/ + mask = m_BG_COLOR; + val = v_BG_COLOR(0x000000); + lcdc_msk_reg(lcdc_dev, DSP_CTRL1, mask, val); } else if ((!win0_top) && (lcdc_dev->atv_layer_cnt >= 2) && (win1_alpha_en)) { mask = m_WIN0_ALPHA_EN | m_WIN1_ALPHA_EN; @@ -310,6 +316,12 @@ static int rk312x_lcdc_alpha_cfg(struct lcdc_device *lcdc_dev) mask = m_WIN1_ALPHA_MODE | m_ALPHA_MODE_SEL0 | m_ALPHA_MODE_SEL1; val = v_WIN1_ALPHA_MODE(1) | v_ALPHA_MODE_SEL0(1) | v_ALPHA_MODE_SEL1(0); lcdc_msk_reg(lcdc_dev, DSP_CTRL0, mask, val); + /*this vop bg layer not support yuv domain overlay,so bg val + have to set 0x800a80 equeal to 0x000000 at rgb domian,after + android start we recover to 0x00000*/ + mask = m_BG_COLOR; + val = v_BG_COLOR(0x000000); + lcdc_msk_reg(lcdc_dev, DSP_CTRL1, mask, val); } else { mask = m_WIN0_ALPHA_EN | m_WIN1_ALPHA_EN; val = v_WIN0_ALPHA_EN(0) | v_WIN1_ALPHA_EN(0); -- 2.34.1