power: qpnp-bms: compensate BMS OCVs

The BMS hardware takes an open circuit voltage at power-on. This
uses the VADC to do the conversion, so it must be compensated for.

Use the adc error compensation APIs to adjust the OCV reading.

Change-Id: I4722b4137ba31374d942cc2ea1d1936826c6228a
Signed-off-by: Xiaozhe Shi <xiaozhes@codeaurora.org>
diff --git a/drivers/power/qpnp-bms.c b/drivers/power/qpnp-bms.c
index 77bbbc7..a19fc59 100644
--- a/drivers/power/qpnp-bms.c
+++ b/drivers/power/qpnp-bms.c
@@ -374,12 +374,17 @@
 static inline int convert_vbatt_raw_to_uv(struct qpnp_bms_chip *chip,
 					uint16_t reading)
 {
-	int uv;
+	int64_t uv;
+	int rc;
 
 	uv = vadc_reading_to_uv(reading);
-	pr_debug("%u raw converted into %d uv\n", reading, uv);
+	pr_debug("%u raw converted into %lld uv\n", reading, uv);
 	uv = adjust_vbatt_reading(chip, uv);
-	pr_debug("adjusted into %d uv\n", uv);
+	pr_debug("adjusted into %lld uv\n", uv);
+	rc = qpnp_vbat_sns_comp_result(&uv);
+	if (rc)
+		pr_debug("could not compensate vbatt\n");
+	pr_debug("compensated into %lld uv\n", uv);
 	return uv;
 }