Message ID | 508e9004.5593cc0a.3323.0a6c@mx.google.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Jiri Kosina |
Headers | show |
On Mon, Oct 29, 2012 at 02:29:30PM +0100, Ingo Ruhnke wrote: > Button names for USB gamepads are currently assigned incorrectly, as > the evdev code assigned to buttons is "BTN_GAMEPAD + code", which on > devices with more then 16 buttons bleeds over into button names > reserved for graphic tablets (BTN_TOOL_PEN, etc.). This causes > problems further down the line as the device are now no longer > detected as joystick. This patch fixes that by assigning buttons > outside the range to BTN_TRIGGER_HAPPY (as is already the case for USB > joysticks). > > Furthermore this patch corrects the assignment to BTN_TRIGGER_HAPPY, > as currently the first button over 16 is assigned to > BTN_TRIGGER_HAPPY17 (i.e. BTN_TRIGGER_HAPPY+0x10) not BTN_TRIGGER_HAPPY. > > Signed-off-by: Ingo Ruhnke <grumbel@gmail.com> Makes sense. Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > --- > drivers/hid/hid-input.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c > index d917c0d..10248cf 100644 > --- a/drivers/hid/hid-input.c > +++ b/drivers/hid/hid-input.c > @@ -502,9 +502,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel > if (code <= 0xf) > code += BTN_JOYSTICK; > else > - code += BTN_TRIGGER_HAPPY; > + code += BTN_TRIGGER_HAPPY - 0x10; > + break; > + case HID_GD_GAMEPAD: > + if (code <= 0xf) > + code += BTN_GAMEPAD; > + else > + code += BTN_TRIGGER_HAPPY - 0x10; > break; > - case HID_GD_GAMEPAD: code += BTN_GAMEPAD; break; > default: > switch (field->physical) { > case HID_GD_MOUSE: > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
yOn Tue, 30 Oct 2012, Dmitry Torokhov wrote: > On Mon, Oct 29, 2012 at 02:29:30PM +0100, Ingo Ruhnke wrote: > > Button names for USB gamepads are currently assigned incorrectly, as > > the evdev code assigned to buttons is "BTN_GAMEPAD + code", which on > > devices with more then 16 buttons bleeds over into button names > > reserved for graphic tablets (BTN_TOOL_PEN, etc.). This causes > > problems further down the line as the device are now no longer > > detected as joystick. This patch fixes that by assigning buttons > > outside the range to BTN_TRIGGER_HAPPY (as is already the case for USB > > joysticks). > > > > Furthermore this patch corrects the assignment to BTN_TRIGGER_HAPPY, > > as currently the first button over 16 is assigned to > > BTN_TRIGGER_HAPPY17 (i.e. BTN_TRIGGER_HAPPY+0x10) not BTN_TRIGGER_HAPPY. > > > > Signed-off-by: Ingo Ruhnke <grumbel@gmail.com> > > Makes sense. > > Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Good catch indeed. Applied, thanks!
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index d917c0d..10248cf 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -502,9 +502,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel if (code <= 0xf) code += BTN_JOYSTICK; else - code += BTN_TRIGGER_HAPPY; + code += BTN_TRIGGER_HAPPY - 0x10; + break; + case HID_GD_GAMEPAD: + if (code <= 0xf) + code += BTN_GAMEPAD; + else + code += BTN_TRIGGER_HAPPY - 0x10; break; - case HID_GD_GAMEPAD: code += BTN_GAMEPAD; break; default: switch (field->physical) { case HID_GD_MOUSE:
Button names for USB gamepads are currently assigned incorrectly, as the evdev code assigned to buttons is "BTN_GAMEPAD + code", which on devices with more then 16 buttons bleeds over into button names reserved for graphic tablets (BTN_TOOL_PEN, etc.). This causes problems further down the line as the device are now no longer detected as joystick. This patch fixes that by assigning buttons outside the range to BTN_TRIGGER_HAPPY (as is already the case for USB joysticks). Furthermore this patch corrects the assignment to BTN_TRIGGER_HAPPY, as currently the first button over 16 is assigned to BTN_TRIGGER_HAPPY17 (i.e. BTN_TRIGGER_HAPPY+0x10) not BTN_TRIGGER_HAPPY. Signed-off-by: Ingo Ruhnke <grumbel@gmail.com> --- drivers/hid/hid-input.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)