drm/rockchip: vop2: Enable mipi dual channel mode

We should set both VP->DUAL_CHANNEL_CTRL.dual_channel_en
and DSP_INTERFACE_EN.mipi_dual_channel_en when drive
a dual channel mipi dsi on rk3588, this is different
from rk356x.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I784f9556903126bae52b3063eb23fbf0a0193739
This commit is contained in:
Andy Yan
2021-11-08 17:11:10 +08:00
committed by Tao Huang
parent 675ff1b10a
commit ad5e232220
3 changed files with 5 additions and 0 deletions

View File

@@ -973,6 +973,7 @@ struct vop2_ctrl {
struct vop_reg dp_dual_en;
struct vop_reg edp_dual_en;
struct vop_reg hdmi_dual_en;
struct vop_reg mipi_dual_en;
struct vop_reg hdmi0_dclk_div;
struct vop_reg hdmi0_pixclk_div;

View File

@@ -5255,6 +5255,9 @@ static void vop2_setup_dual_channel_if(struct drm_crtc *crtc)
case DRM_MODE_CONNECTOR_HDMIA:
VOP_CTRL_SET(vop2, hdmi_dual_en, 1);
break;
case DRM_MODE_CONNECTOR_DSI:
VOP_CTRL_SET(vop2, mipi_dual_en, 1);
break;
default:
break;
}

View File

@@ -2421,6 +2421,7 @@ static const struct vop2_ctrl rk3588_vop_ctrl = {
.hdmi_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 8),
.edp_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 8),
.dp_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 9),
.mipi_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 10),
.mipi0_ds_mode = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 11),
.mipi1_ds_mode = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 12),
.hdmi0_dclk_div = VOP_REG(RK3568_DSP_IF_CTRL, 0x3, 16),