[RAMEN9610-20069][9610] drivers: fuelgauge: change recalculation condition for SOCni
authorKeunho Hwang <keunho.hwang@samsung.com>
Mon, 1 Jul 2019 07:25:37 +0000 (16:25 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:36 +0000 (20:23 +0300)
Change-Id: Ia83139177c09bb9471728d1597d71d1d802f7579
Signed-off-by: Keunho Hwang <keunho.hwang@samsung.com>
drivers/power/supply/s2mu106_fuelgauge.c

index f6fba44c1a924718ae783bbf397bb3811954c947..5d5920ea94071ce88508c11f6b04444989b25355 100644 (file)
@@ -489,8 +489,16 @@ static void s2mu106_temperature_compensation(struct s2mu106_fuelgauge_data *fuel
                           If mapping occurs continuously, SOC is not changed.
                           So SOC_R need to be updated before mapping.
                         */
-                       fuelgauge->soc_r = s2mu106_get_soc_map(fuelgauge,
-                                       fuelgauge->pre_bat_charging, fuelgauge->pre_comp_socr);
+                       pr_info("%s: original SOC_R = %d, pre_bat_charging = %d, bat_charging = %d\n",
+                                       __func__, fuelgauge->soc_r, fuelgauge->pre_bat_charging,
+                                       fuelgauge->bat_charging);
+
+                       if (!(fuelgauge->pre_bat_charging && !fuelgauge->bat_charging)) {
+                               fuelgauge->soc_r = s2mu106_get_soc_map(fuelgauge,
+                                               fuelgauge->pre_bat_charging, fuelgauge->pre_comp_socr);
+
+                               pr_info("%s: use %d for SOCni\n", __func__, fuelgauge->soc_r);
+                       }
 
                        fuelgauge->socni = fuelgauge->soc_r;
                        fuelgauge->soc0i = fuelgauge->rsoc;