diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 20 | 
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index db3b461ad41..94f860cce3f 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -208,17 +208,8 @@ intel_dp_link_clock(uint8_t link_bw)   */  static int -intel_dp_link_required(struct intel_dp *intel_dp, int pixel_clock, int check_bpp) +intel_dp_link_required(int pixel_clock, int bpp)  { -	struct drm_crtc *crtc = intel_dp->base.base.crtc; -	struct intel_crtc *intel_crtc = to_intel_crtc(crtc); -	int bpp = 24; - -	if (check_bpp) -		bpp = check_bpp; -	else if (intel_crtc) -		bpp = intel_crtc->bpp; -  	return (pixel_clock * bpp + 9) / 10;  } @@ -245,12 +236,11 @@ intel_dp_mode_valid(struct drm_connector *connector,  			return MODE_PANEL;  	} -	mode_rate = intel_dp_link_required(intel_dp, mode->clock, 0); +	mode_rate = intel_dp_link_required(mode->clock, 24);  	max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);  	if (mode_rate > max_rate) { -			mode_rate = intel_dp_link_required(intel_dp, -							   mode->clock, 18); +			mode_rate = intel_dp_link_required(mode->clock, 18);  			if (mode_rate > max_rate)  				return MODE_CLOCK_HIGH;  			else @@ -683,7 +673,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,  	int lane_count, clock;  	int max_lane_count = intel_dp_max_lane_count(intel_dp);  	int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0; -	int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 0; +	int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;  	static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 };  	if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) { @@ -701,7 +691,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,  		for (clock = 0; clock <= max_clock; clock++) {  			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count); -			if (intel_dp_link_required(intel_dp, mode->clock, bpp) +			if (intel_dp_link_required(mode->clock, bpp)  					<= link_avail) {  				intel_dp->link_bw = bws[clock];  				intel_dp->lane_count = lane_count;  |