Commit 33442609 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull power supply fixes from Sebastian Reichel:

 - core: Fix extension related lockdep warning for LED triggers

 - axp20x-battery: Fix fault handling for AXP717

 - da9150-fg: fix potential overflow

* tag 'for-v6.14-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
  power: supply: axp20x_battery: Fix fault handling for AXP717
  power: supply: core: Fix extension related lockdep warning
  power: supply: da9150-fg: fix potential overflow
parents 74ee48a2 98380110
Loading
Loading
Loading
Loading
+15 −16
Original line number Diff line number Diff line
@@ -466,10 +466,9 @@ static int axp717_battery_get_prop(struct power_supply *psy,

	/*
	 * If a fault is detected it must also be cleared; if the
	 * condition persists it should reappear (This is an
	 * assumption, it's actually not documented). A restart was
	 * not sufficient to clear the bit in testing despite the
	 * register listed as POR.
	 * condition persists it should reappear. A restart was not
	 * sufficient to clear the bit in testing despite the register
	 * listed as POR.
	 */
	case POWER_SUPPLY_PROP_HEALTH:
		ret = regmap_read(axp20x_batt->regmap, AXP717_PMU_FAULT,
@@ -480,7 +479,7 @@ static int axp717_battery_get_prop(struct power_supply *psy,
		switch (reg & AXP717_BATT_PMU_FAULT_MASK) {
		case AXP717_BATT_UVLO_2_5V:
			val->intval = POWER_SUPPLY_HEALTH_DEAD;
			regmap_update_bits(axp20x_batt->regmap,
			regmap_write_bits(axp20x_batt->regmap,
					  AXP717_PMU_FAULT,
					  AXP717_BATT_UVLO_2_5V,
					  AXP717_BATT_UVLO_2_5V);
@@ -488,7 +487,7 @@ static int axp717_battery_get_prop(struct power_supply *psy,

		case AXP717_BATT_OVER_TEMP:
			val->intval = POWER_SUPPLY_HEALTH_HOT;
			regmap_update_bits(axp20x_batt->regmap,
			regmap_write_bits(axp20x_batt->regmap,
					  AXP717_PMU_FAULT,
					  AXP717_BATT_OVER_TEMP,
					  AXP717_BATT_OVER_TEMP);
@@ -496,7 +495,7 @@ static int axp717_battery_get_prop(struct power_supply *psy,

		case AXP717_BATT_UNDER_TEMP:
			val->intval = POWER_SUPPLY_HEALTH_COLD;
			regmap_update_bits(axp20x_batt->regmap,
			regmap_write_bits(axp20x_batt->regmap,
					  AXP717_PMU_FAULT,
					  AXP717_BATT_UNDER_TEMP,
					  AXP717_BATT_UNDER_TEMP);
+2 −2
Original line number Diff line number Diff line
@@ -247,9 +247,9 @@ static int da9150_fg_current_avg(struct da9150_fg *fg,
				      DA9150_QIF_SD_GAIN_SIZE);
	da9150_fg_read_sync_end(fg);

	div = (u64) (sd_gain * shunt_val * 65536ULL);
	div = 65536ULL * sd_gain * shunt_val;
	do_div(div, 1000000);
	res = (u64) (iavg * 1000000ULL);
	res = 1000000ULL * iavg;
	do_div(res, div);

	val->intval = (int) res;
+4 −4
Original line number Diff line number Diff line
@@ -1592,11 +1592,11 @@ __power_supply_register(struct device *parent,
	if (rc)
		goto register_thermal_failed;

	scoped_guard(rwsem_read, &psy->extensions_sem) {
	rc = power_supply_create_triggers(psy);
	if (rc)
		goto create_triggers_failed;

	scoped_guard(rwsem_read, &psy->extensions_sem) {
		rc = power_supply_add_hwmon_sysfs(psy);
		if (rc)
			goto add_hwmon_sysfs_failed;