return 0;
 }
 
+static bool dw_hdmi_bridge_mode_fixup(struct drm_bridge *bridge,
+                                     const struct drm_display_mode *orig_mode,
+                                     struct drm_display_mode *mode)
+{
+       struct dw_hdmi *hdmi = bridge->driver_private;
+       struct drm_connector *connector = &hdmi->connector;
+       enum drm_mode_status status;
+
+       status = dw_hdmi_connector_mode_valid(connector, mode);
+       if (status != MODE_OK)
+               return false;
+       return true;
+}
+
 static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge,
                                    struct drm_display_mode *orig_mode,
                                    struct drm_display_mode *mode)
        .enable = dw_hdmi_bridge_enable,
        .disable = dw_hdmi_bridge_disable,
        .mode_set = dw_hdmi_bridge_mode_set,
+       .mode_fixup = dw_hdmi_bridge_mode_fixup,
 };
 
 static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi)