BACKPORT: HID: input: map battery system charging

HID descriptors with Battery System (0x85) Charging (0x44) usage are
ignored and POWER_SUPPLY_STATUS_DISCHARGING is always reported to user
space, even when the device is charging.

Map this usage and when it is reported set the right charging status.

In addition, add KUnit tests to make sure that the charging status is
correctly set and reported. They can be run with the usual command:

    $ ./tools/testing/kunit/kunit.py run --kunitconfig=drivers/hid

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 305125317
Change-Id: Iad6a8177ad6954ad8ac2b714cc35acffcf2f226f
(cherry picked from commit a608dc1c06397dc50ab773498433432fb5938f92)
Signed-off-by: luguohong <luguohong@xiaomi.corp-partner.google.com>
This commit is contained in:
luguohong 2023-12-01 22:42:34 +08:00 committed by Treehugger Robot
parent cfdfc17a46
commit 6465e29536

View File

@ -636,6 +636,7 @@ static bool hidinput_set_battery_charge_status(struct hid_device *dev,
dev->battery_charge_status = value ?
POWER_SUPPLY_STATUS_CHARGING :
POWER_SUPPLY_STATUS_DISCHARGING;
power_supply_changed(dev->battery);
return true;
}