drm/i915: Reject DRM_MODE_FLAG_DBLCLK with DVI sinks
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 8 Jan 2020 18:12:39 +0000 (20:12 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 9 Jul 2020 13:23:02 +0000 (16:23 +0300)
The code assumes that DRM_MODE_FLAG_DBLCLK means that we enable the
pixel repeat feature. That only works with HDMI since it requires
AVI infoframe to signal the information to the sink. Hence even if
the mode dotclock would be valid we cannot currently assume that
we can just ignore the DBLCLK flag. Reject it for DVI sinks.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200108181242.13650-6-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
drivers/gpu/drm/i915/display/intel_hdmi.c

index 8e9abb28072c6a9220fcf10e4dba965232e60f39..7dc11ea4c6e42bfc371c07526419893a8badc7b9 100644 (file)
@@ -2242,8 +2242,11 @@ intel_hdmi_mode_valid(struct drm_connector *connector,
        if (clock > max_dotclk)
                return MODE_CLOCK_HIGH;
 
-       if (mode->flags & DRM_MODE_FLAG_DBLCLK)
+       if (mode->flags & DRM_MODE_FLAG_DBLCLK) {
+               if (!has_hdmi_sink)
+                       return MODE_CLOCK_LOW;
                clock *= 2;
+       }
 
        if (drm_mode_is_420_only(&connector->display_info, mode))
                clock /= 2;