File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -470,8 +470,15 @@ int charge_request(bool use_curr, bool is_full)
470470 */
471471 voltage = charger_closest_voltage (
472472 curr .batt .voltage + charger_get_info ()-> voltage_step );
473- /* If the battery is full, request the max voltage. */
474- if (is_full )
473+ /*
474+ * If the battery is full, request the max voltage.
475+ *
476+ * Do the same when the sustainer is deliberately holding the
477+ * battery at a charge limit. The intent in
478+ * IDLE is the same as when full: hold, don't charge, and don't
479+ * let the battery back-feed the system.
480+ */
481+ if (is_full || get_chg_ctrl_mode () == CHARGE_CONTROL_IDLE )
475482 voltage = battery_get_info ()-> voltage_max ;
476483 /* And handle dead battery case */
477484 voltage = MAX (voltage , battery_get_info ()-> voltage_normal );
You can’t perform that action at this time.
0 commit comments