diff --git a/driver/src/mmrm_clk_rsrc_mgr_sw.c b/driver/src/mmrm_clk_rsrc_mgr_sw.c index 6a8a59a136..dedb409054 100644 --- a/driver/src/mmrm_clk_rsrc_mgr_sw.c +++ b/driver/src/mmrm_clk_rsrc_mgr_sw.c @@ -1113,7 +1113,7 @@ int mmrm_init_sw_clk_mgr(void *driver_data) } /* 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_level = 0; sinfo->throttle_clients_data_length = cres->throttle_clients_data_length; diff --git a/driver/src/mmrm_internal.c b/driver/src/mmrm_internal.c index 249fcfbe9c..080779aaa8 100644 --- a/driver/src/mmrm_internal.c +++ b/driver/src/mmrm_internal.c @@ -10,10 +10,6 @@ #include "mmrm_debug.h" static struct mmrm_common_data common_pt_data[] = { - { - .key = "qcom,mmrm_clk_threshold", - .value = 9000, - }, { .key = "qcom,mmrm_clk_mgr_scheme", .value = CLK_MGR_SCHEME_SW, diff --git a/driver/src/mmrm_res_parse.c b/driver/src/mmrm_res_parse.c index 8d6736a91e..d59a8d42d1 100644 --- a/driver/src/mmrm_res_parse.c +++ b/driver/src/mmrm_res_parse.c @@ -35,11 +35,6 @@ static int mmrm_read_clk_pltfrm_rsrc_frm_drv_data( pdata = ddata->platform_data; 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, "qcom,mmrm_clk_mgr_scheme"); 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 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); if ((size_clk_src < sizeof(*clk_srcs->clk_src_tbl)) || (size_clk_src % sizeof(*clk_srcs->clk_src_tbl))) { diff --git a/driver/src/mmrm_resources.h b/driver/src/mmrm_resources.h index 8fe3ad61f1..eb4cbb438e 100644 --- a/driver/src/mmrm_resources.h +++ b/driver/src/mmrm_resources.h @@ -36,12 +36,12 @@ struct nom_clk_src_set { struct mmrm_clk_platform_resources { struct platform_device *pdev; - u32 threshold; u32 scheme; u32 clsid_threshold_clients[MMRM_MAX_THROTTLE_CLIENTS]; u16 throttle_clients_data_length; struct voltage_corner_set corner_set; struct nom_clk_src_set nom_clk_set; + u32 peak_threshold; }; #endif diff --git a/driver/src/msm_mmrm.c b/driver/src/msm_mmrm.c index d3a6fafc3d..179d99b430 100644 --- a/driver/src/msm_mmrm.c +++ b/driver/src/msm_mmrm.c @@ -401,8 +401,13 @@ static ssize_t dump_clk_res_info_show(struct device *dev, struct nom_clk_src_info *pclk; 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++) { - 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->clk_src_id, pclk->nom_dyn_pwr,