drm/i915/display: Wait for PHY readiness not needed for disabling sequence
authorMika Kahola <mika.kahola@intel.com>
Tue, 12 Dec 2023 11:51:30 +0000 (13:51 +0200)
committerMika Kahola <mika.kahola@intel.com>
Wed, 13 Dec 2023 07:54:20 +0000 (09:54 +0200)
When going through the disconnection flow we don't need to wait for PHY
readiness and hence we can skip the wait part. For disabling the function
returns false as an indicator that the power is not enabled. After all,
we are not even using the return value when Type-C is disconnecting.

v2: Cleanup for increased readibility (Imre)

BSpec: 65380

For VLK-53734

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231212115130.485911-1-mika.kahola@intel.com
drivers/gpu/drm/i915/display/intel_tc.c

index f64d348a969efa93dff0bd254369f3b4a6a22eea..dcf05e00e5052420821d939aa0c8835cb84a76b2 100644 (file)
@@ -1030,18 +1030,25 @@ static bool xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enabl
 
        __xelpdp_tc_phy_enable_tcss_power(tc, enable);
 
-       if ((!tc_phy_wait_for_ready(tc) ||
-            !xelpdp_tc_phy_wait_for_tcss_power(tc, enable)) &&
-           !drm_WARN_ON(&i915->drm, tc->mode == TC_PORT_LEGACY)) {
-               if (enable) {
-                       __xelpdp_tc_phy_enable_tcss_power(tc, false);
-                       xelpdp_tc_phy_wait_for_tcss_power(tc, false);
-               }
+       if (enable && !tc_phy_wait_for_ready(tc))
+               goto out_disable;
 
-               return false;
-       }
+       if (!xelpdp_tc_phy_wait_for_tcss_power(tc, enable))
+               goto out_disable;
 
        return true;
+
+out_disable:
+       if (drm_WARN_ON(&i915->drm, tc->mode == TC_PORT_LEGACY))
+               return false;
+
+       if (!enable)
+               return false;
+
+       __xelpdp_tc_phy_enable_tcss_power(tc, false);
+       xelpdp_tc_phy_wait_for_tcss_power(tc, false);
+
+       return false;
 }
 
 static void xelpdp_tc_phy_take_ownership(struct intel_tc_port *tc, bool take)