Skip to content

Commit 5474560

Browse files
bhadanednyaneshwarrodrigovivi
authored andcommitted
drm/i915/xe3: Restrict PTL intel_encoder_is_c10phy() to only PHY A
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. v2: Change the condition code style for ptl/wcl Bspec: 72571,73944 Fixes: 9d10de7 ("drm/i915/wcl: C10 phy connected to port A and B") Signed-off-by: Dnyaneshwar Bhadane <[email protected]> Reviewed-by: Gustavo Sousa <[email protected]> Signed-off-by: Suraj Kandpal <[email protected]> Link: https://lore.kernel.org/r/[email protected] (cherry picked from commit 8147f7a1c083fd565fb958824f7c552de3b2dc46) Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 913253e commit 5474560

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

drivers/gpu/drm/i915/display/intel_cx0_phy.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,12 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
3939
struct intel_display *display = to_intel_display(encoder);
4040
enum phy phy = intel_encoder_to_phy(encoder);
4141

42-
/* PTL doesn't have a PHY connected to PORT B; as such,
43-
* there will never be a case where PTL uses PHY B.
44-
* WCL uses PORT A and B with the C10 PHY.
45-
* Reusing the condition for WCL and extending it for PORT B
46-
* should not cause any issues for PTL.
47-
*/
48-
if (display->platform.pantherlake && phy < PHY_C)
49-
return true;
42+
if (display->platform.pantherlake) {
43+
if (display->platform.pantherlake_wildcatlake)
44+
return phy <= PHY_B;
45+
else
46+
return phy == PHY_A;
47+
}
5048

5149
if ((display->platform.lunarlake || display->platform.meteorlake) && phy < PHY_C)
5250
return true;

0 commit comments

Comments
 (0)