All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero
@ 2020-01-23 19:45 Harry Wentland
  2020-01-23 19:45 ` [PATCH 2/2] Revert "drm/amd/display: Don't skip link training for empty dongle" Harry Wentland
  0 siblings, 1 reply; 3+ messages in thread
From: Harry Wentland @ 2020-01-23 19:45 UTC (permalink / raw)
  To: amd-gfx; +Cc: Hersen Wu, Wenjing Liu, Harry Wentland, Eric Yang, Louis Li

[WHY]
Two years ago the patch referenced by the Fixes tag stopped running
dp_verify_link_cap_with_retries during DP detection when the reason
for the detection was a short-pulse interrupt. This effectively meant
that we were no longer doing the verify_link_cap training on active
dongles when their SINK_COUNT changed from 0 to 1.

A year ago this was partly remedied with this commit:
80adaebd2d41 drm/amd/display: Don't skip link training for empty dongle

This made sure that we trained the dongle on initial hotplug (without
connected downstream devices).

This is all fine and dandy if it weren't for the fact that there are
some dongles on the market that don't like link training when SINK_COUNT
is 0 These dongles will in fact indicate a SINK_COUNT of 0 immediately
after hotplug, even when a downstream device is connected, and then
trigger a shortpulse interrupt indicating a SINK_COUNT change to 1.

In order to play nicely we will need our policy to not link train an
active DP dongle when SINK_COUNT is 0 but ensure we train it when the
SINK_COUNT changes to 1.

[HOW]
Call dp_verify_link_cap_with_retries on detection even when the detection
is triggered from a short pulse interrupt.

With this change we can also revert this commit which we'll do in a separate
follow-up change:
80adaebd2d41 drm/amd/display: Don't skip link training for empty dongle

Fixes: 0301ccbaf67d drm/amd/display: DP Compliance 400.1.1 failure
Suggested-by: Louis Li <Ching-shih.Li@amd.com>
Tested-by: Louis Li <Ching-shih.Li@amd.com>
Cc: Wenjing Liu <Wenjing.Liu@amd.com>
Cc: Hersen Wu <hersenxs.wu@amd.com>
Cc: Eric Yang <Eric.Yang2@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index a50768a7ba68..cc2e05003595 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -969,8 +969,7 @@ static bool dc_link_detect_helper(struct dc_link *link,
 			same_edid = is_same_edid(&prev_sink->dc_edid, &sink->dc_edid);
 
 		if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
-			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX &&
-			reason != DETECT_REASON_HPDRX) {
+			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
 			/*
 			 * TODO debug why Dell 2413 doesn't like
 			 *  two link trainings
-- 
2.25.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] Revert "drm/amd/display: Don't skip link training for empty dongle"
  2020-01-23 19:45 [PATCH 1/2] drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero Harry Wentland
@ 2020-01-23 19:45 ` Harry Wentland
  2020-01-23 22:28   ` Harry Wentland
  0 siblings, 1 reply; 3+ messages in thread
From: Harry Wentland @ 2020-01-23 19:45 UTC (permalink / raw)
  To: amd-gfx; +Cc: Hersen Wu, Wenjing Liu, Harry Wentland, Eric Yang, Louis Li

This reverts commit 80adaebd2d411b7d6872a097634848a71eb13d20.

[WHY]
This change was working around a regression that occured in this
patch:
0301ccbaf67d drm/amd/display: DP Compliance 400.1.1 failure

With the fix to run verify_link_cap when the SINK_COUNT of
dongles becomes non-zero this change is no longer needed.

Cc: Louis Li <Ching-shih.Li@amd.com>
Cc: Wenjing Liu <Wenjing.Liu@amd.com>
Cc: Hersen Wu <hersenxs.wu@amd.com>
Cc: Eric Yang <Eric.Yang2@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index cc2e05003595..a09119c10d7c 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -851,18 +851,12 @@ static bool dc_link_detect_helper(struct dc_link *link,
 				if (memcmp(&link->dpcd_caps, &prev_dpcd_caps, sizeof(struct dpcd_caps)))
 					same_dpcd = false;
 			}
-			/* Active dongle plug in without display or downstream unplug*/
+			/* Active dongle downstream unplug*/
 			if (link->type == dc_connection_active_dongle &&
 				link->dpcd_caps.sink_count.bits.SINK_COUNT == 0) {
-				if (prev_sink != NULL) {
+				if (prev_sink != NULL)
 					/* Downstream unplug */
 					dc_sink_release(prev_sink);
-				} else {
-					/* Empty dongle plug in */
-					dp_verify_link_cap_with_retries(link,
-							&link->reported_link_cap,
-							LINK_TRAINING_MAX_VERIFY_RETRY);
-				}
 				return true;
 			}
 
-- 
2.25.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/2] Revert "drm/amd/display: Don't skip link training for empty dongle"
  2020-01-23 19:45 ` [PATCH 2/2] Revert "drm/amd/display: Don't skip link training for empty dongle" Harry Wentland
@ 2020-01-23 22:28   ` Harry Wentland
  0 siblings, 0 replies; 3+ messages in thread
From: Harry Wentland @ 2020-01-23 22:28 UTC (permalink / raw)
  To: Harry Wentland, amd-gfx; +Cc: Hersen Wu, Wenjing Liu, Eric Yang, Louis Li

On 2020-01-23 2:45 p.m., Harry Wentland wrote:
> This reverts commit 80adaebd2d411b7d6872a097634848a71eb13d20.
> 
> [WHY]
> This change was working around a regression that occured in this
> patch:
> 0301ccbaf67d drm/amd/display: DP Compliance 400.1.1 failure
> 
> With the fix to run verify_link_cap when the SINK_COUNT of
> dongles becomes non-zero this change is no longer needed.
> 
> Cc: Louis Li <Ching-shih.Li@amd.com>
> Cc: Wenjing Liu <Wenjing.Liu@amd.com>
> Cc: Hersen Wu <hersenxs.wu@amd.com>
> Cc: Eric Yang <Eric.Yang2@amd.com>
> Signed-off-by: Harry Wentland <harry.wentland@amd.com>

Both patches have been offline reviewed by Wenjing. I'll merge them with
his review.

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/core/dc_link.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> index cc2e05003595..a09119c10d7c 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
> @@ -851,18 +851,12 @@ static bool dc_link_detect_helper(struct dc_link *link,
>  				if (memcmp(&link->dpcd_caps, &prev_dpcd_caps, sizeof(struct dpcd_caps)))
>  					same_dpcd = false;
>  			}
> -			/* Active dongle plug in without display or downstream unplug*/
> +			/* Active dongle downstream unplug*/
>  			if (link->type == dc_connection_active_dongle &&
>  				link->dpcd_caps.sink_count.bits.SINK_COUNT == 0) {
> -				if (prev_sink != NULL) {
> +				if (prev_sink != NULL)
>  					/* Downstream unplug */
>  					dc_sink_release(prev_sink);
> -				} else {
> -					/* Empty dongle plug in */
> -					dp_verify_link_cap_with_retries(link,
> -							&link->reported_link_cap,
> -							LINK_TRAINING_MAX_VERIFY_RETRY);
> -				}
>  				return true;
>  			}
>  
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-01-23 22:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-23 19:45 [PATCH 1/2] drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero Harry Wentland
2020-01-23 19:45 ` [PATCH 2/2] Revert "drm/amd/display: Don't skip link training for empty dongle" Harry Wentland
2020-01-23 22:28   ` Harry Wentland

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.