drm/rockchip: vop2: update output mode for rk3576/rk3588 yuv422

RK3588:
    4'b0011: eDP YUV422
    4'b1100: DP YUV422
    4'b1101: DP YUV420
    4'b1110: HDMI YUV420
RK3576:
    4'b1100: eDP/DP YUV422
    4'b1101: HDMI YUV422
    4'b1110: DP/HDMI YUV420

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I8f51ccda820ecba15c1f594794a24138e9348c54
This commit is contained in:
Sandy Huang
2024-02-18 21:37:53 +08:00
committed by Tao Huang
parent fe3cbe40dc
commit 1a3e95ad13
3 changed files with 20 additions and 14 deletions

View File

@@ -1548,12 +1548,17 @@ struct vop2_data {
#define ROCKCHIP_OUT_MODE_BT1120 0
#define ROCKCHIP_OUT_MODE_P666 1
#define ROCKCHIP_OUT_MODE_P565 2
#define RK3588_EDP_OUTPUT_MODE_YUV422 3
#define ROCKCHIP_OUT_MODE_BT656 5
#define ROCKCHIP_OUT_MODE_S888 8
#define ROCKCHIP_OUT_MODE_S666 9
#define ROCKCHIP_OUT_MODE_YUV422 9
#define ROCKCHIP_OUT_MODE_S565 10
#define ROCKCHIP_OUT_MODE_S888_DUMMY 12
#define RK3588_DP_OUT_MODE_YUV422 12
#define RK3576_EDP_OUT_MODE_YUV422 12
#define RK3588_DP_OUT_MODE_YUV420 13
#define RK3576_HDMI_OUT_MODE_YUV422 13
#define ROCKCHIP_OUT_MODE_YUV420 14
/* for use special outface */
#define ROCKCHIP_OUT_MODE_AAAA 15

View File

@@ -10702,6 +10702,21 @@ static void vop2_cfg_update(struct drm_crtc *crtc,
out_mode = ROCKCHIP_OUT_MODE_P888;
else
out_mode = vcstate->output_mode;
if (out_mode == ROCKCHIP_OUT_MODE_YUV420) {
if (vop2->version == VOP_VERSION_RK3588 && output_if_is_dp(vcstate->output_if))
out_mode = RK3588_DP_OUT_MODE_YUV420;
} else if (out_mode == ROCKCHIP_OUT_MODE_YUV422) {
if (vop2->version == VOP_VERSION_RK3576 && output_if_is_edp(vcstate->output_if))
out_mode = RK3576_EDP_OUT_MODE_YUV422;
else if (vop2->version == VOP_VERSION_RK3588 && output_if_is_edp(vcstate->output_if))
out_mode = RK3588_EDP_OUTPUT_MODE_YUV422;
else if (vop2->version == VOP_VERSION_RK3576 && output_if_is_hdmi(vcstate->output_if))
out_mode = RK3576_HDMI_OUT_MODE_YUV422;
else if (output_if_is_dp(vcstate->output_if))
out_mode = RK3588_DP_OUT_MODE_YUV422;
}
VOP_MODULE_SET(vop2, vp, out_mode, out_mode);
vop2_post_color_swap(crtc);

View File

@@ -174,20 +174,6 @@ struct vop2_data {
#define WB_YRGB_FIFO_FULL_INTR BIT(18)
#define WB_COMPLETE_INTR BIT(19)
/*
* display output interface supported by rockchip lcdc
*/
#define ROCKCHIP_OUT_MODE_P888 0
#define ROCKCHIP_OUT_MODE_BT1120 0
#define ROCKCHIP_OUT_MODE_P666 1
#define ROCKCHIP_OUT_MODE_P565 2
#define ROCKCHIP_OUT_MODE_BT656 5
#define ROCKCHIP_OUT_MODE_S888 8
#define ROCKCHIP_OUT_MODE_S888_DUMMY 12
#define ROCKCHIP_OUT_MODE_YUV420 14
/* for use special outface */
#define ROCKCHIP_OUT_MODE_AAAA 15
enum vop_csc_format {
CSC_BT601L,
CSC_BT709L,