From: WeiYong Bi Date: Wed, 5 Jul 2017 09:17:27 +0000 (+0800) Subject: drm/rockchip: vop: add data01_swap support X-Git-Tag: release-20171130_firefly~4^2~61 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1ae2dccdfabd2efbcda303eb9e9fc11343cfb32b;p=firefly-linux-kernel-4.4.55.git drm/rockchip: vop: add data01_swap support Change-Id: I4a00e7d5efe49ee9621ed7218a10e0ef1628ee47 Signed-off-by: WeiYong Bi --- diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 5e11e652f1ac..4549fcfec448 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -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); diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index 466137550f23..7fcc95a03829 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -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; diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index 022c9ac60b31..eb8c8f848a9d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -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),