From: Huang Jiachai Date: Thu, 29 Sep 2016 02:54:37 +0000 (+0800) Subject: video: rockchip: vop: 3399: vop lite lut and edp output is 8 bit X-Git-Tag: firefly_0821_release~1462 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=91737eb0b562e9f9d302b551d071851e68b3bb50;p=firefly-linux-kernel-4.4.55.git video: rockchip: vop: 3399: vop lite lut and edp output is 8 bit Change-Id: Icb333d92713cba2dda14b977ea9c6a1617e88bbf Signed-off-by: Huang Jiachai --- diff --git a/drivers/video/rockchip/lcdc/rk322x_lcdc.c b/drivers/video/rockchip/lcdc/rk322x_lcdc.c index f19b13de167a..eaef51f4cdc7 100644 --- a/drivers/video/rockchip/lcdc/rk322x_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk322x_lcdc.c @@ -297,15 +297,20 @@ static int vop_set_lut(struct rk_lcdc_driver *dev_drv, int *dsp_lut) int __iomem *c; v = dsp_lut[i]; - c = vop_dev->dsp_lut_addr_base + (i << 2); - b = (v & 0xff) << 2; - g = (v & 0xff00) << 4; - r = (v & 0xff0000) << 6; - v = r + g + b; - for (j = 0; j < 4; j++) { + if (dev_drv->id == 0) { + c = vop_dev->dsp_lut_addr_base + (i << 2); + b = (v & 0xff) << 2; + g = (v & 0xff00) << 4; + r = (v & 0xff0000) << 6; + v = r + g + b; + for (j = 0; j < 4; j++) { + writel_relaxed(v, c); + v += (1 + (1 << 10) + (1 << 20)); + c++; + } + } else { + c = vop_dev->dsp_lut_addr_base + i; writel_relaxed(v, c); - v += (1 + (1 << 10) + (1 << 20)); - c++; } } vop_msk_reg(vop_dev, DSP_CTRL1, V_DSP_LUT_EN(1)); @@ -2061,9 +2066,12 @@ static int vop_load_screen(struct rk_lcdc_driver *dev_drv, bool initscreen) vop_msk_reg(vop_dev, DSP_CTRL1, val); break; case SCREEN_EDP: - if ((VOP_CHIP(vop_dev) == VOP_RK3399) && - (vop_dev->id == 0)) - face = OUT_P101010; + if (VOP_CHIP(vop_dev) == VOP_RK3399) { + if (vop_dev->id == 0) + face = OUT_P101010; + else + face = OUT_P888; + } val = V_EDP_OUT_EN(1); vop_msk_reg(vop_dev, SYS_CTRL, val); val = V_EDP_HSYNC_POL(screen->pin_hsync) |