Skip to content

Commit 3344260

Browse files
committed
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
2 parents 74ee48a + 9838011 commit 3344260

File tree

3 files changed

+21
-22
lines changed

3 files changed

+21
-22
lines changed

drivers/power/supply/axp20x_battery.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -466,10 +466,9 @@ static int axp717_battery_get_prop(struct power_supply *psy,
466466

467467
/*
468468
* If a fault is detected it must also be cleared; if the
469-
* condition persists it should reappear (This is an
470-
* assumption, it's actually not documented). A restart was
471-
* not sufficient to clear the bit in testing despite the
472-
* register listed as POR.
469+
* condition persists it should reappear. A restart was not
470+
* sufficient to clear the bit in testing despite the register
471+
* listed as POR.
473472
*/
474473
case POWER_SUPPLY_PROP_HEALTH:
475474
ret = regmap_read(axp20x_batt->regmap, AXP717_PMU_FAULT,
@@ -480,26 +479,26 @@ static int axp717_battery_get_prop(struct power_supply *psy,
480479
switch (reg & AXP717_BATT_PMU_FAULT_MASK) {
481480
case AXP717_BATT_UVLO_2_5V:
482481
val->intval = POWER_SUPPLY_HEALTH_DEAD;
483-
regmap_update_bits(axp20x_batt->regmap,
484-
AXP717_PMU_FAULT,
485-
AXP717_BATT_UVLO_2_5V,
486-
AXP717_BATT_UVLO_2_5V);
482+
regmap_write_bits(axp20x_batt->regmap,
483+
AXP717_PMU_FAULT,
484+
AXP717_BATT_UVLO_2_5V,
485+
AXP717_BATT_UVLO_2_5V);
487486
return 0;
488487

489488
case AXP717_BATT_OVER_TEMP:
490489
val->intval = POWER_SUPPLY_HEALTH_HOT;
491-
regmap_update_bits(axp20x_batt->regmap,
492-
AXP717_PMU_FAULT,
493-
AXP717_BATT_OVER_TEMP,
494-
AXP717_BATT_OVER_TEMP);
490+
regmap_write_bits(axp20x_batt->regmap,
491+
AXP717_PMU_FAULT,
492+
AXP717_BATT_OVER_TEMP,
493+
AXP717_BATT_OVER_TEMP);
495494
return 0;
496495

497496
case AXP717_BATT_UNDER_TEMP:
498497
val->intval = POWER_SUPPLY_HEALTH_COLD;
499-
regmap_update_bits(axp20x_batt->regmap,
500-
AXP717_PMU_FAULT,
501-
AXP717_BATT_UNDER_TEMP,
502-
AXP717_BATT_UNDER_TEMP);
498+
regmap_write_bits(axp20x_batt->regmap,
499+
AXP717_PMU_FAULT,
500+
AXP717_BATT_UNDER_TEMP,
501+
AXP717_BATT_UNDER_TEMP);
503502
return 0;
504503

505504
default:

drivers/power/supply/da9150-fg.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ static int da9150_fg_current_avg(struct da9150_fg *fg,
247247
DA9150_QIF_SD_GAIN_SIZE);
248248
da9150_fg_read_sync_end(fg);
249249

250-
div = (u64) (sd_gain * shunt_val * 65536ULL);
250+
div = 65536ULL * sd_gain * shunt_val;
251251
do_div(div, 1000000);
252-
res = (u64) (iavg * 1000000ULL);
252+
res = 1000000ULL * iavg;
253253
do_div(res, div);
254254

255255
val->intval = (int) res;

drivers/power/supply/power_supply_core.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1592,11 +1592,11 @@ __power_supply_register(struct device *parent,
15921592
if (rc)
15931593
goto register_thermal_failed;
15941594

1595-
scoped_guard(rwsem_read, &psy->extensions_sem) {
1596-
rc = power_supply_create_triggers(psy);
1597-
if (rc)
1598-
goto create_triggers_failed;
1595+
rc = power_supply_create_triggers(psy);
1596+
if (rc)
1597+
goto create_triggers_failed;
15991598

1599+
scoped_guard(rwsem_read, &psy->extensions_sem) {
16001600
rc = power_supply_add_hwmon_sysfs(psy);
16011601
if (rc)
16021602
goto add_hwmon_sysfs_failed;

0 commit comments

Comments
 (0)