From: Todd Previte <tprevite@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: [PATCH 09/11] drm/i915: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling
Date: Fri, 10 Apr 2015 09:12:50 -0700 [thread overview]
Message-ID: <1428682372-21586-10-git-send-email-tprevite@gmail.com> (raw)
In-Reply-To: <1428682372-21586-1-git-send-email-tprevite@gmail.com>
For test 4.2.2.5 to pass per the Link CTS Core 1.2 rev1.1 spec, the source
device must attempt at least 7 times to read the EDID when it receives an
I2C defer. The normal DRM code makes only 7 retries, regardless of whether
or not the response is a native defer or an I2C defer. Test 4.2.2.5 fails
since there are native defers interspersed with the I2C defers which
results in less than 7 EDID read attempts.
The solution is to decrement the retry counter when an I2C DEFER is returned
such that another read attempt will be made. This situation should normally
only occur in compliance testing, however, as a worse case real-world
scenario, it would result in 13 attempts ( 6 native defers, 7 I2C defers)
for a single transaction to complete. The net result is a slightly slower
response to an EDID read that shouldn't significantly impact overall
performance.
V2:
- Added a check on the number of I2C Defers to limit the number
of times that the retries variable will be decremented. This
is to address review feedback regarding possible infinite loops
from misbehaving sink devices.
V3:
- Fixed the limit value to 7 instead of 8 to get the correct retry
count.
- Combined the increment of the defer count into the if-statement
Signed-off-by: Todd Previte <tprevite@gmail.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_dp_helper.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 79968e3..9ecfd27 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -468,7 +468,12 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
case DP_AUX_I2C_REPLY_DEFER:
DRM_DEBUG_KMS("I2C defer\n");
- aux->i2c_defer_count++;
+ /* DP Compliance Test 4.2.2.5 Requirement:
+ * Must have at least 7 retries for I2C defers on the
+ * transaction to pass this test
+ */
+ if (++aux->i2c_defer_count < 7)
+ retry = 0;
usleep_range(400, 500);
continue;
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-04-10 16:12 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 16:12 [intel-gfx][PATCH V5] Displayport compliance testing V5 Todd Previte
2015-04-10 16:12 ` [PATCH 01/11] drm/i915: Add automated testing support for Displayport compliance testing Todd Previte
2015-04-13 17:30 ` Paulo Zanoni
2015-04-10 16:12 ` [PATCH 02/11] drm/i915: Ignore disconnected Displayport connectors in check_link_status Todd Previte
2015-04-10 16:12 ` [PATCH 03/11] drm/i915: Move the DPCD read further up in intel_dp_check_link_status() Todd Previte
2015-04-14 17:48 ` Todd Previte
2015-04-10 16:12 ` [PATCH 04/11] drm/i915: Add EDID read in intel_dp_check_link_status() for Link CTS 4.2.2.1 Todd Previte
2015-04-13 14:10 ` Paulo Zanoni
2015-04-13 14:57 ` Todd Previte
2015-04-13 14:53 ` [PATCH 04/13] " Todd Previte
2015-04-14 16:53 ` Paulo Zanoni
2015-04-15 8:48 ` Daniel Vetter
2015-04-15 15:37 ` Todd Previte
2015-04-15 17:42 ` Paulo Zanoni
2015-04-16 15:41 ` Todd Previte
2015-04-16 16:31 ` Daniel Vetter
2015-04-16 17:32 ` Todd Previte
2015-04-20 5:10 ` Todd Previte
2015-04-10 16:12 ` [PATCH 05/11] drm/i915: Add a delay in Displayport AUX transactions for compliance testing Todd Previte
2015-04-13 21:05 ` Paulo Zanoni
2015-04-10 16:12 ` [PATCH 06/11] drm/i915: Add supporting structure for Displayport Link CTS test 4.2.2.6 Todd Previte
2015-04-10 17:38 ` [PATCH 06/13] drm: " Todd Previte
2015-04-10 17:45 ` [PATCH 06/11] drm/i915: " Emil Velikov
2015-04-10 17:38 ` Todd Previte
2015-04-13 14:53 ` [PATCH 06/13] drm: " Todd Previte
2015-04-13 22:18 ` Paulo Zanoni
2015-04-15 6:56 ` Todd Previte
2015-04-10 16:12 ` [PATCH 07/11] drm/i915: Update intel_dp_hpd_pulse() for non-MST operation Todd Previte
2015-04-14 11:29 ` Paulo Zanoni
2015-04-14 17:36 ` Todd Previte
2015-04-14 19:00 ` Paulo Zanoni
2015-04-15 2:00 ` Todd Previte
2015-04-10 16:12 ` [PATCH 08/11] drm/i915: Support EDID compliance tests with the intel_dp_autotest_edid() function Todd Previte
2015-04-10 17:42 ` [PATCH 08/13] " Todd Previte
2015-04-14 13:35 ` Paulo Zanoni
2015-04-14 17:42 ` Todd Previte
2015-04-10 16:12 ` Todd Previte [this message]
2015-04-10 17:41 ` [PATCH 09/13] drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling Todd Previte
2015-04-10 16:12 ` [PATCH 10/11] drm/i915: Add debugfs test control files for Displayport compliance testing Todd Previte
2015-04-10 16:12 ` [PATCH 11/11] drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() Todd Previte
2015-04-10 16:18 ` Alex Deucher
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=1428682372-21586-10-git-send-email-tprevite@gmail.com \
--to=tprevite@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
/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