Input: rmi4 - f30: detect INPUT_PROP_BUTTONPAD from the button count
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Wed, 1 Mar 2017 08:57:00 +0000 (09:57 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Mar 2017 18:01:56 +0000 (10:01 -0800)
INPUT_PROP_BUTTONPAD is currently only set through the platform data.
The RMI4 header doc says that this property is there to force the
buttonpad property, so we also need to detect it by looking at
the exported buttons count.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reported-and-tested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/input/rmi4/rmi_f30.c

index 3422464af229bc578d43726d266943558fe538bf..1986786133824d5b7cc815ec98efe61afd2624e2 100644 (file)
@@ -258,9 +258,10 @@ static int rmi_f30_map_gpios(struct rmi_function *fn,
 
        /*
         * Buttonpad could be also inferred from f30->has_mech_mouse_btns,
-        * but I am not sure, so use only the pdata info.
+        * but I am not sure, so use only the pdata info and the number of
+        * mapped buttons.
         */
-       if (pdata->f30_data.buttonpad)
+       if (pdata->f30_data.buttonpad || (button - BTN_LEFT == 1))
                __set_bit(INPUT_PROP_BUTTONPAD, input->propbit);
 
        return 0;