Filipe Laíns 4ab2bb3c31 HID: logitech-hidpp: BatteryVoltage: only read chargeStatus if extPower is active
In the HID++ 2.0 function getBatteryInfo() from the BatteryVoltage
(0x1001) feature, chargeStatus is only valid if extPower is active.

Previously we were ignoring extPower, which resulted in wrong values.

Example:
    With an unplugged mouse

    $ cat /sys/class/power_supply/hidpp_battery_0/status
    Charging

This patch fixes that, it also renames charge_sts to flags as
charge_sts can be confused with chargeStatus from the spec.

Spec:
+--------+-------------------------------------------------------------------------+
|  byte  |                                    2                                    |
+--------+--------------+------------+------------+----------+----------+----------+
|   bit  |     0..2     |      3     |      4     |     5    |     6    |     7    |
+--------+--------------+------------+------------+----------+----------+----------+
| buffer | chargeStatus | fastCharge | slowCharge | critical | (unused) | extPower |
+--------+--------------+------------+------------+----------+----------+----------+
Table 1 - battery voltage (0x1001), getBatteryInfo() (ASE 0), 3rd byte

+-------+--------------------------------------+
| value |                meaning               |
+-------+--------------------------------------+
|   0   | Charging                             |
+-------+--------------------------------------+
|   1   | End of charge (100% charged)         |
+-------+--------------------------------------+
|   2   | Charge stopped (any "normal" reason) |
+-------+--------------------------------------+
|   7   | Hardware error                       |
+-------+--------------------------------------+
Table 2 - chargeStatus value

Signed-off-by: Filipe Laíns <lains@archlinux.org>
Tested-by: Pedro Vanzella <pedro@pedrovanzella.com>
Reviewed-by: Pedro Vanzella <pedro@pedrovanzella.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2020-01-28 15:51:19 +01:00
..
2020-01-25 22:01:51 +01:00
2020-01-17 05:54:18 -08:00
2020-01-16 19:42:08 -08:00
2019-12-01 18:43:25 -08:00
2020-01-27 10:30:42 -08:00
2020-01-26 10:39:09 -08:00
2019-11-30 14:35:43 -08:00
2019-12-01 18:42:02 -08:00
2019-11-03 19:54:53 +01:00
2020-01-04 10:41:08 -08:00
2019-12-06 08:28:51 -08:00
2019-12-03 13:58:22 -08:00
2019-12-03 14:37:12 -08:00
2020-01-18 12:08:57 -08:00
2020-01-25 13:46:00 +01:00
2020-01-13 18:50:18 -08:00
2019-12-01 18:43:25 -08:00
2019-12-05 11:43:31 -08:00
2019-11-25 19:40:40 -08:00
2020-01-27 10:30:42 -08:00
2020-01-27 10:42:35 -08:00
2019-12-05 11:28:14 -08:00
2020-01-06 12:04:31 -08:00
2019-12-01 18:39:24 -08:00
2020-01-26 12:12:36 -08:00
2020-01-16 19:42:08 -08:00
2020-01-06 12:34:44 -08:00
2020-01-26 10:39:09 -08:00
2020-01-24 12:05:08 -08:00
2020-01-17 19:40:06 +01:00
2019-12-07 14:51:04 -08:00
2019-12-03 13:58:22 -08:00
2019-11-14 13:06:33 +08:00
2019-12-21 06:24:56 -08:00