public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Todd Previte <tprevite@gmail.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/9] drm/i915: Add a delay in Displayport AUX transactions for compliance testing
Date: Wed, 01 Apr 2015 12:45:30 -0700	[thread overview]
Message-ID: <551C4ADA.4080004@gmail.com> (raw)
In-Reply-To: <20150401192205.GX17410@intel.com>



On 4/1/2015 12:22 PM, Ville Syrjälä wrote:
> On Wed, Apr 01, 2015 at 11:55:44AM -0700, Todd Previte wrote:
>>
>> On 4/1/2015 11:23 AM, Ville Syrjälä wrote:
>>> On Tue, Mar 31, 2015 at 10:15:00AM -0700, Todd Previte wrote:
>>>> The Displayport Link Layer Compliance Testing Specification 1.2 rev 1.1
>>>> specifies that repeated AUX transactions after a failure (no response /
>>>> invalid response) must have a minimum delay of 400us before the resend can
>>>> occur. Tests 4.2.1.1 and 4.2.1.2 are two tests that require this specifically.
>>>>
>>>> V2:
>>>> - Changed udelay() to usleep_range()
>>>> V3:
>>>> - Removed extraneous check for timeout
>>>> - Updated comment to reflect this change
>>>>
>>>> Signed-off-by: Todd Previte <tprevite@gmail.com>
>>>> ---
>>>>    drivers/gpu/drm/i915/intel_dp.c | 10 ++++++++--
>>>>    1 file changed, 8 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>>>> index ed2f60c..dc87276 100644
>>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>>> @@ -877,9 +877,15 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
>>>>    				   DP_AUX_CH_CTL_TIME_OUT_ERROR |
>>>>    				   DP_AUX_CH_CTL_RECEIVE_ERROR);
>>>>    
>>>> -			if (status & (DP_AUX_CH_CTL_TIME_OUT_ERROR |
>>>> -				      DP_AUX_CH_CTL_RECEIVE_ERROR))
>>>> +			/* DP CTS 1.2 Core Rev 1.1, 4.2.1.1 & 4.2.1.2
>>>> +			     400us delay required for errors and timeouts
>>>> +			     Timeout errors from the HW already meet this
>>>> +			     requirement so skip to next iteration
>>>> +			*/
>>> Weird format for multi line comment.
>> Yeah I had to squish it in there to keep it under 80 columns. Needs the
>> '*' on the left side too though. I'll fix that and repost.
>>>> +			if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) {
>>>> +				usleep_range(400, 500);
>>>>    				continue;
>>>> +			}
>>> Where did the DP_AUX_CH_CTL_TIME_OUT_ERROR handling go?
>> As I recall, previous review feedback indicated that the timeout
>> condition there was already accounted for.
>>
>> on 12/15, Paulo commented:
>>
>> One thing to notice is that if we get a TIME_OUT_ERROR I guess it
>> means we already waited our standard timeout (which is either 400, 600
>> or 1600, depending on the platform), so shouldn't we just do the
>> usleep() after the RECEIVE_ERROR error?
>>
>>
>> When I checked the BSpec, that seemed to be the case so I removed the
>> TIME_OUT_ERROR. Without this
>> code in place, we still pass the compliance tests for AUX transactions,
>> one of which is for a no-reply transaction.
>> That case specifically should hit the TIME_OUT_ERROR if it was going to
>> occur, I would think.
>>
>> If you can give me a case where that becomes an issue, it's a simple fix
>> to add it back in there.
> Not doing the usleep for the timeout error does seem sane enough to me,
> but I didn't actually read through the specs to confirm that.
>
> However my concern is that you no longer check the timeout error bit
> at all inside the loop and instead just check the done bit even when the
> timeout error may have happened. Now, I'm not sure both bits can actually
> be set at the same time, but if they can't the original error check was
> entirely redundant. So it would seem safer to keep checking both error
> bits before the done bit.

