msm-mmrm: Moving peak-current threshold to DT
Moving peak-current threshold to DT to ensure that it'll get configured correctly on different targets. Change-Id: I7c1a7f8dd6ba818f7a1ee14de735729fb6f3abcb Signed-off-by: Mark Bao <quic_mbao@quicinc.com>
This commit is contained in:
@@ -1113,7 +1113,7 @@ int mmrm_init_sw_clk_mgr(void *driver_data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* update the peak current threshold */
|
/* update the peak current threshold */
|
||||||
sinfo->peak_cur_data.threshold = cres->threshold;
|
sinfo->peak_cur_data.threshold = cres->peak_threshold;
|
||||||
sinfo->peak_cur_data.aggreg_val = 0;
|
sinfo->peak_cur_data.aggreg_val = 0;
|
||||||
sinfo->peak_cur_data.aggreg_level = 0;
|
sinfo->peak_cur_data.aggreg_level = 0;
|
||||||
sinfo->throttle_clients_data_length = cres->throttle_clients_data_length;
|
sinfo->throttle_clients_data_length = cres->throttle_clients_data_length;
|
||||||
|
@@ -10,10 +10,6 @@
|
|||||||
#include "mmrm_debug.h"
|
#include "mmrm_debug.h"
|
||||||
|
|
||||||
static struct mmrm_common_data common_pt_data[] = {
|
static struct mmrm_common_data common_pt_data[] = {
|
||||||
{
|
|
||||||
.key = "qcom,mmrm_clk_threshold",
|
|
||||||
.value = 9000,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
.key = "qcom,mmrm_clk_mgr_scheme",
|
.key = "qcom,mmrm_clk_mgr_scheme",
|
||||||
.value = CLK_MGR_SCHEME_SW,
|
.value = CLK_MGR_SCHEME_SW,
|
||||||
|
@@ -35,11 +35,6 @@ static int mmrm_read_clk_pltfrm_rsrc_frm_drv_data(
|
|||||||
pdata = ddata->platform_data;
|
pdata = ddata->platform_data;
|
||||||
cres = &ddata->clk_res;
|
cres = &ddata->clk_res;
|
||||||
|
|
||||||
cres->threshold = mmrm_find_key_value(pdata,
|
|
||||||
"qcom,mmrm_clk_threshold");
|
|
||||||
d_mpr_h("%s: configured mmrm clk threshold %d\n",
|
|
||||||
__func__, cres->threshold);
|
|
||||||
|
|
||||||
cres->scheme = mmrm_find_key_value(pdata,
|
cres->scheme = mmrm_find_key_value(pdata,
|
||||||
"qcom,mmrm_clk_mgr_scheme");
|
"qcom,mmrm_clk_mgr_scheme");
|
||||||
d_mpr_h("%s: configured mmrm scheme %d\n",
|
d_mpr_h("%s: configured mmrm scheme %d\n",
|
||||||
@@ -134,6 +129,16 @@ static int mmrm_load_nom_clk_src_table(
|
|||||||
struct platform_device *pdev = cres->pdev;
|
struct platform_device *pdev = cres->pdev;
|
||||||
struct nom_clk_src_set *clk_srcs = &cres->nom_clk_set;
|
struct nom_clk_src_set *clk_srcs = &cres->nom_clk_set;
|
||||||
|
|
||||||
|
rc = of_property_read_u32(pdev->dev.of_node, "mmrm-peak-threshold", &cres->peak_threshold);
|
||||||
|
if (rc < 0) {
|
||||||
|
d_mpr_e("%s: invalid or missing mmrm-peak-threshold DT property\n", __func__);
|
||||||
|
rc = -ENODEV;
|
||||||
|
goto err_load_clk_src_tbl;
|
||||||
|
}
|
||||||
|
|
||||||
|
d_mpr_h("%s: mmrm-peak-threshold threshold:%d\n",
|
||||||
|
__func__, cres->peak_threshold);
|
||||||
|
|
||||||
of_find_property(pdev->dev.of_node, "mmrm-client-info", &size_clk_src);
|
of_find_property(pdev->dev.of_node, "mmrm-client-info", &size_clk_src);
|
||||||
if ((size_clk_src < sizeof(*clk_srcs->clk_src_tbl)) ||
|
if ((size_clk_src < sizeof(*clk_srcs->clk_src_tbl)) ||
|
||||||
(size_clk_src % sizeof(*clk_srcs->clk_src_tbl))) {
|
(size_clk_src % sizeof(*clk_srcs->clk_src_tbl))) {
|
||||||
|
@@ -36,12 +36,12 @@ struct nom_clk_src_set {
|
|||||||
|
|
||||||
struct mmrm_clk_platform_resources {
|
struct mmrm_clk_platform_resources {
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
u32 threshold;
|
|
||||||
u32 scheme;
|
u32 scheme;
|
||||||
u32 clsid_threshold_clients[MMRM_MAX_THROTTLE_CLIENTS];
|
u32 clsid_threshold_clients[MMRM_MAX_THROTTLE_CLIENTS];
|
||||||
u16 throttle_clients_data_length;
|
u16 throttle_clients_data_length;
|
||||||
struct voltage_corner_set corner_set;
|
struct voltage_corner_set corner_set;
|
||||||
struct nom_clk_src_set nom_clk_set;
|
struct nom_clk_src_set nom_clk_set;
|
||||||
|
u32 peak_threshold;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -401,8 +401,13 @@ static ssize_t dump_clk_res_info_show(struct device *dev,
|
|||||||
struct nom_clk_src_info *pclk;
|
struct nom_clk_src_info *pclk;
|
||||||
int left_spaces = MMRM_SYSFS_ENTRY_MAX_LEN;
|
int left_spaces = MMRM_SYSFS_ENTRY_MAX_LEN;
|
||||||
|
|
||||||
|
len = scnprintf(buf, left_spaces, "threshold: %d\n",
|
||||||
|
cres->peak_threshold);
|
||||||
|
left_spaces -= len;
|
||||||
|
buf += len;
|
||||||
|
|
||||||
for (i=0, pclk=clk_set->clk_src_tbl; i < clk_set->count && left_spaces > 1; i++, pclk++) {
|
for (i=0, pclk=clk_set->clk_src_tbl; i < clk_set->count && left_spaces > 1; i++, pclk++) {
|
||||||
len = scnprintf(buf, left_spaces, "%d %d %d %d %d\n",
|
len = scnprintf(buf, left_spaces, "%d\t%d\t% 8d\t%d\t%d\n",
|
||||||
pclk->domain,
|
pclk->domain,
|
||||||
pclk->clk_src_id,
|
pclk->clk_src_id,
|
||||||
pclk->nom_dyn_pwr,
|
pclk->nom_dyn_pwr,
|
||||||
|
Reference in New Issue
Block a user