diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_sdvo.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_sdvo.c | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c index 6cb27599ea03..2dc6c3742ba2 100644 --- a/drivers/gpu/drm/i915/display/intel_sdvo.c +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c @@ -1335,6 +1335,13 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,  							   adjusted_mode);  		pipe_config->sdvo_tv_clock = true;  	} else if (IS_LVDS(intel_sdvo_connector)) { +		int ret; + +		ret = intel_panel_compute_config(&intel_sdvo_connector->base, +						 adjusted_mode); +		if (ret) +			return ret; +  		if (!intel_sdvo_set_output_timings_from_mode(intel_sdvo,  							     intel_sdvo_connector->base.panel.fixed_mode))  			return -EINVAL; @@ -1873,7 +1880,6 @@ intel_sdvo_mode_valid(struct drm_connector *connector,  	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)  		return MODE_NO_DBLESCAN; -  	if (clock > max_dotclk)  		return MODE_CLOCK_HIGH; @@ -1890,14 +1896,11 @@ intel_sdvo_mode_valid(struct drm_connector *connector,  		return MODE_CLOCK_HIGH;  	if (IS_LVDS(intel_sdvo_connector)) { -		const struct drm_display_mode *fixed_mode = -			intel_sdvo_connector->base.panel.fixed_mode; - -		if (mode->hdisplay > fixed_mode->hdisplay) -			return MODE_PANEL; +		enum drm_mode_status status; -		if (mode->vdisplay > fixed_mode->vdisplay) -			return MODE_PANEL; +		status = intel_panel_mode_valid(&intel_sdvo_connector->base, mode); +		if (status != MODE_OK) +			return status;  	}  	return MODE_OK; | 
