diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index d23c1761d0eb..e3e976c859df 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -391,6 +391,7 @@ dw_hdmi_rockchip_mode_valid(struct drm_connector *connector, struct drm_device *dev = connector->dev; struct rockchip_drm_private *priv = dev->dev_private; struct drm_crtc *crtc; + struct rockchip_hdmi *hdmi; /* * Pixel clocks we support are always < 2GHz and so fit in an @@ -421,6 +422,11 @@ dw_hdmi_rockchip_mode_valid(struct drm_connector *connector, if (!encoder || !encoder->possible_crtcs) return MODE_BAD; + + hdmi = to_rockchip_hdmi(encoder); + if (hdmi->dev_type == RK3368_HDMI && mode->clock > 340000 && + !(mode->flags & DRM_MODE_FLAG_420_MASK)) + return MODE_BAD; /* * ensure all drm display mode can work, if someone want support more * resolutions, please limit the possible_crtc, only connect to