aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2017-10-19 07:23:21 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2017-10-21 07:24:53 -0400
commit1c3b44c0f40d22b43fa58fe7081ca36e38449114 (patch)
tree129914dab318c288f67ae5f1b816ce6c887d263b
parent33d930e59a98fa10a0db9f56c7fa2f21a4aef9b9 (diff)
ACPI / x86: Extend KIOX000A quirk to cover all affected BIOS versions
Recently produced GPD win devices have a new BIOS, research into the changes in this BIOS has found a ChangeLog which shows that the disabling of the KIOX000A node has been done starting with the 20170221 version. Unfortunately the GPD pocket uses the exact same DMI strings as the win and its BIOS was copy-pasted from the GPD win, so it has a disabled KIOX000A node which we should not enable, so we need to check for the exact BIOS date. This commit adds 2 extra entries to the always_present_ids quirk table with bios_date matches for the older also affected and the latest BIOS. Reported-by: ReddestDream <reddestdream@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/acpi/x86/utils.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index b4fbb9929482..ec5b0f190231 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -71,18 +71,34 @@ static const struct always_present_id always_present_ids[] = {
71 DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"), 71 DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
72 }), 72 }),
73 /* 73 /*
74 * The GPD win BIOS dated 20170320 has disabled the accelerometer, the 74 * The GPD win BIOS dated 20170221 has disabled the accelerometer, the
75 * drivers sometimes cause crashes under Windows and this is how the 75 * drivers sometimes cause crashes under Windows and this is how the
76 * manufacturer has solved this :| Note that the the DMI data is less 76 * manufacturer has solved this :| Note that the the DMI data is less
77 * generic then it seems, a board_vendor of "AMI Corporation" is quite 77 * generic then it seems, a board_vendor of "AMI Corporation" is quite
78 * rare and a board_name of "Default String" also is rare. 78 * rare and a board_name of "Default String" also is rare.
79 *
80 * Unfortunately the GPD pocket also uses these strings and its BIOS
81 * was copy-pasted from the GPD win, so it has a disabled KIOX000A
82 * node which we should not enable, thus we also check the BIOS date.
79 */ 83 */
80 ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), { 84 ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
81 DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), 85 DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
82 DMI_MATCH(DMI_BOARD_NAME, "Default string"), 86 DMI_MATCH(DMI_BOARD_NAME, "Default string"),
83 DMI_MATCH(DMI_PRODUCT_NAME, "Default string"), 87 DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
88 DMI_MATCH(DMI_BIOS_DATE, "02/21/2017")
89 }),
90 ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
91 DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
92 DMI_MATCH(DMI_BOARD_NAME, "Default string"),
93 DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
84 DMI_MATCH(DMI_BIOS_DATE, "03/20/2017") 94 DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
85 }), 95 }),
96 ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
97 DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
98 DMI_MATCH(DMI_BOARD_NAME, "Default string"),
99 DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
100 DMI_MATCH(DMI_BIOS_DATE, "05/25/2017")
101 }),
86}; 102};
87 103
88bool acpi_device_always_present(struct acpi_device *adev) 104bool acpi_device_always_present(struct acpi_device *adev)