diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 17 | 
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 64134947c0aa..09f274419eea 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2307,8 +2307,8 @@ static void edp_panel_off(struct intel_dp *intel_dp)  	I915_WRITE(pp_ctrl_reg, pp);  	POSTING_READ(pp_ctrl_reg); -	intel_dp->panel_power_off_time = ktime_get_boottime();  	wait_panel_off(intel_dp); +	intel_dp->panel_power_off_time = ktime_get_boottime();  	/* We got a reference when we enabled the VDD. */  	intel_display_power_put(dev_priv, intel_dp->aux_power_domain); @@ -3731,9 +3731,16 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)  	} -	/* Read the eDP Display control capabilities registers */ -	if ((intel_dp->dpcd[DP_EDP_CONFIGURATION_CAP] & DP_DPCD_DISPLAY_CONTROL_CAPABLE) && -	    drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV, +	/* +	 * Read the eDP display control registers. +	 * +	 * Do this independent of DP_DPCD_DISPLAY_CONTROL_CAPABLE bit in +	 * DP_EDP_CONFIGURATION_CAP, because some buggy displays do not have it +	 * set, but require eDP 1.4+ detection (e.g. for supported link rates +	 * method). The display control registers should read zero if they're +	 * not supported anyway. +	 */ +	if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV,  			     intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) ==  			     sizeof(intel_dp->edp_dpcd))  		DRM_DEBUG_KMS("EDP DPCD : %*ph\n", (int) sizeof(intel_dp->edp_dpcd), @@ -5273,7 +5280,7 @@ intel_dp_init_panel_power_sequencer(struct drm_device *dev,  	 * seems sufficient to avoid this problem.  	 */  	if (dev_priv->quirks & QUIRK_INCREASE_T12_DELAY) { -		vbt.t11_t12 = max_t(u16, vbt.t11_t12, 900 * 10); +		vbt.t11_t12 = max_t(u16, vbt.t11_t12, 1300 * 10);  		DRM_DEBUG_KMS("Increasing T12 panel delay as per the quirk to %d\n",  			      vbt.t11_t12);  	}  |