]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
authorMaximilian Luz <luzmaximilian@gmail.com>
Sun, 13 Feb 2022 15:49:20 +0000 (16:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Mar 2022 06:22:27 +0000 (08:22 +0200)
commit 7dacee0b9efc8bd061f097b1a8d4daa6591af0c6 upstream.

For some reason, the Microsoft Surface Go 3 uses the standard ACPI
interface for battery information, but does not use the standard PNP0C0A
HID. Instead it uses MSHW0146 as identifier. Add that ID to the driver
as this seems to work well.

Additionally, the power state is not updated immediately after the AC
has been (un-)plugged, so add the respective quirk for that.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/battery.c

index 30996effc491b2aff97a18057deca1558341a618..42fba8493854fbd37d13c85afa29465003952c4d 100644 (file)
@@ -89,6 +89,10 @@ enum acpi_battery_files {
 
 static const struct acpi_device_id battery_device_ids[] = {
        {"PNP0C0A", 0},
+
+       /* Microsoft Surface Go 3 */
+       {"MSHW0146", 0},
+
        {"", 0},
 };
 
@@ -1183,6 +1187,14 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "Aspire V5-573G"),
                },
        },
+       {
+               /* Microsoft Surface Go 3 */
+               .callback = battery_notification_delay_quirk,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "Surface Go 3"),
+               },
+       },
        {},
 };