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>
This commit is contained in:
Hans de Goede 2017-10-19 13:23:21 +02:00 committed by Rafael J. Wysocki
parent 33d930e59a
commit 1c3b44c0f4

View File

@ -71,18 +71,34 @@ static const struct always_present_id always_present_ids[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"), DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
}), }),
/* /*
* The GPD win BIOS dated 20170320 has disabled the accelerometer, the * The GPD win BIOS dated 20170221 has disabled the accelerometer, the
* drivers sometimes cause crashes under Windows and this is how the * drivers sometimes cause crashes under Windows and this is how the
* manufacturer has solved this :| Note that the the DMI data is less * manufacturer has solved this :| Note that the the DMI data is less
* generic then it seems, a board_vendor of "AMI Corporation" is quite * generic then it seems, a board_vendor of "AMI Corporation" is quite
* rare and a board_name of "Default String" also is rare. * rare and a board_name of "Default String" also is rare.
*
* Unfortunately the GPD pocket also uses these strings and its BIOS
* was copy-pasted from the GPD win, so it has a disabled KIOX000A
* node which we should not enable, thus we also check the BIOS date.
*/ */
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, "02/21/2017")
}),
ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), { ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"), DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"), DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "03/20/2017") DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
}), }),
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, "05/25/2017")
}),
}; };
bool acpi_device_always_present(struct acpi_device *adev) bool acpi_device_always_present(struct acpi_device *adev)