From: Anshul Garg <aksgarg1...@gmail.com>

In joydev_connect function added check for event type before
setting properties for that event. This will avoid dummy
loop iterations which checks for event code even if event type
is not set.

Signed-off-by: Anshul Garg <aksgarg1...@gmail.com>
---
 drivers/input/joydev.c |   44 ++++++++++++++++++++++++--------------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index f362883..a37a26c 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -797,27 +797,31 @@ static int joydev_connect(struct input_handler *handler, 
struct input_dev *dev,
        joydev->handle.name = dev_name(&joydev->dev);
        joydev->handle.handler = handler;
        joydev->handle.private = joydev;
+
+       if (test_bit(EV_ABS, dev->evbit)) {
+               for (i = 0; i < ABS_CNT; i++)
+                       if (test_bit(i, dev->absbit)) {
+                               joydev->absmap[i] = joydev->nabs;
+                               joydev->abspam[joydev->nabs] = i;
+                               joydev->nabs++;
+                       }
+       }
 
-       for (i = 0; i < ABS_CNT; i++)
-               if (test_bit(i, dev->absbit)) {
-                       joydev->absmap[i] = joydev->nabs;
-                       joydev->abspam[joydev->nabs] = i;
-                       joydev->nabs++;
-               }
-
-       for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
-               if (test_bit(i + BTN_MISC, dev->keybit)) {
-                       joydev->keymap[i] = joydev->nkey;
-                       joydev->keypam[joydev->nkey] = i + BTN_MISC;
-                       joydev->nkey++;
-               }
-
-       for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
-               if (test_bit(i + BTN_MISC, dev->keybit)) {
-                       joydev->keymap[i] = joydev->nkey;
-                       joydev->keypam[joydev->nkey] = i + BTN_MISC;
-                       joydev->nkey++;
-               }
+       if (test_bit(EV_KEY, dev->evbit)) {
+               for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; 
i++)
+                       if (test_bit(i + BTN_MISC, dev->keybit)) {
+                               joydev->keymap[i] = joydev->nkey;
+                               joydev->keypam[joydev->nkey] = i + BTN_MISC;
+                               joydev->nkey++;
+                       }
+
+               for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
+                       if (test_bit(i + BTN_MISC, dev->keybit)) {
+                               joydev->keymap[i] = joydev->nkey;
+                               joydev->keypam[joydev->nkey] = i + BTN_MISC;
+                               joydev->nkey++;
+                       }
+       }
 
        for (i = 0; i < joydev->nabs; i++) {
                j = joydev->abspam[i];
-- 
1.7.9.5


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to