[Intel-gfx] [PATCH] drm/i915/dp: Do not switch aux to TBT mode for non-TC ports

Imre Deak imre.deak at intel.com
Tue Oct 29 10:03:26 UTC 2019


On Mon, Oct 28, 2019 at 06:10:14PM -0700, José Roberto de Souza wrote:
> Non-TC ports always have tc_mode == TC_PORT_TBT_ALT so it was
> switching aux to TC mode for all combo-phy ports, happily this did
> not caused any issue but is better follow BSpec.
> Also this is reserved bit before ICL.
> 
> Fixes: 6f211ed43438 ("drm/i915/icl: Set TBT IO in Aux transaction")

This actually
Fixes: e9b7e1422d40 ("drm/i915: Sanitize the terminology used for TypeC port modes")

thanks for spotting it.

> Cc: Imre Deak <imre.deak at intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>

Reviewed-by: Imre Deak <imre.deak at intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 86989ec25bc6..379623397301 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1291,6 +1291,9 @@ static u32 skl_get_aux_send_ctl(struct intel_dp *intel_dp,
>  				u32 unused)
>  {
>  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> +	struct drm_i915_private *i915 =
> +			to_i915(intel_dig_port->base.base.dev);
> +	enum phy phy = intel_port_to_phy(i915, intel_dig_port->base.port);
>  	u32 ret;
>  
>  	ret = DP_AUX_CH_CTL_SEND_BUSY |
> @@ -1303,7 +1306,8 @@ static u32 skl_get_aux_send_ctl(struct intel_dp *intel_dp,
>  	      DP_AUX_CH_CTL_FW_SYNC_PULSE_SKL(32) |
>  	      DP_AUX_CH_CTL_SYNC_PULSE_SKL(32);
>  
> -	if (intel_dig_port->tc_mode == TC_PORT_TBT_ALT)
> +	if (intel_phy_is_tc(i915, phy) &&
> +	    intel_dig_port->tc_mode == TC_PORT_TBT_ALT)
>  		ret |= DP_AUX_CH_CTL_TBT_IO;
>  
>  	return ret;
> -- 
> 2.23.0
> 


More information about the Intel-gfx mailing list