Skip to content

Commit

Permalink
HID: asus: Add event handler to catch unmapped Asus Vendor UsagePage …
Browse files Browse the repository at this point in the history
…codes

Various Asus devices generate HID events using the Asus Vendor specific
UsagePage 0xff31 and hid-asus will map these in its input_mapping for all
devices to which it binds (independent of any quirks).

Add an event callback which check for unmapped (because sofar unknown)
usages within the Asus Vendor UsagePage and log a warning for these.

The purpose of this patch is to help debugging / find such unmapped codes
and add them to the asus_input_mapping() function.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
  • Loading branch information
jwrdegoede authored and bentiss committed Nov 30, 2018
1 parent e195ca6 commit e98e380
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions drivers/hid/hid-asus.c
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,18 @@ static int asus_report_input(struct asus_drvdata *drvdat, u8 *data, int size)
return 1;
}

static int asus_event(struct hid_device *hdev, struct hid_field *field,
struct hid_usage *usage, __s32 value)
{
if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
(usage->hid & HID_USAGE) != 0x00 && !usage->type) {
hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
usage->hid & HID_USAGE);
}

return 0;
}

static int asus_raw_event(struct hid_device *hdev,
struct hid_report *report, u8 *data, int size)
{
Expand Down Expand Up @@ -832,6 +844,7 @@ static struct hid_driver asus_driver = {
#ifdef CONFIG_PM
.reset_resume = asus_reset_resume,
#endif
.event = asus_event,
.raw_event = asus_raw_event
};
module_hid_driver(asus_driver);
Expand Down

0 comments on commit e98e380

Please sign in to comment.