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:
Mark Bao
2022-04-07 17:23:53 -07:00
parent e9bba40066
commit e43dfcd0a0
5 changed files with 18 additions and 12 deletions

View File

@@ -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;

View File

@@ -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,

View File

@@ -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))) {

View File

@@ -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

View File

@@ -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,