Skip to content

Commit

Permalink
platform/x86: peaq-wmi: Add DMI check before binding to the WMI inter…
Browse files Browse the repository at this point in the history
…face

It seems that the WMI GUID used by the PEAQ 2-in-1 WMI hotkeys is not
as unique as a GUID should be and is used on some other devices too.

This is causing spurious key-press reports on these other devices.

This commits adds a DMI check to the PEAQ 2-in-1 WMI hotkeys driver to
ensure that it is actually running on a PEAQ 2-in-1, fixing the
spurious key-presses on these other devices.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1497861
BugLink: https://bugzilla.suse.com/attachment.cgi?id=743182
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  • Loading branch information
Hans de Goede authored and Andy Shevchenko committed Oct 8, 2017
1 parent dfea7e1 commit 3b95206
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/platform/x86/peaq-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*/

#include <linux/acpi.h>
#include <linux/dmi.h>
#include <linux/input-polldev.h>
#include <linux/kernel.h>
#include <linux/module.h>
Expand Down Expand Up @@ -64,8 +65,22 @@ static void peaq_wmi_poll(struct input_polled_dev *dev)
}
}

/* Some other devices (Shuttle XS35) use the same WMI GUID for other purposes */
static const struct dmi_system_id peaq_dmi_table[] = {
{
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"),
DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"),
},
},
};

static int __init peaq_wmi_init(void)
{
/* WMI GUID is not unique, also check for a DMI match */
if (!dmi_check_system(peaq_dmi_table))
return -ENODEV;

if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID))
return -ENODEV;

Expand All @@ -86,6 +101,9 @@ static int __init peaq_wmi_init(void)

static void __exit peaq_wmi_exit(void)
{
if (!dmi_check_system(peaq_dmi_table))
return;

if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID))
return;

Expand Down

0 comments on commit 3b95206

Please sign in to comment.