drm/i915/cx0: Only clear/set the Pipe Reset bit of the PHY Lanes Owned
authorKhaled Almahallawy <khaled.almahallawy@intel.com>
Thu, 5 Oct 2023 00:13:10 +0000 (17:13 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 18 Oct 2023 02:08:49 +0000 (22:08 -0400)
Currently, with MFD/pin assignment D, the driver clears the pipe reset bit
of lane 1 which is not owned by display. This causes the display
to block S0iX.

By not clearing this bit for lane 1 and keeping whatever default, S0ix
started to work. This is already what the driver does at the end
of the phy lane reset sequence (Step#8)

Bspec: 65451
Fixes: 619a06dba6fa ("drm/i915/mtl: Reset only one lane in case of MFD")
Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231005001310.154396-1-khaled.almahallawy@intel.com
(cherry picked from commit 4a07f063d20c46524f00976f4537de72d9f31c4e)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_cx0_phy.c

index 1b00ef2c6185073fb29c1683ee1d3adae3c87402..80e4ec6ee4031ba9021b73bc808b5d6ae935a4b6 100644 (file)
@@ -2553,8 +2553,7 @@ static void intel_cx0_phy_lane_reset(struct drm_i915_private *i915,
                drm_warn(&i915->drm, "PHY %c failed to bring out of SOC reset after %dus.\n",
                         phy_name(phy), XELPDP_PORT_BUF_SOC_READY_TIMEOUT_US);
 
-       intel_de_rmw(i915, XELPDP_PORT_BUF_CTL2(port),
-                    XELPDP_LANE_PIPE_RESET(0) | XELPDP_LANE_PIPE_RESET(1),
+       intel_de_rmw(i915, XELPDP_PORT_BUF_CTL2(port), lane_pipe_reset,
                     lane_pipe_reset);
 
        if (__intel_de_wait_for_register(i915, XELPDP_PORT_BUF_CTL2(port),