• Filipe Laíns's avatar
    HID: logitech-hidpp: BatteryVoltage: only read chargeStatus if extPower is active · 4ab2bb3c
    Filipe Laíns authored
    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: default avatarFilipe Laíns <lains@archlinux.org>
    Tested-by: default avatarPedro Vanzella <pedro@pedrovanzella.com>
    Reviewed-by: default avatarPedro Vanzella <pedro@pedrovanzella.com>
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    4ab2bb3c
hid-logitech-hidpp.c 113 KB