Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 404b3045 authored by Abhijeet Dharmapurikar's avatar Abhijeet Dharmapurikar Committed by Nicholas Troast
Browse files

power: qpnp-smbcharger: enable parallel charger immediately



When an event happens which could change parallel charger
current distribution, the current driver won't act on it immediately.
It waits for a timed delay before reconfiguring.

If parallel charger is already in progress, don't delay for
reconfiguration. Act on it immediately.

Change-Id: I2685b1d19e0c5985a9bb1e0ce411e03e9f26154d
Signed-off-by: default avatarAbhijeet Dharmapurikar <adharmap@codeaurora.org>
parent c57b8e5f
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -2218,19 +2218,27 @@ static void smbchg_parallel_usb_en_work(struct work_struct *work)
static void smbchg_parallel_usb_check_ok(struct smbchg_chip *chip)
{
	struct power_supply *parallel_psy = get_parallel_psy(chip);
	bool in_progress;

	if (!parallel_psy || !chip->parallel_charger_detected)
		return;
	mutex_lock(&chip->parallel.lock);
	in_progress = (chip->parallel.current_max_ma != 0);
	if (smbchg_is_parallel_usb_ok(chip)) {
		if (!in_progress) {
			smbchg_stay_awake(chip, PM_PARALLEL_CHECK);
			schedule_delayed_work(
				&chip->parallel_en_work,
				msecs_to_jiffies(PARALLEL_CHARGER_EN_DELAY_MS));
	} else if (chip->parallel.current_max_ma != 0) {
		} else {
			smbchg_parallel_usb_enable(chip);
		}
	} else {
		if (in_progress) {
			pr_smb(PR_STATUS, "parallel charging unavailable\n");
			smbchg_parallel_usb_disable(chip);
		}
	}
	mutex_unlock(&chip->parallel.lock);
}