Merge "interconnect: qcom: Add support for utility factor"

This commit is contained in:
qctecmdr 2020-08-28 07:15:59 -07:00 • committed by Gerrit - the friendly Code Review server
commit 6712a5f2f7
3 changed files with 11 additions and 0 deletions

View file

@ -1240,6 +1240,10 @@ static int qnoc_probe(struct platform_device *pdev)
qp->init = true;
qp->keepalive = of_property_read_bool(dev->of_node, "qcom,keepalive");
if (of_property_read_u32(dev->of_node, "qcom,util-factor",
&qp->util_factor))
qp->util_factor = DEFAULT_UTIL_FACTOR;
qp->regmap = qcom_icc_map(pdev, desc);
if (IS_ERR(qp->regmap))
return PTR_ERR(qp->regmap);

View file

@ -118,6 +118,10 @@ int qcom_icc_rpm_set(struct icc_node *src, struct icc_node *dst)
qn = n->data;
for (i = 0; i < RPM_NUM_CXT; i++) {
sum_avg = icc_units_to_bps(qn->sum_avg[i]);
sum_avg *= qp->util_factor;
do_div(sum_avg, DEFAULT_UTIL_FACTOR);
do_div(sum_avg, qn->channels);
max_peak = icc_units_to_bps(qn->max_peak[i]);

View file

@ -20,6 +20,8 @@
#define RPM_CLK_MAX_LEVEL INT_MAX
#define RPM_CLK_MIN_LEVEL 19200000
#define DEFAULT_UTIL_FACTOR 100
#define to_qcom_provider(_provider) \
container_of(_provider, struct qcom_icc_provider, provider)
@ -57,6 +59,7 @@ struct qcom_icc_provider {
struct list_head probe_list;
struct clk_bulk_data *bus_clks;
int num_clks;
u32 util_factor;
u64 bus_clk_cur_rate[RPM_NUM_CXT];
bool keepalive;
bool init;