diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/skl_scaler.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/skl_scaler.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c index a6ba9da03542..4cc55f4e1f9f 100644 --- a/drivers/gpu/drm/i915/display/skl_scaler.c +++ b/drivers/gpu/drm/i915/display/skl_scaler.c @@ -132,6 +132,23 @@ static void skl_scaler_max_dst_size(struct intel_crtc *crtc,  	}  } +enum drm_mode_status +skl_scaler_mode_valid(struct intel_display *display, +		      const struct drm_display_mode *mode, +		      enum intel_output_format output_format, +		      int num_joined_pipes) +{ +	int max_h, max_w; + +	if (num_joined_pipes < 2 && output_format == INTEL_OUTPUT_FORMAT_YCBCR420) { +		skl_scaler_max_src_size(display, &max_w, &max_h); +		if (mode->hdisplay > max_h) +			return MODE_NO_420; +	} + +	return MODE_OK; +} +  static int  skl_update_scaler(struct intel_crtc_state *crtc_state, bool force_detach,  		  unsigned int scaler_user, int *scaler_id,  | 
