diff options
author | Mario Limonciello <mario.limonciello@amd.com> | 2023-05-16 20:25:40 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2023-05-16 23:02:56 +0200 |
commit | 95339f40a8b652b5b1773def31e63fc53c26378a (patch) | |
tree | 1d96f1a0640079b67c823665922a17e280a8718b /drivers/dca | |
parent | power: supply: mt6360: add a check of devm_work_autocancel in mt6360_charger_... (diff) | |
download | linux-95339f40a8b652b5b1773def31e63fc53c26378a.tar.xz linux-95339f40a8b652b5b1773def31e63fc53c26378a.zip |
power: supply: Fix logic checking if system is running from battery
The logic used for power_supply_is_system_supplied() counts all power
supplies and assumes that the system is running from AC if there is
either a non-battery power-supply reporting to be online or if no
power-supplies exist at all.
The second rule is for desktop systems, that don't have any
battery/charger devices. These systems will incorrectly report to be
powered from battery once a device scope power-supply is registered
(e.g. a HID device), since these power-supplies increase the counter.
Apart from HID devices, recent dGPUs provide UCSI power supplies on a
desktop systems. The dGPU by default doesn't have anything plugged in so
it's 'offline'. This makes power_supply_is_system_supplied() return 0
with a count of 1 meaning all drivers that use this get a wrong judgement.
To fix this case adjust the logic to also examine the scope of the power
supply. If the power supply is deemed a device power supply, then don't
count it.
Cc: Evan Quan <Evan.Quan@amd.com>
Suggested-by: Lijo Lazar <Lijo.Lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/dca')
0 files changed, 0 insertions, 0 deletions