diff options
Diffstat (limited to 'drivers/input/joystick/interact.c')
-rw-r--r-- | drivers/input/joystick/interact.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/input/joystick/interact.c b/drivers/input/joystick/interact.c index 2478289aeeea..16fb19d1ca25 100644 --- a/drivers/input/joystick/interact.c +++ b/drivers/input/joystick/interact.c | |||
@@ -270,18 +270,14 @@ static int interact_connect(struct gameport *gameport, struct gameport_driver *d | |||
270 | input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); | 270 | input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); |
271 | 271 | ||
272 | for (i = 0; (t = interact_type[interact->type].abs[i]) >= 0; i++) { | 272 | for (i = 0; (t = interact_type[interact->type].abs[i]) >= 0; i++) { |
273 | set_bit(t, input_dev->absbit); | 273 | if (i < interact_type[interact->type].b8) |
274 | if (i < interact_type[interact->type].b8) { | 274 | input_set_abs_params(input_dev, t, 0, 255, 0, 0); |
275 | input_dev->absmin[t] = 0; | 275 | else |
276 | input_dev->absmax[t] = 255; | 276 | input_set_abs_params(input_dev, t, -1, 1, 0, 0); |
277 | } else { | ||
278 | input_dev->absmin[t] = -1; | ||
279 | input_dev->absmax[t] = 1; | ||
280 | } | ||
281 | } | 277 | } |
282 | 278 | ||
283 | for (i = 0; (t = interact_type[interact->type].btn[i]) >= 0; i++) | 279 | for (i = 0; (t = interact_type[interact->type].btn[i]) >= 0; i++) |
284 | set_bit(t, input_dev->keybit); | 280 | __set_bit(t, input_dev->keybit); |
285 | 281 | ||
286 | err = input_register_device(interact->dev); | 282 | err = input_register_device(interact->dev); |
287 | if (err) | 283 | if (err) |