|
@@ -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]);
|