[Intel-gfx] [PATCH 12/29] drm/i915/tc: Factor out tc_phy_verify_legacy_or_dp_alt_mode()

Kahola, Mika mika.kahola at intel.com
Fri Mar 24 14:21:34 UTC 2023


> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Imre
> Deak
> Sent: Thursday, March 23, 2023 4:20 PM
> To: intel-gfx at lists.freedesktop.org
> Subject: [Intel-gfx] [PATCH 12/29] drm/i915/tc: Factor out
> tc_phy_verify_legacy_or_dp_alt_mode()
> 
> Factor out a function verifying the PHY connected state in legacy or DP-alt
> mode. This is common to all platforms, which can be reused in platform specific
> connect hooks added in follow-up patches.
> 
> No functional changes.
> 

Reviewed-by: Mika Kahola <mika.kahola at intel.com>

> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_tc.c | 47 +++++++++++++++----------
>  1 file changed, 29 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c
> b/drivers/gpu/drm/i915/display/intel_tc.c
> index 9179f86287ab0..ee4db9d0eb978 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -434,27 +434,13 @@ static void icl_tc_phy_get_hw_state(struct
> intel_tc_port *tc)
>   * connect and disconnect to cleanly transfer ownership with the controller and
>   * set the type-C power state.
>   */
> -static bool icl_tc_phy_connect(struct intel_tc_port *tc,
> -			       int required_lanes)
> +static bool tc_phy_verify_legacy_or_dp_alt_mode(struct intel_tc_port *tc,
> +						int required_lanes)
>  {
>  	struct drm_i915_private *i915 = tc_to_i915(tc);
>  	struct intel_digital_port *dig_port = tc->dig_port;
>  	int max_lanes;
> 
> -	if (tc->mode == TC_PORT_TBT_ALT)
> -		return true;
> -
> -	if (!tc_phy_is_ready(tc) &&
> -	    !drm_WARN_ON(&i915->drm, tc->legacy_port)) {
> -		drm_dbg_kms(&i915->drm, "Port %s: PHY not ready\n",
> -			    tc->port_name);
> -		return false;
> -	}
> -
> -	if (!tc_phy_take_ownership(tc, true) &&
> -	    !drm_WARN_ON(&i915->drm, tc->legacy_port))
> -		return false;
> -
>  	max_lanes = intel_tc_port_fia_max_lane_count(dig_port);
>  	if (tc->legacy_port) {
>  		drm_WARN_ON(&i915->drm, max_lanes != 4); @@ -470,7
> +456,7 @@ static bool icl_tc_phy_connect(struct intel_tc_port *tc,
>  	if (!(tc_phy_hpd_live_status(tc) & BIT(TC_PORT_DP_ALT))) {
>  		drm_dbg_kms(&i915->drm, "Port %s: PHY sudden
> disconnect\n",
>  			    tc->port_name);
> -		goto out_release_phy;
> +		return false;
>  	}
> 
>  	if (max_lanes < required_lanes) {
> @@ -478,9 +464,34 @@ static bool icl_tc_phy_connect(struct intel_tc_port *tc,
>  			    "Port %s: PHY max lanes %d < required lanes %d\n",
>  			    tc->port_name,
>  			    max_lanes, required_lanes);
> -		goto out_release_phy;
> +		return false;
> +	}
> +
> +	return true;
> +}
> +
> +static bool icl_tc_phy_connect(struct intel_tc_port *tc,
> +			       int required_lanes)
> +{
> +	struct drm_i915_private *i915 = tc_to_i915(tc);
> +
> +	if (tc->mode == TC_PORT_TBT_ALT)
> +		return true;
> +
> +	if (!tc_phy_is_ready(tc) &&
> +	    !drm_WARN_ON(&i915->drm, tc->legacy_port)) {
> +		drm_dbg_kms(&i915->drm, "Port %s: PHY not ready\n",
> +			    tc->port_name);
> +		return false;
>  	}
> 
> +	if (!tc_phy_take_ownership(tc, true) &&
> +	    !drm_WARN_ON(&i915->drm, tc->legacy_port))
> +		return false;
> +
> +	if (!tc_phy_verify_legacy_or_dp_alt_mode(tc, required_lanes))
> +		goto out_release_phy;
> +
>  	return true;
> 
>  out_release_phy:
> --
> 2.37.1



More information about the Intel-gfx mailing list