]> git.baikalelectronics.ru Git - kernel.git/commit
surface: surface3_power: Fix battery readings on batteries without a serial number
authorHans de Goede <hdegoede@redhat.com>
Thu, 24 Feb 2022 10:18:48 +0000 (11:18 +0100)
committerHans de Goede <hdegoede@redhat.com>
Thu, 24 Feb 2022 12:48:39 +0000 (13:48 +0100)
commitd092f2356e6dfced7a0379c6e1d49af1cd292a50
tree5cf88fdf130e07d00ebb896bd4f2b16b0ee52e2d
parente4bdce63b3a470e4949ff0a6f196b8ee4a3dff45
surface: surface3_power: Fix battery readings on batteries without a serial number

The battery on the 2nd hand Surface 3 which I recently bought appears to
not have a serial number programmed in. This results in any I2C reads from
the registers containing the serial number failing with an I2C NACK.

This was causing mshw0011_bix() to fail causing the battery readings to
not work at all.

Ignore EREMOTEIO (I2C NACK) errors when retrieving the serial number and
continue with an empty serial number to fix this.

Fixes: c9ecf3a6b467 ("platform/x86: surface3_power: MSHW0011 rev-eng implementation")
BugLink: https://github.com/linux-surface/linux-surface/issues/608
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220224101848.7219-1-hdegoede@redhat.com
drivers/platform/surface/surface3_power.c