summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-08-08 16:24:56 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-08 16:24:56 -0700
commit603df3f744d9810e4065d549914b5182e129811b (patch)
treea8eefb421e8e30cb126a1bc7214b7d53b98a566d
parent38c099f001843a325c264ce05656c69a04d9f27b (diff)
parentc4205fe6be9dc3b998451e4eb44aecf91ef4665f (diff)
Merge "power: qpnp-fg-gen3: add support for skew in capacity learning algorithm"
-rw-r--r--drivers/power/supply/qcom/qpnp-fg-gen3.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/qpnp-fg-gen3.c b/drivers/power/supply/qcom/qpnp-fg-gen3.c
index cb2c3888ddd7..2d407a9e0ed5 100644
--- a/drivers/power/supply/qcom/qpnp-fg-gen3.c
+++ b/drivers/power/supply/qcom/qpnp-fg-gen3.c
@@ -1315,11 +1315,20 @@ static bool is_temp_valid_cap_learning(struct fg_chip *chip)
return true;
}
+#define QNOVO_CL_SKEW_DECIPCT -30
static void fg_cap_learning_post_process(struct fg_chip *chip)
{
int64_t max_inc_val, min_dec_val, old_cap;
int rc;
+ if (is_qnovo_en(chip)) {
+ fg_dbg(chip, FG_CAP_LEARN, "applying skew %d on current learnt capacity %lld\n",
+ QNOVO_CL_SKEW_DECIPCT, chip->cl.final_cc_uah);
+ chip->cl.final_cc_uah = chip->cl.final_cc_uah *
+ (1000 + QNOVO_CL_SKEW_DECIPCT);
+ do_div(chip->cl.final_cc_uah, 1000);
+ }
+
max_inc_val = chip->cl.learned_cc_uah
* (1000 + chip->dt.cl_max_cap_inc);
do_div(max_inc_val, 1000);