summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaximilian Luz <luzmaximilian@gmail.com>2022-02-13 16:49:20 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-03-28 09:57:10 +0200
commit0b2ffba2de5046e508616f3b30f0e424436d16f7 (patch)
tree37f9503d5ff51510dec8ca30bc64d5a4c521400e
parent2724b72b225de65ad119a5cb490c974059318f5e (diff)
downloadlinux-0b2ffba2de5046e508616f3b30f0e424436d16f7.tar.gz
linux-0b2ffba2de5046e508616f3b30f0e424436d16f7.tar.bz2
linux-0b2ffba2de5046e508616f3b30f0e424436d16f7.zip
ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
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>
-rw-r--r--drivers/acpi/battery.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 2376f57b3617..be743d177bcb 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -66,6 +66,10 @@ MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
static const struct acpi_device_id battery_device_ids[] = {
{"PNP0C0A", 0},
+
+ /* Microsoft Surface Go 3 */
+ {"MSHW0146", 0},
+
{"", 0},
};
@@ -1171,6 +1175,14 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
},
},
+ {
+ /* 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"),
+ },
+ },
{},
};