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 <algea.cao@rock-chips.com>
Change-Id: Ib96303f3bef1a1b269a9ac8845951b6a895ec5b8
This commit is contained in:
Algea Cao
2020-08-18 14:54:06 +08:00
committed by Tao Huang
parent 689b1973fb
commit 18545b79ed

View File

@@ -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: