On PTL, no combo PHY is connected to PORT B. However, PORT B can
still be used for Type-C and will utilize the C20 PHY for eDP
over Type-C. In such configurations, VBTs also enumerate PORT B.

This leads to issues where PORT B is incorrectly identified as using the
C10 PHY, due to the assumption that returning true for PORT B in
intel_encoder_is_c10phy() would not cause problems.

>From PTL's perspective, only PORT A/PHY A uses the C10 PHY.

Update the helper intel_encoder_is_c10phy() to return true only for
PORT A/PHY on PTL.

Bspec: 72571,73944
Signed-off-by: Dnyaneshwar Bhadane <[email protected]>
Reviewed-by: Ankit Nautiyal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_cx0_phy.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c 
b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index 801235a5bc0a..33963ad14cfa 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -39,13 +39,8 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
        struct intel_display *display = to_intel_display(encoder);
        enum phy phy = intel_encoder_to_phy(encoder);
 
-       /* PTL doesn't have a PHY connected to PORT B; as such,
-        * there will never be a case where PTL uses PHY B.
-        * WCL uses PORT A and B with the C10 PHY.
-        * Reusing the condition for WCL and extending it for PORT B
-        * should not cause any issues for PTL.
-        */
-       if (display->platform.pantherlake && phy < PHY_C)
+       if ((display->platform.pantherlake && phy == PHY_A) ||
+           ((DISPLAY_VERx100(display) == 3002) && phy == PHY_B))
                return true;
 
        if ((display->platform.lunarlake || display->platform.meteorlake) && 
phy < PHY_C)
-- 
2.51.0

Reply via email to