From 0d3838a66d7cb9a895357d95e8dfe8d5e1fccb17 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Thu, 18 Nov 2021 16:42:47 +0800 Subject: [PATCH] drm/rockchip: vop2: correctly rgb output mode Signed-off-by: Sandy Huang Change-Id: I95353627903b0673c4c3afe7c891f63932e77c81 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 8 ++++++-- drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 37013e89fb5e..07eba91f9f4c 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -5573,8 +5573,12 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_crtc_state if (ret < 0) goto out; - VOP_CTRL_SET(vop2, rgb_en, 1); - VOP_CTRL_SET(vop2, bt1120_en, 1); + if (vop2->version == VOP_VERSION_RK3588) { + VOP_CTRL_SET(vop2, bt1120_en, 3); + } else { + VOP_CTRL_SET(vop2, rgb_en, 1); + VOP_CTRL_SET(vop2, bt1120_en, 1); + } VOP_CTRL_SET(vop2, rgb_mux, vp_data->id); VOP_GRF_SET(vop2, sys_grf, grf_bt1120_clk_inv, !dclk_inv); yc_swap = vop2_output_yc_swap(vcstate->bus_format); diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c index ff92d979731a..d402d6c89319 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2563,9 +2563,9 @@ static const struct vop2_ctrl rk3588_vop_ctrl = { .hdmi1_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 5), .mipi0_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 6), .mipi1_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 7), - .rgb_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 8), - .bt1120_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 9), - .bt656_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 10), + .bt1120_en = VOP_REG(RK3568_DSP_IF_EN, 0x3, 8), + .bt656_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 9), + .rgb_en = VOP_REG(RK3568_DSP_IF_EN, 0x1, 10), .dp0_mux = VOP_REG(RK3568_DSP_IF_EN, 0x3, 12), .dp1_mux = VOP_REG(RK3568_DSP_IF_EN, 0x3, 14), .hdmi0_mux = VOP_REG(RK3568_DSP_IF_EN, 0x3, 16),