drm/rockchip: vop: add data01_swap support
authorWeiYong Bi <bivvy.bi@rock-chips.com>
Wed, 5 Jul 2017 09:17:27 +0000 (17:17 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 2 Aug 2017 02:23:46 +0000 (10:23 +0800)
Change-Id: I4a00e7d5efe49ee9621ed7218a10e0ef1628ee47
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c
drivers/gpu/drm/rockchip/rockchip_drm_vop.h
drivers/gpu/drm/rockchip/rockchip_vop_reg.c

index 5e11e652f1accc9e4bc0760d19668e135f5537fd..4549fcfec4485afd4c6e17b3c8005afb53b6d426 100644 (file)
@@ -1736,10 +1736,10 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
                VOP_CTRL_SET(vop, mipi_en, 1);
                VOP_CTRL_SET(vop, mipi_pin_pol, val);
                VOP_CTRL_SET(vop, mipi_dclk_pol, 1);
-               if (s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL)
-                       VOP_CTRL_SET(vop, mipi_dual_channel_en, 1);
-               else
-                       VOP_CTRL_SET(vop, mipi_dual_channel_en, 0);
+               VOP_CTRL_SET(vop, mipi_dual_channel_en,
+                       !!(s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL));
+               VOP_CTRL_SET(vop, data01_swap,
+                       !!(s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_LINK));
                break;
        case DRM_MODE_CONNECTOR_DisplayPort:
                VOP_CTRL_SET(vop, dp_dclk_pol, 0);
index 466137550f2349abd1eef921fc2d2a77fa2cbc53..7fcc95a03829a3afeb05d80cf61044f15044f55e 100644 (file)
@@ -24,6 +24,7 @@
 #define VOP_MINOR(version)     ((version) & 0xff)
 
 #define ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL       BIT(0)
+#define ROCKCHIP_OUTPUT_DSI_DUAL_LINK          BIT(1)
 
 #define AFBDC_FMT_RGB565       0x0
 #define AFBDC_FMT_U8U8U8U8     0x5
@@ -112,6 +113,7 @@ struct vop_ctrl {
        struct vop_reg edp_en;
        struct vop_reg hdmi_en;
        struct vop_reg mipi_en;
+       struct vop_reg data01_swap;
        struct vop_reg mipi_dual_channel_en;
        struct vop_reg dp_en;
        struct vop_reg dclk_pol;
index 022c9ac60b31c19d9c31c6e8f8fbdfdbaa041094..eb8c8f848a9d9e279f9caa63ea99eafca2318f13 100644 (file)
@@ -197,6 +197,7 @@ static const struct vop_ctrl rk3288_ctrl_data = {
        .edp_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 14),
        .mipi_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 15),
        .mipi_dual_channel_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 3),
+       .data01_swap = VOP_REG_VER(RK3288_SYS_CTRL, 0x1, 17, 3, 5, -1),
        .dclk_pol = VOP_REG_VER(RK3288_DSP_CTRL0, 0x1, 7, 3, 0, 1),
        .pin_pol = VOP_REG_VER(RK3288_DSP_CTRL0, 0x7, 4, 3, 0, 1),
        .dp_dclk_pol = VOP_REG_VER(RK3399_DSP_CTRL1, 0x1, 19, 3, 5, -1),