diff mbox series

drm/i915/display: Fixed HDMI can't show up behind a USB-C dock station

Message ID 20240422094451.1566990-1-gareth.yu@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/display: Fixed HDMI can't show up behind a USB-C dock station | expand

Commit Message

Yu, Gareth April 22, 2024, 9:44 a.m. UTC
From: Gareth Yu <gareth.yu@intel.com>

Re-train the main link once HPD happens without link status

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
Cc : Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
Cc : Matt Roper <matthew.d.roper@intel.com>
Cc : Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Gareth Yu <gareth.yu@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jani Nikula April 22, 2024, 11:26 a.m. UTC | #1
On Mon, 22 Apr 2024, gareth.yu@intel.com wrote:
> From: Gareth Yu <gareth.yu@intel.com>
>
> Re-train the main link once HPD happens without link status

Please address review before sending more versions.

Please include a patch changelog, and indicate patch version with git
send-email/format-patch -vN option because otherwise we have no clue.

BR,
Jani.

>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
> Cc : Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
> Cc : Matt Roper <matthew.d.roper@intel.com>
> Cc : Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Gareth Yu <gareth.yu@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index e05e25cd4a94..52ab549e6d08 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5849,8 +5849,13 @@ intel_dp_detect(struct drm_connector *connector,
>  	/* Can't disconnect eDP */
>  	if (intel_dp_is_edp(intel_dp))
>  		status = edp_detect(intel_dp);
> -	else if (intel_digital_port_connected(encoder))
> +	else if (intel_digital_port_connected(encoder)) {
>  		status = intel_dp_detect_dpcd(intel_dp);
> +		if (status == connector_status_connected && intel_dp->is_mst &&
> +		    !intel_dp_mst_link_status(intel_dp))
> +			if (intel_dp_retrain_link(encoder, ctx))
> +				status = connector_status_disconnected;
> +	}
>  	else
>  		status = connector_status_disconnected;
Jani Nikula April 22, 2024, 11:33 a.m. UTC | #2
On Mon, 22 Apr 2024, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Mon, 22 Apr 2024, gareth.yu@intel.com wrote:
>> From: Gareth Yu <gareth.yu@intel.com>
>>
>> Re-train the main link once HPD happens without link status
>
> Please address review before sending more versions.

And, in the general case, do not send three versions of a patch in the
span of a few hours. Give review some time.

>
> Please include a patch changelog, and indicate patch version with git
> send-email/format-patch -vN option because otherwise we have no clue.
>
> BR,
> Jani.
>
>>
>> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
>> Cc : Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
>> Cc : Matt Roper <matthew.d.roper@intel.com>
>> Cc : Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Gareth Yu <gareth.yu@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> index e05e25cd4a94..52ab549e6d08 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -5849,8 +5849,13 @@ intel_dp_detect(struct drm_connector *connector,
>>  	/* Can't disconnect eDP */
>>  	if (intel_dp_is_edp(intel_dp))
>>  		status = edp_detect(intel_dp);
>> -	else if (intel_digital_port_connected(encoder))
>> +	else if (intel_digital_port_connected(encoder)) {
>>  		status = intel_dp_detect_dpcd(intel_dp);
>> +		if (status == connector_status_connected && intel_dp->is_mst &&
>> +		    !intel_dp_mst_link_status(intel_dp))
>> +			if (intel_dp_retrain_link(encoder, ctx))
>> +				status = connector_status_disconnected;
>> +	}
>>  	else
>>  		status = connector_status_disconnected;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..52ab549e6d08 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5849,8 +5849,13 @@  intel_dp_detect(struct drm_connector *connector,
 	/* Can't disconnect eDP */
 	if (intel_dp_is_edp(intel_dp))
 		status = edp_detect(intel_dp);
-	else if (intel_digital_port_connected(encoder))
+	else if (intel_digital_port_connected(encoder)) {
 		status = intel_dp_detect_dpcd(intel_dp);
+		if (status == connector_status_connected && intel_dp->is_mst &&
+		    !intel_dp_mst_link_status(intel_dp))
+			if (intel_dp_retrain_link(encoder, ctx))
+				status = connector_status_disconnected;
+	}
 	else
 		status = connector_status_disconnected;