1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

Power Supply Fixes for 6.14 cycle

* core: Fix extension related lockdep warning for LED triggers
 * axp20x-battery: Fix fault handling for AXP717
 * da9150-fg: fix potential overflow
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE72YNB0Y/i3JqeVQT2O7X88g7+poFAme32n4ACgkQ2O7X88g7
 +pqrjA/9EcurRZzyG+8AivZ3zJipQytajgCnXT/1LoIsJ2GonmDZr/+7IG9zwwJa
 gbT4evIa0j3s2FEh2szUD5no0mO7RH1TciIX9ObnVXt/+u5kr89tqXkQAAVitUpS
 N6Wu7sfLt8vI4LfCujqt2DZVVkE8byw9sR/yOXU/adsQ5w7PzsvUvnqsg+svyXYN
 H9Wn360uwa0Je8gXYzEGSjU1Yqtir5PhGqyqgaz69+YbymImj4+TfhmfPxrkpk/y
 QveXExlXllMrg4saSeLZM3vDPrui/CeTKeVUxFDz6D9PqBZkYNI7+2RyzS2b8jeO
 k14KX+JLmxYSl+F6/FcKbWdZorChJC8VcwNKnS+e2BQkb1nO1PEtegFG6h5Ynswh
 nuVFG5XInvK+JEvPKjGNWM9YZTH109N6hXTN4Q6uk+Tqo5UYX5+QqC/5WRF7P7V3
 XQX7LrP/g+GEo31/U12c1MmgALBGcmXCXp3VYVz1RdB78uoLDNfyEuXM/mbv4xHB
 03gCciLcfZFde6jHkccOIbX5MRLEzJUnSWZCh24QdQcNtbv+ULy8A1bOfK2uN9Pj
 kRV3vHj6cu6LbsqCFzzlKI+olMnCdg0mHu4qZ6kgs2I5rVWVWjJYhx38qmqWOadm
 x6Ngv8MK/nex4zWqY0meRWgL63179rIIxX9L3VxK8U0S5ol+VqU=
 =ASAT
 -----END PGP SIGNATURE-----

Merge tag 'for-v6.14-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply

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
This commit is contained in:
Linus Torvalds 2025-02-20 18:07:32 -08:00
commit 3344260945
3 changed files with 21 additions and 22 deletions

View file

@ -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,26 +479,26 @@ 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,
AXP717_PMU_FAULT,
AXP717_BATT_UVLO_2_5V,
AXP717_BATT_UVLO_2_5V);
regmap_write_bits(axp20x_batt->regmap,
AXP717_PMU_FAULT,
AXP717_BATT_UVLO_2_5V,
AXP717_BATT_UVLO_2_5V);
return 0;
case AXP717_BATT_OVER_TEMP:
val->intval = POWER_SUPPLY_HEALTH_HOT;
regmap_update_bits(axp20x_batt->regmap,
AXP717_PMU_FAULT,
AXP717_BATT_OVER_TEMP,
AXP717_BATT_OVER_TEMP);
regmap_write_bits(axp20x_batt->regmap,
AXP717_PMU_FAULT,
AXP717_BATT_OVER_TEMP,
AXP717_BATT_OVER_TEMP);
return 0;
case AXP717_BATT_UNDER_TEMP:
val->intval = POWER_SUPPLY_HEALTH_COLD;
regmap_update_bits(axp20x_batt->regmap,
AXP717_PMU_FAULT,
AXP717_BATT_UNDER_TEMP,
AXP717_BATT_UNDER_TEMP);
regmap_write_bits(axp20x_batt->regmap,
AXP717_PMU_FAULT,
AXP717_BATT_UNDER_TEMP,
AXP717_BATT_UNDER_TEMP);
return 0;
default:

View file

@ -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;

View file

@ -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;
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;