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

Commit 1dd8227d authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "power: qpnp-fg-gen4: Fix adjusting recharge SOC after charge termination"

parents 6bf72f9c 19d1d514
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -264,6 +264,7 @@ struct fg_gen4_chip {
	bool			rslow_low;
	bool			rapid_soc_dec_en;
	bool			vbatt_low;
	bool			chg_term_good;
};

struct bias_config {
@@ -2348,8 +2349,16 @@ static int fg_gen4_adjust_recharge_soc(struct fg_gen4_chip *chip)
				new_recharge_soc = msoc - (FULL_CAPACITY -
								recharge_soc);
				fg->recharge_soc_adjusted = true;
				if (fg->health == POWER_SUPPLY_HEALTH_GOOD)
					chip->chg_term_good = true;
			} else {
				/* adjusted already, do nothing */
				/*
				 * If charge termination happened properly then
				 * do nothing.
				 */
				if (chip->chg_term_good)
					return 0;

				if (fg->health != POWER_SUPPLY_HEALTH_GOOD)
					return 0;

@@ -2360,7 +2369,7 @@ static int fg_gen4_adjust_recharge_soc(struct fg_gen4_chip *chip)

				new_recharge_soc = recharge_soc;
				fg->recharge_soc_adjusted = false;
				return 0;
				chip->chg_term_good = false;
			}
		} else {
			if (!fg->recharge_soc_adjusted)
@@ -2379,11 +2388,13 @@ static int fg_gen4_adjust_recharge_soc(struct fg_gen4_chip *chip)
			/* Restore the default value */
			new_recharge_soc = recharge_soc;
			fg->recharge_soc_adjusted = false;
			chip->chg_term_good = false;
		}
	} else {
		/* Restore the default value */
		new_recharge_soc = recharge_soc;
		fg->recharge_soc_adjusted = false;
		chip->chg_term_good = false;
	}

	if (recharge_soc_status == fg->recharge_soc_adjusted)