drm/rockchip: vop: fix background color
authorMark Yao <mark.yao@rock-chips.com>
Tue, 25 Jul 2017 10:10:42 +0000 (18:10 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 26 Jul 2017 06:14:37 +0000 (14:14 +0800)
Change-Id: Idbd43b4456df80e2243ce09c3bc69d8be6e0af6a
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index 079e3651ae01fe6e20088b88383ef759742b7eeb..2c6c65e9036d93cf664b21d6b892c4205343bf38 100644 (file)
@@ -1771,9 +1771,18 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
                     s->output_mode == ROCKCHIP_OUT_MODE_YUV420 ? 1 : 0);
        VOP_CTRL_SET(vop, overlay_mode, is_yuv_output(s->bus_format));
        VOP_CTRL_SET(vop, dsp_out_yuv, is_yuv_output(s->bus_format));
-       VOP_CTRL_SET(vop, dsp_background,
-                    is_yuv_output(s->bus_format) ? 0x20010200 : 0);
 
+       /*
+        * Background color is 10bit depth if vop version >= 3.5
+        */
+       if (!is_yuv_output(s->bus_format))
+               val = 0;
+       else if (VOP_MAJOR(vop->data->version) == 3 &&
+                VOP_MINOR(vop->data->version) >= 5)
+               val = 0x20010200;
+       else
+               val = 0x801080;
+       VOP_CTRL_SET(vop, dsp_background, val);
        VOP_CTRL_SET(vop, htotal_pw, (htotal << 16) | hsync_len);
        val = hact_st << 16;
        val |= hact_end;