drm/rockchip: update pre dither down config
authorHuang Jiachai <hjc@rock-chips.com>
Mon, 12 Dec 2016 07:18:44 +0000 (15:18 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 14 Dec 2016 11:07:25 +0000 (19:07 +0800)
between vop big and hdmi/edp/dp connect mode is 10bit, so we disable
pre dither down, otherwise enable pre dither down.

Change-Id: If18ed05647d2eb3c6d5c159dd365ea66e55cd408
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index 0ef34f76b90814ccca34c09dcf9cd848cf3714e4..75c764ccb6efe408cdd55aaaced1c8e4f5562a90 100644 (file)
@@ -1435,19 +1435,21 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
        VOP_CTRL_SET(vop, out_mode, s->output_mode);
        switch (s->bus_format) {
        case MEDIA_BUS_FMT_RGB565_1X16:
-               val = DITHER_DOWN_EN(1) | DITHER_DOWN_MODE(RGB888_TO_RGB565) |
-                       PRE_DITHER_DOWN_EN(1);
+               val = DITHER_DOWN_EN(1) | DITHER_DOWN_MODE(RGB888_TO_RGB565);
                break;
        case MEDIA_BUS_FMT_RGB666_1X18:
        case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
-               val = DITHER_DOWN_EN(1) | DITHER_DOWN_MODE(RGB888_TO_RGB666) |
-                       PRE_DITHER_DOWN_EN(1);
+               val = DITHER_DOWN_EN(1) | DITHER_DOWN_MODE(RGB888_TO_RGB666);
                break;
        case MEDIA_BUS_FMT_RGB888_1X24:
        default:
                val = DITHER_DOWN_EN(0) | PRE_DITHER_DOWN_EN(0);
                break;
        }
+       if (s->output_mode == ROCKCHIP_OUT_MODE_AAAA)
+               val |= PRE_DITHER_DOWN_EN(0);
+       else
+               val |= PRE_DITHER_DOWN_EN(1);
        val |= DITHER_DOWN_MODE_SEL(DITHER_DOWN_ALLEGRO);
        VOP_CTRL_SET(vop, dither_down, val);