Message ID | CANq1E4Q85ewwKs7VoooZVapC7-Cvy6-Xp4rGL1-1Ee7w1EcT6w@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Jiri Kosina |
Headers | show |
And this time also attached... On Sat, Sep 7, 2013 at 9:31 AM, David Herrmann <dh.herrmann@gmail.com> wrote: > Hi > > On Sat, Sep 7, 2013 at 5:22 AM, Dmitry Torokhov > <dmitry.torokhov@gmail.com> wrote: >> On Fri, Sep 06, 2013 at 06:00:29PM -0700, Linus Torvalds wrote: >>> On Fri, Sep 6, 2013 at 5:58 PM, Dmitry Torokhov >>> <dmitry.torokhov@gmail.com> wrote: >>> > >>> > The patch still had problems so I'd revert it and wii bits and try again later. >>> >>> Ok. Mind giving me a list of commits, so that I don't have to do a >>> trial-and-error thing? I know the primary commit that causes problems, >>> but there are commits that seem to depend on it.. >> >> >> Sorry for the delay. I believe you need to revert: >> >> 73f8645 HID: wiimote: add support for Guitar-Hero drums >> 61e0065 Input: introduce BTN/ABS bits for drums and guitars >> >> Hmm... there also was "HID: wiimote: add support for Guitar-Hero >> guitars" but I do not see it... > > The commits to revert are: > > commit 61e00655e9cb82e034eb72b95a51072e718d14a7 > Author: David Herrmann <dh.herrmann@gmail.com> > Date: Mon Aug 26 19:14:46 2013 +0200 > > Input: introduce BTN/ABS bits for drums and guitars > > commit 73f8645db1913ab2475ec3c1cee8d5f748963aa7 > Author: David Herrmann <dh.herrmann@gmail.com> > Date: Mon Aug 26 19:14:47 2013 +0200 > > HID: wiimote: add support for Guitar-Hero drums > > commit 8e22ecb603c88b7397ab2e80b7b0811b8a1318f5 > Author: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com> > Date: Mon Aug 26 19:14:48 2013 +0200 > > HID: wiimote: add support for Guitar-Hero guitars > > Last one is not from me, so I guess that's why Dmitry missed it. And > sorry for the delay, stupid UTC+1.. > The bug only occurs for multi-touch devices (their ABS_* bits are >>0x1f), that's why I didn't see it happening during my tests.. > > If you didn't revert it, yet, attached (and inlined) is a patch which > reverts the ABS_MAX change and just moves the new identifiers in > between the others. On top of 3.12-rc1, this should fix all issues. If > you already reverted the patches, I guess we will just push it in > linux-next again and wait for 3.13? > > Thanks > David [..snap..]
On Sat, Sep 7, 2013 at 9:31 AM, David Herrmann <dh.herrmann@gmail.com> wrote: > Hi > > On Sat, Sep 7, 2013 at 5:22 AM, Dmitry Torokhov > <dmitry.torokhov@gmail.com> wrote: >> On Fri, Sep 06, 2013 at 06:00:29PM -0700, Linus Torvalds wrote: >>> On Fri, Sep 6, 2013 at 5:58 PM, Dmitry Torokhov >>> <dmitry.torokhov@gmail.com> wrote: >>> > >>> > The patch still had problems so I'd revert it and wii bits and try again later. >>> >>> Ok. Mind giving me a list of commits, so that I don't have to do a >>> trial-and-error thing? I know the primary commit that causes problems, >>> but there are commits that seem to depend on it.. >> >> >> Sorry for the delay. I believe you need to revert: >> >> 73f8645 HID: wiimote: add support for Guitar-Hero drums >> 61e0065 Input: introduce BTN/ABS bits for drums and guitars >> >> Hmm... there also was "HID: wiimote: add support for Guitar-Hero >> guitars" but I do not see it... > > The commits to revert are: > > commit 61e00655e9cb82e034eb72b95a51072e718d14a7 > Author: David Herrmann <dh.herrmann@gmail.com> > Date: Mon Aug 26 19:14:46 2013 +0200 > > Input: introduce BTN/ABS bits for drums and guitars > > commit 73f8645db1913ab2475ec3c1cee8d5f748963aa7 > Author: David Herrmann <dh.herrmann@gmail.com> > Date: Mon Aug 26 19:14:47 2013 +0200 > > HID: wiimote: add support for Guitar-Hero drums > > commit 8e22ecb603c88b7397ab2e80b7b0811b8a1318f5 > Author: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com> > Date: Mon Aug 26 19:14:48 2013 +0200 > > HID: wiimote: add support for Guitar-Hero guitars > > Last one is not from me, so I guess that's why Dmitry missed it. And > sorry for the delay, stupid UTC+1.. > The bug only occurs for multi-touch devices (their ABS_* bits are >>0x1f), that's why I didn't see it happening during my tests.. > > If you didn't revert it, yet, attached (and inlined) is a patch which > reverts the ABS_MAX change and just moves the new identifiers in > between the others. On top of 3.12-rc1, this should fix all issues. If > you already reverted the patches, I guess we will just push it in > linux-next again and wait for 3.13? > > Thanks > David > > (Inlined patch below, also attached to mail as gmail hates long lines) > > From 13d549489b4bd2eade719cf2ec8c37724be6e640 Mon Sep 17 00:00:00 2001 > From: David Herrmann <dh.herrmann@gmail.com> > Date: Sat, 7 Sep 2013 09:17:11 +0200 > Subject: [PATCH] Revert/Fix "Input: introduce BTN/ABS bits for drums and > guitars" > > commit 61e00655e9cb82e034eb72b95a51072e718d14a7 > Author: David Herrmann <dh.herrmann@gmail.com> > Date: Mon Aug 26 19:14:46 2013 +0200 > > Input: introduce BTN/ABS bits for drums and guitars > > This introduced several new identifiers for drums/guitar devices. However, > it also increased ABS_MAX. Unfortunately, 0x3f is already the maximum we > can use for ABS_MAX due to the limited EVIOCSABS ioctl. > > Revert this commit and move the new identifiers somewhere in between. We > need to figure out some other way to add new identifiers for the future. > To avoid this happening again, I added a small comment. > > This also fixes an issue where xf86-input-evdev failed on EVIOCGABS() due > to ABS_MAX not being a full mask. > > Markus Trippelsdorf <markus@trippelsdorf.de> > Signed-off-by: David Herrmann <dh.herrmann@gmail.com> > --- > include/linux/mod_devicetable.h | 2 +- > include/uapi/linux/input.h | 33 ++++++++++++++++++--------------- > 2 files changed, 19 insertions(+), 16 deletions(-) > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index 329aa30..45e9214 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -277,7 +277,7 @@ struct pcmcia_device_id { > #define INPUT_DEVICE_ID_KEY_MIN_INTERESTING 0x71 > #define INPUT_DEVICE_ID_KEY_MAX 0x2ff > #define INPUT_DEVICE_ID_REL_MAX 0x0f > -#define INPUT_DEVICE_ID_ABS_MAX 0x4f > +#define INPUT_DEVICE_ID_ABS_MAX 0x3f > #define INPUT_DEVICE_ID_MSC_MAX 0x07 > #define INPUT_DEVICE_ID_LED_MAX 0x0f > #define INPUT_DEVICE_ID_SND_MAX 0x07 > diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h > index 76457ee..12c33f8 100644 > --- a/include/uapi/linux/input.h > +++ b/include/uapi/linux/input.h > @@ -819,8 +819,24 @@ struct input_keymap_entry { > > #define ABS_VOLUME 0x20 > > +/* Drums and guitars (mostly toys) */ > +#define ABS_TOM_FAR_LEFT 0x21 > +#define ABS_TOM_LEFT 0x22 > +#define ABS_TOM_RIGHT 0x23 > +#define ABS_TOM_FAR_RIGHT 0x24 > +#define ABS_CYMBAL_FAR_LEFT 0x25 > +#define ABS_CYMBAL_LEFT 0x26 > +#define ABS_CYMBAL_RIGHT 0x27 > + > #define ABS_MISC 0x28 > > +/* Drums and guitars continued */ > +#define ABS_CYMBAL_FAR_RIGHT 0x29 > +#define ABS_BASS 0x2a > +#define ABS_HI_HAT 0x2b > +#define ABS_FRET_BOARD 0x2c /* Guitar fret board, vertical pos */ > +#define ABS_WHAMMY_BAR 0x2d /* Guitar whammy bar (or vibrato) */ > + I'm not particularly in favor of adding semantic between ABS_MISC and ABS_MT_SLOT. We already did that once with the ABS_MT_* stuff, and the problem comes from devices showing several axes, not really mapped (like joysticks). These axes are all mapped to ABS_MISC, but the input core function map them to ABS_MISC+N. This way some joysticks show multitouch axes and are treated as such, whereas the axis are just regular absolute axes. (not sure I am clear enough... :( ) Currently, nothing is done in X or in Wayland to detect these false multitouch devices with a large number of absolute axes. But if we keep a hole between ABS_MISC and ABS_MT_SLOT, we could add an heuristic like: "if all the axes between ABS_MISC and ABS_MT_SLOT are available, then ABS_MT_SLOT does not mean multitouch, but ABS_MISC+6." Cheers, Benjamin > #define ABS_MT_SLOT 0x2f /* MT slot being modified */ > #define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ > #define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ > @@ -837,21 +853,8 @@ struct input_keymap_entry { > #define ABS_MT_TOOL_X 0x3c /* Center X tool position */ > #define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ > > -/* Drums and guitars (mostly toys) */ > -#define ABS_TOM_FAR_LEFT 0x40 > -#define ABS_TOM_LEFT 0x41 > -#define ABS_TOM_RIGHT 0x42 > -#define ABS_TOM_FAR_RIGHT 0x43 > -#define ABS_CYMBAL_FAR_LEFT 0x44 > -#define ABS_CYMBAL_LEFT 0x45 > -#define ABS_CYMBAL_RIGHT 0x46 > -#define ABS_CYMBAL_FAR_RIGHT 0x47 > -#define ABS_BASS 0x48 > -#define ABS_HI_HAT 0x49 > -#define ABS_FRET_BOARD 0x4a /* Guitar fret board, vertical pos */ > -#define ABS_WHAMMY_BAR 0x4b /* Guitar whammy bar (or vibrato) */ > - > -#define ABS_MAX 0x4f > +/* EVIOCSABS() does not support ABS_MAX > 0x3f */ > +#define ABS_MAX 0x3f > #define ABS_CNT (ABS_MAX+1) > > /* > -- > 1.8.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 -- 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
Hi On Sat, Sep 7, 2013 at 10:24 AM, Benjamin Tissoires <benjamin.tissoires@gmail.com> wrote: > On Sat, Sep 7, 2013 at 9:31 AM, David Herrmann <dh.herrmann@gmail.com> wrote: >> Hi >> >> On Sat, Sep 7, 2013 at 5:22 AM, Dmitry Torokhov >> <dmitry.torokhov@gmail.com> wrote: >>> On Fri, Sep 06, 2013 at 06:00:29PM -0700, Linus Torvalds wrote: >>>> On Fri, Sep 6, 2013 at 5:58 PM, Dmitry Torokhov >>>> <dmitry.torokhov@gmail.com> wrote: >>>> > >>>> > The patch still had problems so I'd revert it and wii bits and try again later. >>>> >>>> Ok. Mind giving me a list of commits, so that I don't have to do a >>>> trial-and-error thing? I know the primary commit that causes problems, >>>> but there are commits that seem to depend on it.. >>> >>> >>> Sorry for the delay. I believe you need to revert: >>> >>> 73f8645 HID: wiimote: add support for Guitar-Hero drums >>> 61e0065 Input: introduce BTN/ABS bits for drums and guitars >>> >>> Hmm... there also was "HID: wiimote: add support for Guitar-Hero >>> guitars" but I do not see it... >> >> The commits to revert are: >> >> commit 61e00655e9cb82e034eb72b95a51072e718d14a7 >> Author: David Herrmann <dh.herrmann@gmail.com> >> Date: Mon Aug 26 19:14:46 2013 +0200 >> >> Input: introduce BTN/ABS bits for drums and guitars >> >> commit 73f8645db1913ab2475ec3c1cee8d5f748963aa7 >> Author: David Herrmann <dh.herrmann@gmail.com> >> Date: Mon Aug 26 19:14:47 2013 +0200 >> >> HID: wiimote: add support for Guitar-Hero drums >> >> commit 8e22ecb603c88b7397ab2e80b7b0811b8a1318f5 >> Author: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com> >> Date: Mon Aug 26 19:14:48 2013 +0200 >> >> HID: wiimote: add support for Guitar-Hero guitars >> >> Last one is not from me, so I guess that's why Dmitry missed it. And >> sorry for the delay, stupid UTC+1.. >> The bug only occurs for multi-touch devices (their ABS_* bits are >>>0x1f), that's why I didn't see it happening during my tests.. >> >> If you didn't revert it, yet, attached (and inlined) is a patch which >> reverts the ABS_MAX change and just moves the new identifiers in >> between the others. On top of 3.12-rc1, this should fix all issues. If >> you already reverted the patches, I guess we will just push it in >> linux-next again and wait for 3.13? >> >> Thanks >> David >> >> (Inlined patch below, also attached to mail as gmail hates long lines) >> >> From 13d549489b4bd2eade719cf2ec8c37724be6e640 Mon Sep 17 00:00:00 2001 >> From: David Herrmann <dh.herrmann@gmail.com> >> Date: Sat, 7 Sep 2013 09:17:11 +0200 >> Subject: [PATCH] Revert/Fix "Input: introduce BTN/ABS bits for drums and >> guitars" >> >> commit 61e00655e9cb82e034eb72b95a51072e718d14a7 >> Author: David Herrmann <dh.herrmann@gmail.com> >> Date: Mon Aug 26 19:14:46 2013 +0200 >> >> Input: introduce BTN/ABS bits for drums and guitars >> >> This introduced several new identifiers for drums/guitar devices. However, >> it also increased ABS_MAX. Unfortunately, 0x3f is already the maximum we >> can use for ABS_MAX due to the limited EVIOCSABS ioctl. >> >> Revert this commit and move the new identifiers somewhere in between. We >> need to figure out some other way to add new identifiers for the future. >> To avoid this happening again, I added a small comment. >> >> This also fixes an issue where xf86-input-evdev failed on EVIOCGABS() due >> to ABS_MAX not being a full mask. >> >> Markus Trippelsdorf <markus@trippelsdorf.de> >> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> >> --- >> include/linux/mod_devicetable.h | 2 +- >> include/uapi/linux/input.h | 33 ++++++++++++++++++--------------- >> 2 files changed, 19 insertions(+), 16 deletions(-) >> >> diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h >> index 329aa30..45e9214 100644 >> --- a/include/linux/mod_devicetable.h >> +++ b/include/linux/mod_devicetable.h >> @@ -277,7 +277,7 @@ struct pcmcia_device_id { >> #define INPUT_DEVICE_ID_KEY_MIN_INTERESTING 0x71 >> #define INPUT_DEVICE_ID_KEY_MAX 0x2ff >> #define INPUT_DEVICE_ID_REL_MAX 0x0f >> -#define INPUT_DEVICE_ID_ABS_MAX 0x4f >> +#define INPUT_DEVICE_ID_ABS_MAX 0x3f >> #define INPUT_DEVICE_ID_MSC_MAX 0x07 >> #define INPUT_DEVICE_ID_LED_MAX 0x0f >> #define INPUT_DEVICE_ID_SND_MAX 0x07 >> diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h >> index 76457ee..12c33f8 100644 >> --- a/include/uapi/linux/input.h >> +++ b/include/uapi/linux/input.h >> @@ -819,8 +819,24 @@ struct input_keymap_entry { >> >> #define ABS_VOLUME 0x20 >> >> +/* Drums and guitars (mostly toys) */ >> +#define ABS_TOM_FAR_LEFT 0x21 >> +#define ABS_TOM_LEFT 0x22 >> +#define ABS_TOM_RIGHT 0x23 >> +#define ABS_TOM_FAR_RIGHT 0x24 >> +#define ABS_CYMBAL_FAR_LEFT 0x25 >> +#define ABS_CYMBAL_LEFT 0x26 >> +#define ABS_CYMBAL_RIGHT 0x27 >> + >> #define ABS_MISC 0x28 >> >> +/* Drums and guitars continued */ >> +#define ABS_CYMBAL_FAR_RIGHT 0x29 >> +#define ABS_BASS 0x2a >> +#define ABS_HI_HAT 0x2b >> +#define ABS_FRET_BOARD 0x2c /* Guitar fret board, vertical pos */ >> +#define ABS_WHAMMY_BAR 0x2d /* Guitar whammy bar (or vibrato) */ >> + > > I'm not particularly in favor of adding semantic between ABS_MISC and > ABS_MT_SLOT. We already did that once with the ABS_MT_* stuff, and the > problem comes from devices showing several axes, not really mapped > (like joysticks). These axes are all mapped to ABS_MISC, but the input > core function map them to ABS_MISC+N. This way some joysticks show > multitouch axes and are treated as such, whereas the axis are just > regular absolute axes. (not sure I am clear enough... :( ) > > Currently, nothing is done in X or in Wayland to detect these false > multitouch devices with a large number of absolute axes. But if we > keep a hole between ABS_MISC and ABS_MT_SLOT, we could add an > heuristic like: > "if all the axes between ABS_MISC and ABS_MT_SLOT are available, then > ABS_MT_SLOT does not mean multitouch, but ABS_MISC+6." So Xorg just took control over the unused ABS_* slots? Hmm, then I have no other idea than reverting the 3 patches. Sadly, that also means there's no way for us to easily extend the ABS_* bits. If someone has an idea, let me know. But for now I'll just put the drums/guitar patches on hold. Thanks David -- 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
Hi On Sat, Sep 7, 2013 at 11:20 AM, Benjamin Tissoires <benjamin.tissoires@gmail.com> wrote: > > > On 07/09/13 10:57, David Herrmann wrote: >> Hi >> >> On Sat, Sep 7, 2013 at 10:24 AM, Benjamin Tissoires >>> I'm not particularly in favor of adding semantic between ABS_MISC and >>> ABS_MT_SLOT. We already did that once with the ABS_MT_* stuff, and the >>> problem comes from devices showing several axes, not really mapped >>> (like joysticks). These axes are all mapped to ABS_MISC, but the input >>> core function map them to ABS_MISC+N. This way some joysticks show >>> multitouch axes and are treated as such, whereas the axis are just >>> regular absolute axes. (not sure I am clear enough... :( ) >>> >>> Currently, nothing is done in X or in Wayland to detect these false >>> multitouch devices with a large number of absolute axes. But if we >>> keep a hole between ABS_MISC and ABS_MT_SLOT, we could add an >>> heuristic like: >>> "if all the axes between ABS_MISC and ABS_MT_SLOT are available, then >>> ABS_MT_SLOT does not mean multitouch, but ABS_MISC+6." >> >> So Xorg just took control over the unused ABS_* slots? Hmm, then I >> have no other idea than reverting the 3 patches. >> Sadly, that also means there's no way for us to easily extend the >> ABS_* bits. If someone has an idea, let me know. But for now I'll just >> put the drums/guitar patches on hold. >> > > Well, I would say the "problem" lies in hid-input.c, line 919: >>>>>>>>>>>>>>>>>>> > while (usage->code <= max && test_and_set_bit(usage->code, bit)) > usage->code = find_next_zero_bit(bit, max + 1, usage->code); >>>>>>>>>>>>>>>>>>> > > So if you try to map several times ABS_MISC or any other axis, then you are mapping ABS_MISC+N. > > Anyway, the only problematic axis is ABS_MISC, as it is a default fallback. IMO, we can extend the ABS_* definitions after ABS_MT_TOOL_Y, like the original patch you proposed without having to deal with the above problem (though this will report the patch series to v3.13). > To prevent future mistakes, we should just define ABS_MISC0 (0x29) to ABS_MISC5 (0x2e) to fill the hole. As mentioned earlier in this thread, ABS_* is limited to 0x3f, so we have only 2 more free slots after ABS_MT_TOOL_Y. We will figure something out for 3.13. I will also prepare a patch for ABS_MISC0-MISC5. Regards David -- 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 Sat, Sep 7, 2013 at 12:31 AM, David Herrmann <dh.herrmann@gmail.com> wrote: > > The bug only occurs for multi-touch devices (their ABS_* bits are >>0x1f), that's why I didn't see it happening during my tests.. It definitely affects keyboards too. That's how I noticed it. That is with the logitech "universal" receiver, though, so maybe that counts as a potential multi-touch device.. Linus -- 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
David Herrmann <dh.herrmann@gmail.com> wrote: >Hi > >On Sat, Sep 7, 2013 at 11:20 AM, Benjamin Tissoires ><benjamin.tissoires@gmail.com> wrote: >> >> >> On 07/09/13 10:57, David Herrmann wrote: >>> Hi >>> >>> On Sat, Sep 7, 2013 at 10:24 AM, Benjamin Tissoires >>>> I'm not particularly in favor of adding semantic between ABS_MISC >and >>>> ABS_MT_SLOT. We already did that once with the ABS_MT_* stuff, and >the >>>> problem comes from devices showing several axes, not really mapped >>>> (like joysticks). These axes are all mapped to ABS_MISC, but the >input >>>> core function map them to ABS_MISC+N. This way some joysticks show >>>> multitouch axes and are treated as such, whereas the axis are just >>>> regular absolute axes. (not sure I am clear enough... :( ) >>>> >>>> Currently, nothing is done in X or in Wayland to detect these false >>>> multitouch devices with a large number of absolute axes. But if we >>>> keep a hole between ABS_MISC and ABS_MT_SLOT, we could add an >>>> heuristic like: >>>> "if all the axes between ABS_MISC and ABS_MT_SLOT are available, >then >>>> ABS_MT_SLOT does not mean multitouch, but ABS_MISC+6." >>> >>> So Xorg just took control over the unused ABS_* slots? Hmm, then I >>> have no other idea than reverting the 3 patches. >>> Sadly, that also means there's no way for us to easily extend the >>> ABS_* bits. If someone has an idea, let me know. But for now I'll >just >>> put the drums/guitar patches on hold. >>> >> >> Well, I would say the "problem" lies in hid-input.c, line 919: >>>>>>>>>>>>>>>>>>>> >> while (usage->code <= max && test_and_set_bit(usage->code, >bit)) >> usage->code = find_next_zero_bit(bit, max + 1, >usage->code); >>>>>>>>>>>>>>>>>>>> >> >> So if you try to map several times ABS_MISC or any other axis, then >you are mapping ABS_MISC+N. >> >> Anyway, the only problematic axis is ABS_MISC, as it is a default >fallback. IMO, we can extend the ABS_* definitions after ABS_MT_TOOL_Y, >like the original patch you proposed without having to deal with the >above problem (though this will report the patch series to v3.13). >> To prevent future mistakes, we should just define ABS_MISC0 (0x29) to >ABS_MISC5 (0x2e) to fill the hole. > >As mentioned earlier in this thread, ABS_* is limited to 0x3f, so we >have only 2 more free slots after ABS_MT_TOOL_Y. >We will figure something out for 3.13. > >I will also prepare a patch for ABS_MISC0-MISC5. > Regardless of whether we settle on using lower bits or bite the bullet and extend number of axis I think it's time for EVIOCGABS2 that would take axis in its argument instead of encoding it in ioctl number - that idea wasn't that good. Thanks.
Hi Linus On Sat, Sep 7, 2013 at 6:52 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Sat, Sep 7, 2013 at 12:31 AM, David Herrmann <dh.herrmann@gmail.com> wrote: >> >> The bug only occurs for multi-touch devices (their ABS_* bits are >>>0x1f), that's why I didn't see it happening during my tests.. > > It definitely affects keyboards too. That's how I noticed it. That is > with the logitech "universal" receiver, though, so maybe that counts > as a potential multi-touch device.. I have been quite wrong with that statement, yepp. xorg-evdev fetches the whole device-information. So if a keyboard provides an affected ABS_* bit, it'll break, too. My ancient hardware didn't use any of the higher ABS bits, though. I'm sorry for the troubles caused. ABS_MAX must be at most 0x3f. So please, go ahead and revert the 3 mentioned patches. Thanks David -- 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
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 329aa30..45e9214 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -277,7 +277,7 @@ struct pcmcia_device_id { #define INPUT_DEVICE_ID_KEY_MIN_INTERESTING 0x71 #define INPUT_DEVICE_ID_KEY_MAX 0x2ff #define INPUT_DEVICE_ID_REL_MAX 0x0f -#define INPUT_DEVICE_ID_ABS_MAX 0x4f +#define INPUT_DEVICE_ID_ABS_MAX 0x3f #define INPUT_DEVICE_ID_MSC_MAX 0x07 #define INPUT_DEVICE_ID_LED_MAX 0x0f #define INPUT_DEVICE_ID_SND_MAX 0x07 diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index 76457ee..12c33f8 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h @@ -819,8 +819,24 @@ struct input_keymap_entry { #define ABS_VOLUME 0x20 +/* Drums and guitars (mostly toys) */ +#define ABS_TOM_FAR_LEFT 0x21 +#define ABS_TOM_LEFT 0x22 +#define ABS_TOM_RIGHT 0x23 +#define ABS_TOM_FAR_RIGHT 0x24 +#define ABS_CYMBAL_FAR_LEFT 0x25 +#define ABS_CYMBAL_LEFT 0x26 +#define ABS_CYMBAL_RIGHT 0x27 + #define ABS_MISC 0x28 +/* Drums and guitars continued */ +#define ABS_CYMBAL_FAR_RIGHT 0x29 +#define ABS_BASS 0x2a +#define ABS_HI_HAT 0x2b +#define ABS_FRET_BOARD 0x2c /* Guitar fret board, vertical pos */ +#define ABS_WHAMMY_BAR 0x2d /* Guitar whammy bar (or vibrato) */ + #define ABS_MT_SLOT 0x2f /* MT slot being modified */ #define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ #define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ @@ -837,21 +853,8 @@ struct input_keymap_entry { #define ABS_MT_TOOL_X 0x3c /* Center X tool position */ #define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ -/* Drums and guitars (mostly toys) */ -#define ABS_TOM_FAR_LEFT 0x40 -#define ABS_TOM_LEFT 0x41 -#define ABS_TOM_RIGHT 0x42 -#define ABS_TOM_FAR_RIGHT 0x43 -#define ABS_CYMBAL_FAR_LEFT 0x44 -#define ABS_CYMBAL_LEFT 0x45 -#define ABS_CYMBAL_RIGHT 0x46 -#define ABS_CYMBAL_FAR_RIGHT 0x47 -#define ABS_BASS 0x48 -#define ABS_HI_HAT 0x49 -#define ABS_FRET_BOARD 0x4a /* Guitar fret board, vertical pos */ -#define ABS_WHAMMY_BAR 0x4b /* Guitar whammy bar (or vibrato) */ - -#define ABS_MAX 0x4f +/* EVIOCSABS() does not support ABS_MAX > 0x3f */ +#define ABS_MAX 0x3f #define ABS_CNT (ABS_MAX+1) /*