mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user