Browse Source

disp: msm: avoid setting AMC and WAKE tage on icc vote

Setting AMC and WAKE tag triggers AMC only and WAKE+SLEEP
only vote. These dynamic tag switching is not allowed
on interconnect driver. Display SW usecases also need
ACTIVE_ONLY tag for solver enabled and disabled
configuration. ACTIVE_ONLY tag triggers AMC+SLEEP
for solver disabled and WAKE+SLEEP for solver
enabled configuration.

Change-Id: I5abcc104378595724e5b5ae594c4b8c7a7922875
Signed-off-by: Dhaval Patel <[email protected]>
Dhaval Patel 4 years ago
parent
commit
ff43683350
1 changed files with 4 additions and 32 deletions
  1. 4 32
      msm/sde_rsc.c

+ 4 - 32
msm/sde_rsc.c

@@ -63,21 +63,6 @@
 static struct sde_rsc_priv *rsc_prv_list[MAX_RSC_COUNT];
 static struct sde_rsc_priv *rsc_prv_list[MAX_RSC_COUNT];
 static struct device *rpmh_dev[MAX_RSC_COUNT];
 static struct device *rpmh_dev[MAX_RSC_COUNT];
 
 
-static void sde_rsc_set_data_bus_mode(struct sde_power_handle *phandle, u32 tag)
-{
-	int i = 0, j = 0;
-
-	for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++) {
-		if (!phandle->data_bus_handle[i].bus_active_only)
-			continue;
-
-		for (j = 0; j < phandle->data_bus_handle[i].data_paths_cnt; j++)
-			icc_set_tag(phandle->data_bus_handle[i].data_bus_hdl[j],
-				    tag);
-
-	}
-}
-
 /**
 /**
  * sde_rsc_client_create() - create the client for sde rsc.
  * sde_rsc_client_create() - create the client for sde rsc.
  * Different displays like DSI, HDMI, DP, WB, etc should call this
  * Different displays like DSI, HDMI, DP, WB, etc should call this
@@ -531,11 +516,8 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc,
 
 
 	if (rsc->hw_ops.state_update) {
 	if (rsc->hw_ops.state_update) {
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CMD_STATE);
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CMD_STATE);
-		if (!rc) {
+		if (!rc)
 			rpmh_mode_solver_set(rsc->rpmh_dev, true);
 			rpmh_mode_solver_set(rsc->rpmh_dev, true);
-			sde_rsc_set_data_bus_mode(&rsc->phandle,
-						  QCOM_ICC_TAG_WAKE);
-		}
 	}
 	}
 
 
 	/* vsync wait not needed during VID->CMD switch (rev 4+ HW only) */
 	/* vsync wait not needed during VID->CMD switch (rev 4+ HW only) */
@@ -594,11 +576,8 @@ static int sde_rsc_switch_to_clk(struct sde_rsc_priv *rsc,
 
 
 	if (rsc->hw_ops.state_update) {
 	if (rsc->hw_ops.state_update) {
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CLK_STATE);
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CLK_STATE);
-		if (!rc) {
+		if (!rc)
 			rpmh_mode_solver_set(rsc->rpmh_dev, false);
 			rpmh_mode_solver_set(rsc->rpmh_dev, false);
-			sde_rsc_set_data_bus_mode(&rsc->phandle,
-						  QCOM_ICC_TAG_AMC);
-		}
 	}
 	}
 
 
 	/* indicate wait for vsync for cmd/vid to clk state switch */
 	/* indicate wait for vsync for cmd/vid to clk state switch */
@@ -684,13 +663,9 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc,
 
 
 	if (rsc->hw_ops.state_update) {
 	if (rsc->hw_ops.state_update) {
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_VID_STATE);
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_VID_STATE);
-		if (!rc) {
+		if (!rc)
 			rpmh_mode_solver_set(rsc->rpmh_dev,
 			rpmh_mode_solver_set(rsc->rpmh_dev,
 				rsc->version >= SDE_RSC_REV_3);
 				rsc->version >= SDE_RSC_REV_3);
-			sde_rsc_set_data_bus_mode(&rsc->phandle,
-				rsc->version >= SDE_RSC_REV_3 ?
-				QCOM_ICC_TAG_WAKE : QCOM_ICC_TAG_AMC);
-		}
 	}
 	}
 
 
 	/* vsync wait not needed during CMD->VID switch (rev 4+ HW only) */
 	/* vsync wait not needed during CMD->VID switch (rev 4+ HW only) */
@@ -774,11 +749,8 @@ static int sde_rsc_switch_to_idle(struct sde_rsc_priv *rsc,
 	} else if (rsc->hw_ops.state_update) {
 	} else if (rsc->hw_ops.state_update) {
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_IDLE_STATE);
 		rc = rsc->hw_ops.state_update(rsc, SDE_RSC_IDLE_STATE);
 		rsc->post_poms = false;
 		rsc->post_poms = false;
-		if (!rc) {
+		if (!rc)
 			rpmh_mode_solver_set(rsc->rpmh_dev, true);
 			rpmh_mode_solver_set(rsc->rpmh_dev, true);
-			sde_rsc_set_data_bus_mode(&rsc->phandle,
-						  QCOM_ICC_TAG_WAKE);
-		}
 	}
 	}
 
 
 	return rc;
 	return rc;