|
|
@@ -1202,11 +1202,19 @@ intel_hdmi_mode_valid(struct drm_connector *connector,
|
|
|
struct drm_device *dev = intel_hdmi_to_dev(hdmi);
|
|
|
enum drm_mode_status status;
|
|
|
int clock;
|
|
|
+ int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
|
|
|
|
|
|
if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
|
|
|
return MODE_NO_DBLESCAN;
|
|
|
|
|
|
clock = mode->clock;
|
|
|
+
|
|
|
+ if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING)
|
|
|
+ clock *= 2;
|
|
|
+
|
|
|
+ if (clock > max_dotclk)
|
|
|
+ return MODE_CLOCK_HIGH;
|
|
|
+
|
|
|
if (mode->flags & DRM_MODE_FLAG_DBLCLK)
|
|
|
clock *= 2;
|
|
|
|