|
@@ -484,8 +484,9 @@ static int ab8500_fg_coulomb_counter(struct ab8500_fg *di, bool enable)
|
|
|
di->flags.fg_enabled = true;
|
|
|
} else {
|
|
|
/* Clear any pending read requests */
|
|
|
- ret = abx500_set_register_interruptible(di->dev,
|
|
|
- AB8500_GAS_GAUGE, AB8500_GASG_CC_CTRL_REG, 0);
|
|
|
+ ret = abx500_mask_and_set_register_interruptible(di->dev,
|
|
|
+ AB8500_GAS_GAUGE, AB8500_GASG_CC_CTRL_REG,
|
|
|
+ (RESET_ACCU | READ_REQ), 0);
|
|
|
if (ret)
|
|
|
goto cc_err;
|
|
|
|
|
@@ -1403,8 +1404,7 @@ static void ab8500_fg_algorithm_discharging(struct ab8500_fg *di)
|
|
|
sleep_time = di->bat->fg_params->init_timer;
|
|
|
|
|
|
/* Discard the first [x] seconds */
|
|
|
- if (di->init_cnt >
|
|
|
- di->bat->fg_params->init_discard_time) {
|
|
|
+ if (di->init_cnt > di->bat->fg_params->init_discard_time) {
|
|
|
ab8500_fg_calc_cap_discharge_voltage(di, true);
|
|
|
|
|
|
ab8500_fg_check_capacity_limits(di, true);
|