While there's no harm in checking the timeout bit here, does it really 
make sense to do so unless we're
going to take action on it? As you said, it seems reasonable enough to 
not wait an addition 400-500us,
so is there something else to do? It may be worth logging the error just 
to make sure there's some
record of when it happens, even if we're not going to do anything else.

As for exclusion between the two bits, the BSpec makes no indication 
that they're exclusive of one another. So
it's entirely possible to have both set.

>>>>    			if (status & DP_AUX_CH_CTL_DONE)
>>>>    				break;
>>>>    		}
>>>> -- 
>>>> 1.9.1
>>>>
>>>> _______________________________________________
>>>> Intel-gfx mailing list
>>>> Intel-gfx@lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-04-01 19:45 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-31 17:14 [intel-gfx][PATCH V4] Displayport compliance testing V4 Todd Previte
2015-03-31 17:14 ` [PATCH 1/9] drm/i915: Add automated testing support for Displayport compliance testing Todd Previte
2015-04-07  0:10   ` Paulo Zanoni
2015-04-07  2:15     ` Todd Previte
2015-04-08 15:35     ` Todd Previte
2015-03-31 17:14 ` [PATCH 2/9] drm/i915: Update intel_dp_check_link_status() " Todd Previte
2015-03-31 17:15 ` [PATCH 3/9] drm/i915: Add a delay in Displayport AUX transactions for " Todd Previte
2015-04-01 18:23   ` Ville Syrjälä
2015-04-01 18:55     ` Todd Previte
2015-04-01 19:22       ` Ville Syrjälä
2015-04-01 19:45         ` Todd Previte [this message]
2015-04-06 23:28           ` Paulo Zanoni
2015-04-07  2:07             ` Todd Previte
2015-04-03 16:08   ` [PATCH 03/11] " Todd Previte
2015-04-07  2:09   ` Todd Previte
2015-04-07 13:57     ` Paulo Zanoni
2015-04-09 18:49       ` Todd Previte
2015-03-31 17:15 ` [PATCH 4/9] drm/i915: Add check for corrupt raw EDID header for Displayport " Todd Previte
2015-04-08 16:51   ` [Intel-gfx] " Paulo Zanoni
2015-04-08 21:43     ` Todd Previte
2015-04-08 22:37       ` Paulo Zanoni
2015-04-10 14:44         ` Todd Previte
2015-03-31 17:15 ` [PATCH 5/9] drm/i915: Update the EDID automated compliance test function Todd Previte
2015-04-08 17:02   ` Paulo Zanoni
2015-04-09 21:36     ` Todd Previte
2015-03-31 17:15 ` [PATCH 6/9] drm/i915: Update intel_dp_hpd_pulse() to check link status for non-MST operation Todd Previte
2015-04-01 18:00   ` [PATCH 06/11] " Todd Previte
2015-04-08 18:53     ` Paulo Zanoni
2015-04-09 21:35       ` Todd Previte
2015-03-31 17:15 ` [PATCH 7/9] drm/i915: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling Todd Previte
2015-04-07  0:05   ` Paulo Zanoni
2015-04-07  1:21     ` Todd Previte
2015-04-07  2:11   ` [PATCH 07/11] " Todd Previte
2015-04-07 14:29     ` Paulo Zanoni
2015-04-07 14:47       ` Ville Syrjälä
2015-04-07 18:47       ` Todd Previte
2015-03-31 17:15 ` [PATCH 8/9] drm/i915: Add debugfs test control files for Displayport compliance testing Todd Previte
2015-04-01 18:12   ` [PATCH 08/11] " Todd Previte
2015-03-31 17:15 ` [PATCH 9/9] drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() Todd Previte
2015-04-01  4:45   ` shuang.he
2015-04-06 21:16   ` [Intel-gfx] " Paulo Zanoni
  -- strict thread matches above, loose matches on Subject: below --
2015-02-19  3:00 Displayport Compliance Testing V3 Todd Previte
2015-02-19  3:00 ` [PATCH 3/9] drm/i915: Add a delay in Displayport AUX transactions for compliance testing Todd Previte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=551C4ADA.4080004@gmail.com \
    --to=tprevite@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox