disp: msm: sde: migrated new sde icb bus scaling driver for lahaina

Migrate to icb framework API in drm and sde driver. And
also removes old msm_bus custom APIs from the driver.

Change-Id: Ifcf6d6f157594638075742fe328b29a9be065bca
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
This commit is contained in:
Yuan Zhao
2019-09-09 16:30:58 +08:00
کامیت شده توسط Gerrit - the friendly Code Review server
والد b7d71e1543
کامیت 6cb205cbba
5فایلهای تغییر یافته به همراه171 افزوده شده و 179 حذف شده

مشاهده پرونده

@@ -15,7 +15,6 @@
#include <linux/mutex.h>
#include <linux/of_platform.h>
#include <linux/module.h>
#include <linux/msm-bus.h>
#include <soc/qcom/rpmh.h>
#include <drm/drmP.h>
@@ -64,6 +63,21 @@
static struct sde_rsc_priv *rsc_prv_list[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.
* Different displays like DSI, HDMI, DP, WB, etc should call this
@@ -523,8 +537,11 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc,
if (rsc->hw_ops.state_update) {
rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CMD_STATE);
if (!rc)
if (!rc) {
rpmh_mode_solver_set(rsc->rpmh_dev, true);
sde_rsc_set_data_bus_mode(&rsc->phandle,
QCOM_ICC_TAG_WAKE);
}
}
vsync_wait:
@@ -574,8 +591,11 @@ static int sde_rsc_switch_to_clk(struct sde_rsc_priv *rsc,
if (rsc->hw_ops.state_update) {
rc = rsc->hw_ops.state_update(rsc, SDE_RSC_CLK_STATE);
if (!rc)
if (!rc) {
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 */
@@ -661,9 +681,13 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc,
if (rsc->hw_ops.state_update) {
rc = rsc->hw_ops.state_update(rsc, SDE_RSC_VID_STATE);
if (!rc)
if (!rc) {
rpmh_mode_solver_set(rsc->rpmh_dev,
rsc->version == SDE_RSC_REV_3 ? true : false);
sde_rsc_set_data_bus_mode(&rsc->phandle,
rsc->version == SDE_RSC_REV_3 ?
QCOM_ICC_TAG_WAKE : QCOM_ICC_TAG_AMC);
}
}
vsync_wait:
@@ -737,8 +761,11 @@ static int sde_rsc_switch_to_idle(struct sde_rsc_priv *rsc,
rc = CLK_MODE_SWITCH_SUCCESS;
} else if (rsc->hw_ops.state_update) {
rc = rsc->hw_ops.state_update(rsc, SDE_RSC_IDLE_STATE);
if (!rc)
if (!rc) {
rpmh_mode_solver_set(rsc->rpmh_dev, true);
sde_rsc_set_data_bus_mode(&rsc->phandle,
QCOM_ICC_TAG_WAKE);
}
}
return rc;