[RAMEN9610-12309][9610] drivers: fuelgauge: update mode change condition
authorKeunho Hwang <keunho.hwang@samsung.com>
Mon, 28 Jan 2019 04:24:38 +0000 (13:24 +0900)
committerhskang <hs1218.kang@samsung.com>
Wed, 20 Feb 2019 01:00:45 +0000 (10:00 +0900)
Change-Id: Icc0d89673678ca3bd679c0a7dd042907538421fa
Signed-off-by: Keunho Hwang <keunho.hwang@samsung.com>
drivers/power/supply/s2mu106_fuelgauge.c

index 08faa03b079ea5a1fa9617ca578255107f978136..c088bff4d4bfd06d3f6a4cc7810a2adc06fe98e3 100644 (file)
@@ -928,7 +928,7 @@ static int s2mu106_get_rawsoc(struct s2mu106_fuelgauge_data *fuelgauge)
                float_voltage, avg_current, fg_mode_reg);
 
        if ((fuelgauge->is_charging == true) &&
-               ((value.intval >= 98) || ((avg_vbat > float_voltage) && (avg_current < 500)))) {
+               ((fuelgauge->ui_soc >= 98) || ((avg_vbat > float_voltage) && (avg_current < 500)))) {
                if (fuelgauge->mode == CURRENT_MODE) { /* switch to VOLTAGE_MODE */
                        fuelgauge->mode = HIGH_SOC_VOLTAGE_MODE;
 
@@ -939,7 +939,7 @@ static int s2mu106_get_rawsoc(struct s2mu106_fuelgauge_data *fuelgauge)
 
                        dev_info(&fuelgauge->i2c->dev, "%s: FG is in high soc voltage mode\n", __func__);
                }
-       } else if (avg_current < -50) {
+       } else if ((avg_current < -50) || (avg_current >= 550)) {
                if (fuelgauge->mode == HIGH_SOC_VOLTAGE_MODE) {
                        fuelgauge->mode = CURRENT_MODE;