summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-03-31 21:24:36 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-31 21:24:36 -0700
commitbf8798bbf17e08c7dd888736c4a83ecd1b6fc486 (patch)
tree5312b012d641f24636242bc1e385a442076fb836 /drivers/power
parentc57c1bf5d98621ba4610abc502c12b6a4bfb1fb8 (diff)
parent6399b30218075745b30ebe218e75348cf84e2820 (diff)
Merge "qcom: qnovo: Fix PCURx reporting error"
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/supply/qcom/qpnp-qnovo.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/power/supply/qcom/qpnp-qnovo.c b/drivers/power/supply/qcom/qpnp-qnovo.c
index 759f483031d2..c74dc8989821 100644
--- a/drivers/power/supply/qcom/qpnp-qnovo.c
+++ b/drivers/power/supply/qcom/qpnp-qnovo.c
@@ -843,7 +843,11 @@ static ssize_t current_show(struct class *c, struct class_attribute *attr,
pr_err("Couldn't read %s rc = %d\n", params[i].name, rc);
return -EINVAL;
}
- regval_nA = buf[1] << 8 | buf[0];
+
+ if (buf[1] & BIT(5))
+ buf[1] |= GENMASK(7, 6);
+
+ regval_nA = (s16)(buf[1] << 8 | buf[0]);
regval_nA = div_s64(regval_nA * params[i].reg_to_unit_multiplier,
params[i].reg_to_unit_divider)
- params[i].reg_to_unit_offset;