|
@@ -1527,6 +1527,7 @@ intel_sdvo_mode_valid(struct drm_connector *connector,
|
|
|
struct drm_display_mode *mode)
|
|
|
{
|
|
|
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
|
|
|
+ int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
|
|
|
|
|
|
if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
|
|
|
return MODE_NO_DBLESCAN;
|
|
@@ -1537,6 +1538,9 @@ intel_sdvo_mode_valid(struct drm_connector *connector,
|
|
|
if (intel_sdvo->pixel_clock_max < mode->clock)
|
|
|
return MODE_CLOCK_HIGH;
|
|
|
|
|
|
+ if (mode->clock > max_dotclk)
|
|
|
+ return MODE_CLOCK_HIGH;
|
|
|
+
|
|
|
if (intel_sdvo->is_lvds) {
|
|
|
if (mode->hdisplay > intel_sdvo->sdvo_lvds_fixed_mode->hdisplay)
|
|
|
return MODE_PANEL;
|