Message ID | 1472134610-6438-1-git-send-email-ville.ranki@iki.fi (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Thu, Aug 25, 2016 at 05:16:50PM +0300, Ville Ranki wrote: > Current implementation of joydev's input_device_id > table recognizes only devices with ABS_X, ABS_WHEEL > or ABS_THROTTLE axes as joysticks. > > There are joystick devices that do not have those axes, > for example TRC Rudder device. The device in question > has ABS_Z, ABS_RX and ABS_RY axes causing it not being > detected as joystick. > > This patch adds ABS_Z to the input_device_id list > allowing devices with ABS_Z axis to be detected > correctly. I am curious why you still use joydev and not switch your client(s) to evdev? Or is it some legacy game? Thanks. > > Signed-off-by: Ville Ranki <ville.ranki@iki.fi> > --- > drivers/input/joydev.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c > index 5d11fea..f3135ae 100644 > --- a/drivers/input/joydev.c > +++ b/drivers/input/joydev.c > @@ -950,6 +950,12 @@ static const struct input_device_id joydev_ids[] = { > .flags = INPUT_DEVICE_ID_MATCH_EVBIT | > INPUT_DEVICE_ID_MATCH_ABSBIT, > .evbit = { BIT_MASK(EV_ABS) }, > + .absbit = { BIT_MASK(ABS_Z) }, > + }, > + { > + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | > + INPUT_DEVICE_ID_MATCH_ABSBIT, > + .evbit = { BIT_MASK(EV_ABS) }, > .absbit = { BIT_MASK(ABS_WHEEL) }, > }, > { > -- > 2.7.4 >
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 08/25/2016 07:45 PM, Dmitry Torokhov wrote: >> This patch adds ABS_Z to the input_device_id list allowing >> devices with ABS_Z axis to be detected correctly. > > I am curious why you still use joydev and not switch your client(s) > to evdev? Or is it some legacy game? Yes, this is about legacy games. For example X-Plane requires joystick node to be present. - -- Ville Ranki <ville.ranki@iki.fi> http://www.iki.fi/~cos PGP public key: http://www.iki.fi/~cos/vranki_pub.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAle/W3UACgkQVm11nqR7UVwysgCcDb9WIsMKC9qNPHxMWA9rFSqM 7YcAnibn2E02M4/7v7QjD0wuD3QdJMhG =DjXV -----END PGP SIGNATURE----- -- 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
On 08/25/2016 11:56 PM, Ville Ranki wrote: > On 08/25/2016 07:45 PM, Dmitry Torokhov wrote: >>> This patch adds ABS_Z to the input_device_id list allowing >>> devices with ABS_Z axis to be detected correctly. > >> I am curious why you still use joydev and not switch your >> client(s) to evdev? Or is it some legacy game? > > Yes, this is about legacy games. For example X-Plane requires > joystick node to be present. Was this patch accepted or rejected? In distros event devices are not readable by non-root users by default while joystick devices are. These can be changed with udev rules, but IMO joystick detection should be fixed on kernel level.
On 09/02/2016 12:11 PM, Ville Ranki wrote:
> Was this patch accepted or rejected?
Still waiting for answer. If it requires changes, I'm happy
to do so. I asked another kernel developer to review the
patch and he said it should be ok.
On Thu, Aug 25, 2016 at 05:16:50PM +0300, Ville Ranki wrote: > Current implementation of joydev's input_device_id > table recognizes only devices with ABS_X, ABS_WHEEL > or ABS_THROTTLE axes as joysticks. > > There are joystick devices that do not have those axes, > for example TRC Rudder device. The device in question > has ABS_Z, ABS_RX and ABS_RY axes causing it not being > detected as joystick. > > This patch adds ABS_Z to the input_device_id list > allowing devices with ABS_Z axis to be detected > correctly. > > Signed-off-by: Ville Ranki <ville.ranki@iki.fi> Applied, thank you. Although I wonder if we could not move joydev implementation to userspace in the long run. Thanks.
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 5d11fea..f3135ae 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c @@ -950,6 +950,12 @@ static const struct input_device_id joydev_ids[] = { .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_ABSBIT, .evbit = { BIT_MASK(EV_ABS) }, + .absbit = { BIT_MASK(ABS_Z) }, + }, + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | + INPUT_DEVICE_ID_MATCH_ABSBIT, + .evbit = { BIT_MASK(EV_ABS) }, .absbit = { BIT_MASK(ABS_WHEEL) }, }, {
Current implementation of joydev's input_device_id table recognizes only devices with ABS_X, ABS_WHEEL or ABS_THROTTLE axes as joysticks. There are joystick devices that do not have those axes, for example TRC Rudder device. The device in question has ABS_Z, ABS_RX and ABS_RY axes causing it not being detected as joystick. This patch adds ABS_Z to the input_device_id list allowing devices with ABS_Z axis to be detected correctly. Signed-off-by: Ville Ranki <ville.ranki@iki.fi> --- drivers/input/joydev.c | 6 ++++++ 1 file changed, 6 insertions(+)