Input: xpad - avoid using __set_bit() for capabilities
[sfrench/cifs-2.6.git] / drivers / input / joystick / xpad.c
index 82814bf394c295ec3c384bdd050472ff130be8c5..cef21b2c4e6ee9eb3dbe924723ef67ce62ea0b15 100644 (file)
@@ -1571,8 +1571,6 @@ static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs)
 {
        struct usb_xpad *xpad = input_get_drvdata(input_dev);
 
-       set_bit(abs, input_dev->absbit);
-
        switch (abs) {
        case ABS_X:
        case ABS_Y:
@@ -1591,6 +1589,9 @@ static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs)
        case ABS_HAT0Y: /* the d-pad (only if dpad is mapped to axes */
                input_set_abs_params(input_dev, abs, -1, 1, 0, 0);
                break;
+       default:
+               input_set_abs_params(input_dev, abs, 0, 0, 0, 0);
+               break;
        }
 }
 
@@ -1631,10 +1632,7 @@ static int xpad_init_input(struct usb_xpad *xpad)
                input_dev->close = xpad_close;
        }
 
-       __set_bit(EV_KEY, input_dev->evbit);
-
        if (!(xpad->mapping & MAP_STICKS_TO_NULL)) {
-               __set_bit(EV_ABS, input_dev->evbit);
                /* set up axes */
                for (i = 0; xpad_abs[i] >= 0; i++)
                        xpad_set_up_abs(input_dev, xpad_abs[i]);
@@ -1642,21 +1640,22 @@ static int xpad_init_input(struct usb_xpad *xpad)
 
        /* set up standard buttons */
        for (i = 0; xpad_common_btn[i] >= 0; i++)
-               __set_bit(xpad_common_btn[i], input_dev->keybit);
+               input_set_capability(input_dev, EV_KEY, xpad_common_btn[i]);
 
        /* set up model-specific ones */
        if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W ||
            xpad->xtype == XTYPE_XBOXONE) {
                for (i = 0; xpad360_btn[i] >= 0; i++)
-                       __set_bit(xpad360_btn[i], input_dev->keybit);
+                       input_set_capability(input_dev, EV_KEY, xpad360_btn[i]);
        } else {
                for (i = 0; xpad_btn[i] >= 0; i++)
-                       __set_bit(xpad_btn[i], input_dev->keybit);
+                       input_set_capability(input_dev, EV_KEY, xpad_btn[i]);
        }
 
        if (xpad->mapping & MAP_DPAD_TO_BUTTONS) {
                for (i = 0; xpad_btn_pad[i] >= 0; i++)
-                       __set_bit(xpad_btn_pad[i], input_dev->keybit);
+                       input_set_capability(input_dev, EV_KEY,
+                                            xpad_btn_pad[i]);
        }
 
        /*
@@ -1673,7 +1672,8 @@ static int xpad_init_input(struct usb_xpad *xpad)
 
        if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) {
                for (i = 0; xpad_btn_triggers[i] >= 0; i++)
-                       __set_bit(xpad_btn_triggers[i], input_dev->keybit);
+                       input_set_capability(input_dev, EV_KEY,
+                                            xpad_btn_triggers[i]);
        } else {
                for (i = 0; xpad_abs_triggers[i] >= 0; i++)
                        xpad_set_up_abs(input_dev, xpad_abs_triggers[i]);