drm/rockchip: vop: don't force enable post scale
authorMark Yao <mark.yao@rock-chips.com>
Thu, 20 Jul 2017 10:57:40 +0000 (18:57 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Fri, 21 Jul 2017 08:18:00 +0000 (16:18 +0800)
Vop would always report post buf empty error if enable
post scale config with non-scale factor

Change-Id: Ibc3f27c674195e6467471069488f14471927f709
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index 8be416d99a846a2ac80593d9bceb21bb32222dad..079e3651ae01fe6e20088b88383ef759742b7eeb 100644 (file)
@@ -2053,7 +2053,12 @@ static void vop_post_config(struct drm_crtc *crtc)
        val = scl_cal_scale2(vdisplay, vsize) << 16;
        val |= scl_cal_scale2(hdisplay, hsize);
        VOP_CTRL_SET(vop, post_scl_factor, val);
-       VOP_CTRL_SET(vop, post_scl_ctrl, 0x3);
+
+#define POST_HORIZONTAL_SCALEDOWN_EN(x)                ((x) << 0)
+#define POST_VERTICAL_SCALEDOWN_EN(x)          ((x) << 1)
+       VOP_CTRL_SET(vop, post_scl_ctrl,
+                    POST_HORIZONTAL_SCALEDOWN_EN(hdisplay != hsize) ||
+                    POST_VERTICAL_SCALEDOWN_EN(vdisplay != vsize));
        if (mode->flags & DRM_MODE_FLAG_INTERLACE) {
                u16 vact_st_f1 = vtotal + vact_st + 1;
                u16 vact_end_f1 = vact_st_f1 + vsize;