45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From: Andrew Duggan <aduggan@synaptics.com>
|
|
Date: Tue, 16 Jun 2015 14:08:41 -0700
|
|
Subject: [PATCH] HID: rmi: Disable populating F30 when the touchpad has
|
|
physical buttons
|
|
|
|
Physical buttons do not use F30 to report their state and in some cases the
|
|
data reported in F30 is incorrect and inconsistent with what is reported by
|
|
the HID descriptor. When physical buttons are present, ignore F30 and let
|
|
hid-input report buttons based on what is defined in the HID descriptor.
|
|
|
|
Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
|
|
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
|
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
---
|
|
drivers/hid/hid-rmi.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
|
|
index 368ffdf2c0a3..721f7f90a157 100644
|
|
--- a/drivers/hid/hid-rmi.c
|
|
+++ b/drivers/hid/hid-rmi.c
|
|
@@ -1013,6 +1013,7 @@ static int rmi_populate_f30(struct hid_device *hdev)
|
|
|
|
static int rmi_populate(struct hid_device *hdev)
|
|
{
|
|
+ struct rmi_data *data = hid_get_drvdata(hdev);
|
|
int ret;
|
|
|
|
ret = rmi_scan_pdt(hdev);
|
|
@@ -1033,9 +1034,11 @@ static int rmi_populate(struct hid_device *hdev)
|
|
return ret;
|
|
}
|
|
|
|
- ret = rmi_populate_f30(hdev);
|
|
- if (ret)
|
|
- hid_warn(hdev, "Error while initializing F30 (%d).\n", ret);
|
|
+ if (!(data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)) {
|
|
+ ret = rmi_populate_f30(hdev);
|
|
+ if (ret)
|
|
+ hid_warn(hdev, "Error while initializing F30 (%d).\n", ret);
|
|
+ }
|
|
|
|
return 0;
|
|
}
|