* Fwd: Linux General Joystick Max buttons limitation 80 [not found] <CACa7zynY07xp3hhe5SA4wcGxJB6shc9qoos-BOL2CeXPEobzuA@mail.gmail.com> @ 2020-07-09 23:10 ` Wei Shuai 2020-07-10 13:15 ` Wei Shuai 0 siblings, 1 reply; 2+ messages in thread From: Wei Shuai @ 2020-07-09 23:10 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: linux-input Dear Joystick Maintainer, we found Linux kernel has max joystick buttons up to 80, no more We are selling a USB joystick device QMCP737C for flight simulator, which is nothing but a common USB joystick. it has 104 buttons Product link https://x-plane.vip/quickmade/qmcp737c/ it works good on Windows, Mac, but not on Linux. Linux kernel exposes /dev/input/js0 max to 80 buttons, but we have 104 buttons. I did a lot of google search, but nothing I got. then I have to look at Kernel source, to find out where this number max 80 comes from Eventually I found the final limitation #define BTN_JOYSTICK 0x120 #define BTN_DEAD 0x12f #define BTN_TRIGGER_HAPPY 0x2c0 #define KEY_MAX 0x2ff include/uapi/linux/input-event-codes.h according to function hidinput_configure_usage() in file drivers/hid/hid-input.c the joystick button mapping is not a continuous space, general speak the mapping space is from BTN_JOYSTICK~BTN_DEAD BTN_TRIGGER_HAPPY~KEY_MAX and finally I got the max limitation is 80. My question is why KEY_MAX is 0x2ff? this number 0x2ff looks like it does not align with char?integer? the answer is no so may I ask to expand KEY_MAX to such as 0x4ff? or you need me to submit patch for it, I am OK Thank you ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Linux General Joystick Max buttons limitation 80 2020-07-09 23:10 ` Fwd: Linux General Joystick Max buttons limitation 80 Wei Shuai @ 2020-07-10 13:15 ` Wei Shuai 0 siblings, 0 replies; 2+ messages in thread From: Wei Shuai @ 2020-07-10 13:15 UTC (permalink / raw) To: Dmitry Torokhov Cc: open list:INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN)... Dear Dmitry Torokhov, I have tried this change on Ubuntu, it really works. The small fix will break the limitation of the max button number of Joystick. Please help to review the patch, I have sent the patch in a different email thread. Wei Shuai <cpuwolf@gmail.com> 于2020年7月10日周五 上午7:10写道: > > Dear Joystick Maintainer, > > we found Linux kernel has max joystick buttons up to 80, no more > > We are selling a USB joystick device QMCP737C for flight simulator, > which is nothing but a common USB joystick. it has 104 buttons > > Product link > https://x-plane.vip/quickmade/qmcp737c/ > > it works good on Windows, Mac, but not on Linux. > Linux kernel exposes /dev/input/js0 max to 80 buttons, but we have 104 buttons. > > I did a lot of google search, but nothing I got. then I have to look > at Kernel source, to find out where this number max 80 comes from > > Eventually I found the final limitation > > #define BTN_JOYSTICK 0x120 > > #define BTN_DEAD 0x12f > > #define BTN_TRIGGER_HAPPY 0x2c0 > > #define KEY_MAX 0x2ff > > include/uapi/linux/input-event-codes.h > > according to function hidinput_configure_usage() in file drivers/hid/hid-input.c > > the joystick button mapping is not a continuous space, general speak > the mapping space is from > > BTN_JOYSTICK~BTN_DEAD > BTN_TRIGGER_HAPPY~KEY_MAX > > and finally I got the max limitation is 80. > > My question is why KEY_MAX is 0x2ff? this number 0x2ff looks like it > does not align with char?integer? the answer is no > > so may I ask to expand KEY_MAX to such as 0x4ff? or you need me to > submit patch for it, I am OK > > Thank you ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-07-10 13:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CACa7zynY07xp3hhe5SA4wcGxJB6shc9qoos-BOL2CeXPEobzuA@mail.gmail.com>
2020-07-09 23:10 ` Fwd: Linux General Joystick Max buttons limitation 80 Wei Shuai
2020-07-10 13:15 ` Wei Shuai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).