Input: xpad - fix dpad handling of unknown devices
authorAnssi Hannula <anssi.hannula@gmail.com>
Thu, 3 Apr 2008 20:18:10 +0000 (16:18 -0400)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 3 Apr 2008 20:18:10 +0000 (16:18 -0400)
commita0979923d7c34c9c60d0ee8a533f9502dcfbd42b
tree2a66e7603691d00dd17db14731ad83a42d003ecb
parent8a0f83eacc1bb8899094b17483de95ddf2d8fcc6
Input: xpad - fix dpad handling of unknown devices

For devices not specifically listed in xpad.c, xpad->dpad_mapping
is initially set to MAP_DPAD_UNKNOWN. In xpad_probe() it gets changed
to either MAP_DPAD_TO_BUTTONS or MAP_DPAD_TO_AXES, depending on the
module parameter dpad_to_buttons.

However, MAP_DPAD_UNKNOWN is defined as -1, while the field is u8.
This results in actual value of 255, causing the MAP_DPAD_UNKNOWN
check in xpad_probe() to fail.
Fix that by defining MAP_DPAD_UNKNOWN as 2 instead.

Also, setting module parameter dpad_to_buttons to 1 should obviously
map dpad to buttons, while the default behaviour (0) should be to map
dpad to axes. However, dpad_to_buttons is directly assigned to
xpad->dpad_mapping, and as MAP_DPAD_TO_BUTTONS is 0, the actual
behaviour is reversed.
Fix that by negating dpad_to_buttons in assignment.

Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/joystick/xpad.c