power: fg-alg: Check TTF_VALID param for TTF/TTE work functions
TTF and TTE work functions need to be executed only if TTF_VALID
is enabled.
CRs-Fixed: 2374455
Change-Id: I91a66df32f0a47a55008adbe9a145d0737954ae5
Signed-off-by: Vamshi Krishna B V <vbv@codeaurora.org>
diff --git a/drivers/power/supply/qcom/fg-alg.c b/drivers/power/supply/qcom/fg-alg.c
index f3f2c66..09c3fc4 100644
--- a/drivers/power/supply/qcom/fg-alg.c
+++ b/drivers/power/supply/qcom/fg-alg.c
@@ -1055,9 +1055,19 @@
struct ttf *ttf = container_of(work,
struct ttf, ttf_work.work);
int rc, ibatt_now, vbatt_now, ttf_now, charge_status;
+ int valid = 0;
ktime_t ktime_now;
mutex_lock(&ttf->lock);
+ rc = ttf->get_ttf_param(ttf->data, TTF_VALID, &valid);
+ if (rc < 0) {
+ pr_err("failed to get ttf_valid rc=%d\n", rc);
+ goto end_work;
+ }
+
+ if (!valid)
+ goto end_work;
+
rc = ttf->get_ttf_param(ttf->data, TTF_CHG_STATUS, &charge_status);
if (rc < 0) {
pr_err("failed to get charge_status rc=%d\n", rc);
@@ -1198,7 +1208,16 @@
*/
void ttf_update(struct ttf *ttf, bool input_present)
{
- int delay_ms;
+ int delay_ms, rc, valid = 0;
+
+ rc = ttf->get_ttf_param(ttf->data, TTF_VALID, &valid);
+ if (rc < 0) {
+ pr_err("failed to get ttf_valid rc=%d\n", rc);
+ return;
+ }
+
+ if (!valid)
+ return;
if (ttf->input_present == input_present)
return;