ACPI / x86: Add KIOX000A accelerometer on GPD win to always_present_ids array
authorHans de Goede <hdegoede@redhat.com>
Sun, 9 Jul 2017 19:05:14 +0000 (21:05 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 12 Jul 2017 11:26:13 +0000 (13:26 +0200)
The GPD win BIOS dated 20170320 has disabled the accelerometer, the
drivers sometimes cause crashes under Windows and this is how the
manufacturer has solved this :|

I see no other way to keep the accelerometer working under Windows then
adding it to the always_present_ids array.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/x86/utils.c

index eb6caf6f708b3d5f6fc49f45aaeb609f2fc0fb59..b4fbb99294828cf06900ddd7c4c908c6f28c83cb 100644 (file)
@@ -70,6 +70,19 @@ static const struct always_present_id always_present_ids[] = {
                DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
              }),
                DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
              }),
+       /*
+        * The GPD win BIOS dated 20170320 has disabled the accelerometer, the
+        * drivers sometimes cause crashes under Windows and this is how the
+        * manufacturer has solved this :| Note that the the DMI data is less
+        * generic then it seems, a board_vendor of "AMI Corporation" is quite
+        * rare and a board_name of "Default String" also is rare.
+        */
+       ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
+               DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+               DMI_MATCH(DMI_BOARD_NAME, "Default string"),
+               DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
+               DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
+             }),
 };
 
 bool acpi_device_always_present(struct acpi_device *adev)
 };
 
 bool acpi_device_always_present(struct acpi_device *adev)