Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 596fd224 authored by Sandeep Panda's avatar Sandeep Panda Committed by Abhijith Desai
Browse files

drm/msm/dsi-staging: fix lane idle check logic for dsi phy



Currently in DSI PHY v3 and v4, the check for lane idle state
expects the state of unused lanes bit to be zero, which is
not the case because if any particular lane is not used then
that lane state will be set to one which means stop state.
This causes ulps enable to fail as the lane idle check fails.
This change fixes the logic.

Change-Id: I9f2dcc4619ac119cef4e353524aebbfea19b2aba
Signed-off-by: default avatarSandeep Panda <spanda@codeaurora.org>
Signed-off-by: default avatarAbhijith Desai <desaia@codeaurora.org>
parent c2149e28
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -333,7 +333,8 @@ int dsi_phy_hw_v3_0_wait_for_lane_idle(
	pr_debug("%s: polling for lanes to be in stop state, mask=0x%08x\n",
		__func__, stop_state_mask);
	rc = readl_poll_timeout(phy->base + DSIPHY_CMN_LANE_STATUS1, val,
			(val == stop_state_mask), sleep_us, timeout_us);
				((val & stop_state_mask) == stop_state_mask),
				sleep_us, timeout_us);
	if (rc) {
		pr_err("%s: lanes not in stop state, LANE_STATUS=0x%08x\n",
			__func__, val);
+2 −1
Original line number Diff line number Diff line
@@ -315,7 +315,8 @@ int dsi_phy_hw_v4_0_wait_for_lane_idle(
	pr_debug("%s: polling for lanes to be in stop state, mask=0x%08x\n",
		__func__, stop_state_mask);
	rc = readl_poll_timeout(phy->base + DSIPHY_CMN_LANE_STATUS1, val,
			(val == stop_state_mask), sleep_us, timeout_us);
				((val & stop_state_mask) == stop_state_mask),
				sleep_us, timeout_us);
	if (rc) {
		pr_err("%s: lanes not in stop state, LANE_STATUS=0x%08x\n",
			__func__, val);