]> Git Repo - linux.git/commitdiff
HID: rmi: Disable populating F30 when the touchpad has physical buttons
authorAndrew Duggan <[email protected]>
Tue, 16 Jun 2015 21:08:41 +0000 (14:08 -0700)
committerJiri Kosina <[email protected]>
Tue, 16 Jun 2015 21:40:02 +0000 (23:40 +0200)
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 <[email protected]>
Reviewed-by: Benjamin Tissoires <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
drivers/hid/hid-rmi.c

index 368ffdf2c0a3af086d9242f00476f598a3fffdf9..721f7f90a1571263bd17a3268a7c1ba0051d043d 100644 (file)
@@ -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;
 }
This page took 0.058558 seconds and 4 git commands to generate.