Power Supply Fixes for 5.16 cycle
Three fixes for the 5.16 cycle: 1. Avoid going beyond last capacity in the power-supply core 2. Replace 1E6L with NSEC_PER_MSEC to avoid floating point calculation in LLVM resulting in a build failure 3. Fix ADC measurements in bq25890 charger driver -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE72YNB0Y/i3JqeVQT2O7X88g7+poFAmHZc2gACgkQ2O7X88g7 +pqSXA//fQqyExuETWfdOncYP/BA6bVh4v2q25yypM8xicVCI6D9cX1BCevGDMR4 nOIPWN/GcbbvuiNKIh1srKThelyP8mI47Q6HzSpzHdex887vYVT0ZjbTcSQFExF/ j1UFg/VxPOy1n2/ybwHJRHxr71k1z9MsF+sbOXk7hDVt23OpeAf8n+hH2aDX6wt5 9lrC/iZCa0whhhdPUAVyFiiOjtbtkuuuSDpypLjH+gVQRO62rbEaO5th2JYZPQ1c x9gZyDwM+dwawC6AJ/uaFxtNzNBal7jzSDVShBcugwvPdvCNl1z8183RICVAiQct gqcp/91Hp1C3Sf4+XLx6YAwS6PQEs7BK0YbidlVU4bjk+uHWlSqMxNnDX3ghUBGh X1x9QSd3e81VFbrBh9iAHy0YtC9L0M6nnVJK5a+w/XQdYmN7/PHn51HOiUoJCLQG lQrm12gnSbl1K0g0Yz1Iy8TRFNfHMyek8WhuMmnPo65WpQz6xizgyqgsd+bzHeLj S0o+6rwJ9mxV+RrbREx3mYrc0lCnxNgcINQ2V1Ee7hZii4mKtJrEJhYWV234Wgbj LxyHrOlUct4WGpI1oh14OVo3JEJFj9BeDD7Ydi1Xrd853iTqb9Z3xjo6fvZ9uDDa YgDZtqWA/cWi10U/d/5wVkdn1CEFpORBCC1XeStjfMhj0rcbYC0= =C1/U -----END PGP SIGNATURE----- Merge tag 'for-v5.16-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply fixes from Sebastian Reichel: "Three fixes for the 5.16 cycle: - Avoid going beyond last capacity in the power-supply core - Replace 1E6L with NSEC_PER_MSEC to avoid floating point calculation in LLVM resulting in a build failure - Fix ADC measurements in bq25890 charger driver" * tag 'for-v5.16-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: power: reset: ltc2952: Fix use of floating point literals power: bq25890: Enable continuous conversion for ADC at charging power: supply: core: Break capacity loop
This commit is contained in:
commit
d445d649c7
@ -159,8 +159,8 @@ static void ltc2952_poweroff_kill(void)
|
|||||||
|
|
||||||
static void ltc2952_poweroff_default(struct ltc2952_poweroff *data)
|
static void ltc2952_poweroff_default(struct ltc2952_poweroff *data)
|
||||||
{
|
{
|
||||||
data->wde_interval = 300L * 1E6L;
|
data->wde_interval = 300L * NSEC_PER_MSEC;
|
||||||
data->trigger_delay = ktime_set(2, 500L*1E6L);
|
data->trigger_delay = ktime_set(2, 500L * NSEC_PER_MSEC);
|
||||||
|
|
||||||
hrtimer_init(&data->timer_trigger, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
hrtimer_init(&data->timer_trigger, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||||
data->timer_trigger.function = ltc2952_poweroff_timer_trigger;
|
data->timer_trigger.function = ltc2952_poweroff_timer_trigger;
|
||||||
|
@ -581,12 +581,12 @@ static irqreturn_t __bq25890_handle_irq(struct bq25890_device *bq)
|
|||||||
|
|
||||||
if (!new_state.online && bq->state.online) { /* power removed */
|
if (!new_state.online && bq->state.online) { /* power removed */
|
||||||
/* disable ADC */
|
/* disable ADC */
|
||||||
ret = bq25890_field_write(bq, F_CONV_START, 0);
|
ret = bq25890_field_write(bq, F_CONV_RATE, 0);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto error;
|
goto error;
|
||||||
} else if (new_state.online && !bq->state.online) { /* power inserted */
|
} else if (new_state.online && !bq->state.online) { /* power inserted */
|
||||||
/* enable ADC, to have control of charge current/voltage */
|
/* enable ADC, to have control of charge current/voltage */
|
||||||
ret = bq25890_field_write(bq, F_CONV_START, 1);
|
ret = bq25890_field_write(bq, F_CONV_RATE, 1);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
@ -853,6 +853,10 @@ power_supply_find_ocv2cap_table(struct power_supply_battery_info *info,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (i = 0; i < POWER_SUPPLY_OCV_TEMP_MAX; i++) {
|
for (i = 0; i < POWER_SUPPLY_OCV_TEMP_MAX; i++) {
|
||||||
|
/* Out of capacity tables */
|
||||||
|
if (!info->ocv_table[i])
|
||||||
|
break;
|
||||||
|
|
||||||
temp_diff = abs(info->ocv_temp[i] - temp);
|
temp_diff = abs(info->ocv_temp[i] - temp);
|
||||||
|
|
||||||
if (temp_diff < best_temp_diff) {
|
if (temp_diff < best_temp_diff) {
|
||||||
|
Loading…
Reference in New Issue
Block a user