[Intel-gfx] [PATCH 3/4] drm/i915/lspcon: Remove DPCD compare based resume time workaround

Sharma, Shashank shashank.sharma at intel.com
Thu Feb 2 10:54:14 UTC 2017


Reviewed-by: Shashank Sharma

Regards
Shashank
On 1/28/2017 1:49 PM, Imre Deak wrote:
> On Sat, Jan 28, 2017 at 10:36:16AM +0530, Sharma, Shashank wrote:
>> Regards
>>
>> Shashank
>>
>>
>> On 1/27/2017 3:09 PM, Imre Deak wrote:
>>> This effectively reverts
>>> commit 489375c866c111f16cea93b2467ebe59c9022cc7
>>> Author: Imre Deak <imre.deak at intel.com>
>>> Date:   Mon Oct 24 19:33:31 2016 +0300
>>>
>>>      drm/i915/lspcon: Add workaround for resuming in PCON mode
>>>
>>> The workaround was added without considering that HPD is low during
>>> the failed AUX transfers the WA fixed. Since the previous patch we
>>> wait for HPD to get asserted. My tests also show that this happens
>>> _after_ the DPCD reads start to return correct values. This
>>> suggests that we don't need this WA any more, let's try to remove
>>> it to reduce the clutter.
>>>
>>> Cc: Shashank Sharma <shashank.sharma at intel.com>
>>> Cc: Jani Nikula <jani.nikula at linux.intel.com>
>>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
>>> Signed-off-by: Imre Deak <imre.deak at intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/intel_drv.h    |  1 -
>>>   drivers/gpu/drm/i915/intel_lspcon.c | 17 ++---------------
>>>   2 files changed, 2 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>>> index b9cde11..b2882ff 100644
>>> --- a/drivers/gpu/drm/i915/intel_drv.h
>>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>>> @@ -989,7 +989,6 @@ struct intel_dp {
>>>   struct intel_lspcon {
>>>   	bool active;
>>>   	enum drm_lspcon_mode mode;
>>> -	bool desc_valid;
>>>   };
>>>   struct intel_digital_port {
>>> diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
>>> index c300647..71cbe9c 100644
>>> --- a/drivers/gpu/drm/i915/intel_lspcon.c
>>> +++ b/drivers/gpu/drm/i915/intel_lspcon.c
>>> @@ -162,21 +162,8 @@ static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon)
>>>   	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
>>>   	unsigned long start = jiffies;
>>> -	if (!lspcon->desc_valid)
>>> -		return;
>>> -
>>>   	while (1) {
>>> -		struct intel_dp_desc desc;
>>> -
>>> -		/*
>>> -		 * The w/a only applies in PCON mode and we don't expect any
>>> -		 * AUX errors.
>>> -		 */
>>> -		if (!__intel_dp_read_desc(intel_dp, &desc))
>>> -			return;
>>> -
>>> -		if (intel_digital_port_connected(dev_priv, dig_port) &&
>>> -		    !memcmp(&intel_dp->desc, &desc, sizeof(desc))) {
>>> +		if (intel_digital_port_connected(dev_priv, dig_port)) {
>> Again, does it matter, as in PCON mode live_status will be always true ?
> See my answer for the previous patch.
>
>> - Shashank
>>>   			DRM_DEBUG_KMS("LSPCON recovering in PCON mode after %u ms\n",
>>>   				      jiffies_to_msecs(jiffies - start));
>>>   			return;
>>> @@ -253,7 +240,7 @@ bool lspcon_init(struct intel_digital_port *intel_dig_port)
>>>   		return false;
>>>   	}
>>> -	lspcon->desc_valid = intel_dp_read_desc(dp);
>>> +	intel_dp_read_desc(dp);
>>>   	DRM_DEBUG_KMS("Success: LSPCON init\n");
>>>   	return true;



More information about the Intel-gfx mailing list