check_charging_duration() contains some copy-pasted code, which makes it less readable. Refactor the function to be a bit tidier.
I've also fixed a couple of typos. Signed-off-by: Alex Dewar <alex.dewa...@gmail.com> --- drivers/power/supply/charger-manager.c | 39 +++++++++----------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c index 07992821e252..67c7b1fb6601 100644 --- a/drivers/power/supply/charger-manager.c +++ b/drivers/power/supply/charger-manager.c @@ -443,42 +443,31 @@ static int try_charger_enable(struct charger_manager *cm, bool enable) * check_charging_duration - Monitor charging/discharging duration * @cm: the Charger Manager representing the battery. * - * If whole charging duration exceed 'charging_max_duration_ms', + * If whole charging duration exceeds 'charging_max_duration_ms', * cm stop charging to prevent overcharge/overheat. If discharging - * duration exceed 'discharging _max_duration_ms', charger cable is + * duration exceeds 'discharging _max_duration_ms', charger cable is * attached, after full-batt, cm start charging to maintain fully * charged state for battery. */ static int check_charging_duration(struct charger_manager *cm) { struct charger_desc *desc = cm->desc; - u64 curr = ktime_to_ms(ktime_get()); u64 duration; - int ret = false; - if (!desc->charging_max_duration_ms && - !desc->discharging_max_duration_ms) - return ret; - - if (cm->charger_enabled) { - duration = curr - cm->charging_start_time; - - if (duration > desc->charging_max_duration_ms) { - dev_info(cm->dev, "Charging duration exceed %ums\n", - desc->charging_max_duration_ms); - ret = true; - } - } else if (cm->battery_status == POWER_SUPPLY_STATUS_NOT_CHARGING) { - duration = curr - cm->charging_end_time; + if ((desc->charging_max_duration_ms == 0 && + desc->discharging_max_duration_ms == 0)) + return false; + if (!cm->charger_enabled && + cm->battery_status != POWER_SUPPLY_STATUS_NOT_CHARGING) + return false; - if (duration > desc->charging_max_duration_ms) { - dev_info(cm->dev, "Discharging duration exceed %ums\n", - desc->discharging_max_duration_ms); - ret = true; - } + duration = ktime_to_ms(ktime_get()) - cm->charging_start_time; + if (duration > desc->charging_max_duration_ms) { + dev_info(cm->dev, "Charging duration exceeds %ums\n", + desc->charging_max_duration_ms); + return true; } - - return ret; + return false; } static int cm_get_battery_temperature_by_psy(struct charger_manager *cm, -- 2.28.0