From: Daniel Vetter <daniel@ffwll.ch>
To: Todd Previte <tprevite@gmail.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 4/5] drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling
Date: Mon, 20 Apr 2015 09:30:06 -0700 [thread overview]
Message-ID: <20150420163006.GI14565@bremse> (raw)
In-Reply-To: <1429340659-14369-5-git-send-email-tprevite@gmail.com>
On Sat, Apr 18, 2015 at 12:04:18AM -0700, Todd Previte wrote:
> 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 add the numer of defers to 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
> V4:
> - Removed i915 tag from subject as the patch is not i915-specific
> V5:
> - Updated the for-loop to add the number of i2c defers to the retry
> counter such that the correct number of retry attempts will be
> made
>
> Signed-off-by: Todd Previte <tprevite@gmail.com>
> Cc: dri-devel@lists.freedesktop.org
> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Applied to topic/drm-misc.
-Daniel
> ---
> drivers/gpu/drm/drm_dp_helper.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
> index 575172e..80a02a4 100644
> --- a/drivers/gpu/drm/drm_dp_helper.c
> +++ b/drivers/gpu/drm/drm_dp_helper.c
> @@ -432,7 +432,7 @@ static u32 drm_dp_i2c_functionality(struct i2c_adapter *adapter)
> */
> static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
> {
> - unsigned int retry;
> + unsigned int retry, defer_i2c;
> int ret;
>
> /*
> @@ -440,7 +440,7 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
> * is required to retry at least seven times upon receiving AUX_DEFER
> * before giving up the AUX transaction.
> */
> - for (retry = 0; retry < 7; retry++) {
> + for (retry = 0, defer_i2c = 0; retry < (7 + defer_i2c); retry++) {
> mutex_lock(&aux->hw_mutex);
> ret = aux->transfer(aux, msg);
> mutex_unlock(&aux->hw_mutex);
> @@ -499,7 +499,13 @@ 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");
> + /* DP Compliance Test 4.2.2.5 Requirement:
> + * Must have at least 7 retries for I2C defers on the
> + * transaction to pass this test
> + */
> aux->i2c_defer_count++;
> + if (defer_i2c < 7)
> + defer_i2c++;
> usleep_range(400, 500);
> continue;
>
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
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-20 16:30 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-18 7:04 [PATCH V7] Displayport compliance testing V7 Todd Previte
2015-04-18 7:04 ` [PATCH 1/5] drm/i915: Move Displayport test request and sink IRQ logic to intel_dp_detect() Todd Previte
2015-04-19 23:09 ` [PATCH] " Todd Previte
2015-04-20 2:01 ` shuang.he
2015-04-20 22:27 ` [PATCH 4/8] " Todd Previte
2015-04-30 18:14 ` Paulo Zanoni
2015-04-18 7:04 ` [PATCH 2/5] drm: Add edid_corrupt flag for Displayport Link CTS 4.2.2.6 Todd Previte
2015-04-21 18:09 ` Todd Previte
2015-04-22 20:20 ` Alex Deucher
2015-04-30 18:37 ` Paulo Zanoni
2015-05-08 14:13 ` [PATCH] drm: Fix missing kerneldoc for the edid_corrupt field in struct drm_connector Todd Previte
2015-05-09 1:59 ` shuang.he
2015-05-11 9:43 ` Daniel Vetter
2015-04-18 7:04 ` [PATCH 3/5] drm/i915: Implement the intel_dp_autotest_edid function for DP EDID complaince tests Todd Previte
2015-04-30 18:30 ` Paulo Zanoni
2015-05-04 13:17 ` Daniel Vetter
2015-05-05 13:50 ` Jani Nikula
2015-05-04 14:48 ` [PATCH 06/10] " Todd Previte
2015-05-07 7:35 ` Daniel Vetter
2015-04-18 7:04 ` [PATCH 4/5] drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling Todd Previte
2015-04-20 16:30 ` Daniel Vetter [this message]
2015-04-18 7:04 ` [PATCH 5/5] drm/i915: Add debugfs test control files for Displayport compliance testing Todd Previte
2015-04-23 21:35 ` shuang.he
[not found] <1429339277-12738-1-git-send-email-tprevite@gmail.com>
2015-04-18 6:41 ` [PATCH 4/5] drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling 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=20150420163006.GI14565@bremse \
--to=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=tprevite@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.