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 3422464..1986786 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;