From 18545b79ed1ef0222106cccdd954df088bc1287d Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Tue, 18 Aug 2020 14:54:06 +0800 Subject: [PATCH] drm: rockchip: dw-hdmi: Fix switch from 4K-60/50Hz to lower resolution failed The resolution below 4K-60/50Hz don't support YUV420. If switch from 4K-60/50Hz in YUV420 to lower resolution may cause display err. So if resolution below 4K-60/50Hz, color format should be RGB/YUV444/YUV422. Signed-off-by: Algea Cao Change-Id: Ib96303f3bef1a1b269a9ac8845951b6a895ec5b8 --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 0f1acd2db111..f045c528e8ed 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -570,12 +570,12 @@ dw_hdmi_rockchip_select_output(struct drm_connector_state *conn_state, else if (info->color_formats & DRM_COLOR_FORMAT_YCRCB422) *color_format = DRM_HDMI_OUTPUT_YCBCR422; else if (conn_state->connector->ycbcr_420_allowed && - drm_mode_is_420(info, mode)) + drm_mode_is_420(info, mode) && pixclock >= 594000) *color_format = DRM_HDMI_OUTPUT_YCBCR420; break; case DRM_HDMI_OUTPUT_YCBCR_LQ: if (conn_state->connector->ycbcr_420_allowed && - drm_mode_is_420(info, mode)) + drm_mode_is_420(info, mode) && pixclock >= 594000) *color_format = DRM_HDMI_OUTPUT_YCBCR420; else if (info->color_formats & DRM_COLOR_FORMAT_YCRCB422) *color_format = DRM_HDMI_OUTPUT_YCBCR422; @@ -584,7 +584,7 @@ dw_hdmi_rockchip_select_output(struct drm_connector_state *conn_state, break; case DRM_HDMI_OUTPUT_YCBCR420: if (conn_state->connector->ycbcr_420_allowed && - drm_mode_is_420(info, mode)) + drm_mode_is_420(info, mode) && pixclock >= 594000) *color_format = DRM_HDMI_OUTPUT_YCBCR420; break; case DRM_HDMI_OUTPUT_YCBCR422: