Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull power supply fixes from Sebastian Reichel:

- rk817: Two error handling fixes

- ip5xxx: fix inter overflow in current calculation

- ab8500: fix thermal zone probing

* tag 'for-v6.1-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
power: supply: ab8500: Defer thermal zone probe
power: supply: ip5xxx: Fix integer overflow in current_now calculation
power: supply: rk817: Change rk817_chg_cur_to_reg to int
power: supply: rk817: check correct variable

+15 -10
+8 -1
drivers/power/supply/ab8500_btemp.c
··· 725 725 /* Get thermal zone and ADC */ 726 726 di->tz = thermal_zone_get_zone_by_name("battery-thermal"); 727 727 if (IS_ERR(di->tz)) { 728 - return dev_err_probe(dev, PTR_ERR(di->tz), 728 + ret = PTR_ERR(di->tz); 729 + /* 730 + * This usually just means we are probing before the thermal 731 + * zone, so just defer. 732 + */ 733 + if (ret == -ENODEV) 734 + ret = -EPROBE_DEFER; 735 + return dev_err_probe(dev, ret, 729 736 "failed to get battery thermal zone\n"); 730 737 } 731 738 di->bat_ctrl = devm_iio_channel_get(dev, "bat_ctrl");
+1 -1
drivers/power/supply/ip5xxx_power.c
··· 352 352 ret = ip5xxx_battery_read_adc(ip5xxx, IP5XXX_BATIADC_DAT0, 353 353 IP5XXX_BATIADC_DAT1, &raw); 354 354 355 - val->intval = DIV_ROUND_CLOSEST(raw * 745985, 1000); 355 + val->intval = DIV_ROUND_CLOSEST(raw * 149197, 200); 356 356 return 0; 357 357 358 358 case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
+6 -8
drivers/power/supply/rk817_charger.c
··· 121 121 #define ADC_TO_CHARGE_UAH(adc_value, res_div) \ 122 122 (adc_value / 3600 * 172 / res_div) 123 123 124 - static u8 rk817_chg_cur_to_reg(u32 chg_cur_ma) 124 + static int rk817_chg_cur_to_reg(u32 chg_cur_ma) 125 125 { 126 126 if (chg_cur_ma >= 3500) 127 127 return CHG_3_5A; ··· 864 864 { 865 865 struct rk808 *rk808 = charger->rk808; 866 866 u32 tmp, max_chg_vol_mv, max_chg_cur_ma; 867 - u8 max_chg_vol_reg, chg_term_i_reg, max_chg_cur_reg; 868 - int ret, chg_term_ma; 867 + u8 max_chg_vol_reg, chg_term_i_reg; 868 + int ret, chg_term_ma, max_chg_cur_reg; 869 869 u8 bulk_reg[2]; 870 870 871 871 /* Get initial plug state */ ··· 1116 1116 1117 1117 charger->bat_ps = devm_power_supply_register(&pdev->dev, 1118 1118 &rk817_bat_desc, &pscfg); 1119 - 1120 - charger->chg_ps = devm_power_supply_register(&pdev->dev, 1121 - &rk817_chg_desc, &pscfg); 1122 - 1123 - if (IS_ERR(charger->chg_ps)) 1119 + if (IS_ERR(charger->bat_ps)) 1124 1120 return dev_err_probe(dev, -EINVAL, 1125 1121 "Battery failed to probe\n"); 1126 1122 1123 + charger->chg_ps = devm_power_supply_register(&pdev->dev, 1124 + &rk817_chg_desc, &pscfg); 1127 1125 if (IS_ERR(charger->chg_ps)) 1128 1126 return dev_err_probe(dev, -EINVAL, 1129 1127 "Charger failed to probe\n");