Hi,
we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
Stick) on 6.2 kernel:
https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
The device reports the wrong values as the movements, e.g. sometimes a
value such as 255, 254 or -255 is returned while usually it should be
a smaller value like -1 or 2.
The evtest on 6.2.x kernel shows the wrong values like:
Event: time 1680037542.898747, type 2 (EV_REL), code 0 (REL_X), value 255
Event: time 1680037542.898747, -------------- SYN_REPORT ------------
Event: time 1680037543.145196, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1680037543.145196, -------------- SYN_REPORT ------------
Event: time 1680037543.175087, type 2 (EV_REL), code 1 (REL_Y), value -255
Event: time 1680037543.175087, -------------- SYN_REPORT ------------
Event: time 1680037543.185421, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1680037543.185421, type 2 (EV_REL), code 1 (REL_Y), value -255
Event: time 1680037543.185421, -------------- SYN_REPORT ------------
while 6.1.x kernel shows the correct values like:
Event: time 1680037386.318058, type 2 (EV_REL), code 0 (REL_X), value -1
Event: time 1680037386.318058, type 2 (EV_REL), code 1 (REL_Y), value -1
Event: time 1680037386.318058, -------------- SYN_REPORT ------------
Event: time 1680037386.328087, type 2 (EV_REL), code 0 (REL_X), value -1
Event: time 1680037386.328087, type 2 (EV_REL), code 1 (REL_Y), value -1
Event: time 1680037386.328087, -------------- SYN_REPORT ------------
Event: time 1680037386.338046, type 2 (EV_REL), code 0 (REL_X), value -1
Event: time 1680037386.338046, type 2 (EV_REL), code 1 (REL_Y), value -2
Event: time 1680037386.338046, -------------- SYN_REPORT ------------
I couldn't see any relevant changes in alps.c between those versions,
so this is likely a breakage in a lower layer.
Could you guys take a look?
Thanks!
Takashi
Hi Takashi,
On 3/29/23 10:16, Takashi Iwai wrote:
> Hi,
>
> we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
> Stick) on 6.2 kernel:
> https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
>
> The device reports the wrong values as the movements, e.g. sometimes a
> value such as 255, 254 or -255 is returned while usually it should be
> a smaller value like -1 or 2.
>
> The evtest on 6.2.x kernel shows the wrong values like:
>
> Event: time 1680037542.898747, type 2 (EV_REL), code 0 (REL_X), value 255
> Event: time 1680037542.898747, -------------- SYN_REPORT ------------
> Event: time 1680037543.145196, type 2 (EV_REL), code 0 (REL_X), value 1
> Event: time 1680037543.145196, -------------- SYN_REPORT ------------
> Event: time 1680037543.175087, type 2 (EV_REL), code 1 (REL_Y), value -255
> Event: time 1680037543.175087, -------------- SYN_REPORT ------------
> Event: time 1680037543.185421, type 2 (EV_REL), code 0 (REL_X), value 1
> Event: time 1680037543.185421, type 2 (EV_REL), code 1 (REL_Y), value -255
> Event: time 1680037543.185421, -------------- SYN_REPORT ------------
>
> while 6.1.x kernel shows the correct values like:
>
> Event: time 1680037386.318058, type 2 (EV_REL), code 0 (REL_X), value -1
> Event: time 1680037386.318058, type 2 (EV_REL), code 1 (REL_Y), value -1
> Event: time 1680037386.318058, -------------- SYN_REPORT ------------
> Event: time 1680037386.328087, type 2 (EV_REL), code 0 (REL_X), value -1
> Event: time 1680037386.328087, type 2 (EV_REL), code 1 (REL_Y), value -1
> Event: time 1680037386.328087, -------------- SYN_REPORT ------------
> Event: time 1680037386.338046, type 2 (EV_REL), code 0 (REL_X), value -1
> Event: time 1680037386.338046, type 2 (EV_REL), code 1 (REL_Y), value -2
> Event: time 1680037386.338046, -------------- SYN_REPORT ------------
>
> I couldn't see any relevant changes in alps.c between those versions,
> so this is likely a breakage in a lower layer.
>
> Could you guys take a look?
I believe this is caused by the kernel now using -funsigned-char
everywhere and this should be fixed by this commit:
https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=754ff5060daf5a1cf4474eff9b4edeb6c17ef7ab
And there is a similar issue in the focaltech touchpad driver:
https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=8980f190947ba29f23110408e712444884b74251
Dmitry, since this is hitting 6.2 users, perhaps you can send
a pull-req for your current for-linus branch to get the fix
on its way to stable ?
Regards,
Hans
On Wed, 29 Mar 2023 11:22:18 +0200,
Hans de Goede wrote:
>
> Hi Takashi,
>
> On 3/29/23 10:16, Takashi Iwai wrote:
> > Hi,
> >
> > we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
> > Stick) on 6.2 kernel:
> > https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
> >
> > The device reports the wrong values as the movements, e.g. sometimes a
> > value such as 255, 254 or -255 is returned while usually it should be
> > a smaller value like -1 or 2.
> >
> > The evtest on 6.2.x kernel shows the wrong values like:
> >
> > Event: time 1680037542.898747, type 2 (EV_REL), code 0 (REL_X), value 255
> > Event: time 1680037542.898747, -------------- SYN_REPORT ------------
> > Event: time 1680037543.145196, type 2 (EV_REL), code 0 (REL_X), value 1
> > Event: time 1680037543.145196, -------------- SYN_REPORT ------------
> > Event: time 1680037543.175087, type 2 (EV_REL), code 1 (REL_Y), value -255
> > Event: time 1680037543.175087, -------------- SYN_REPORT ------------
> > Event: time 1680037543.185421, type 2 (EV_REL), code 0 (REL_X), value 1
> > Event: time 1680037543.185421, type 2 (EV_REL), code 1 (REL_Y), value -255
> > Event: time 1680037543.185421, -------------- SYN_REPORT ------------
> >
> > while 6.1.x kernel shows the correct values like:
> >
> > Event: time 1680037386.318058, type 2 (EV_REL), code 0 (REL_X), value -1
> > Event: time 1680037386.318058, type 2 (EV_REL), code 1 (REL_Y), value -1
> > Event: time 1680037386.318058, -------------- SYN_REPORT ------------
> > Event: time 1680037386.328087, type 2 (EV_REL), code 0 (REL_X), value -1
> > Event: time 1680037386.328087, type 2 (EV_REL), code 1 (REL_Y), value -1
> > Event: time 1680037386.328087, -------------- SYN_REPORT ------------
> > Event: time 1680037386.338046, type 2 (EV_REL), code 0 (REL_X), value -1
> > Event: time 1680037386.338046, type 2 (EV_REL), code 1 (REL_Y), value -2
> > Event: time 1680037386.338046, -------------- SYN_REPORT ------------
> >
> > I couldn't see any relevant changes in alps.c between those versions,
> > so this is likely a breakage in a lower layer.
> >
> > Could you guys take a look?
>
> I believe this is caused by the kernel now using -funsigned-char
> everywhere and this should be fixed by this commit:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=754ff5060daf5a1cf4474eff9b4edeb6c17ef7ab
Ah, that makes sense!
I'll build a test kernel with this fix and ask the reporter for
testing.
> And there is a similar issue in the focaltech touchpad driver:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=8980f190947ba29f23110408e712444884b74251
>
> Dmitry, since this is hitting 6.2 users, perhaps you can send
> a pull-req for your current for-linus branch to get the fix
> on its way to stable ?
That'll be great.
Thanks!
Takashi
On Wed, 29 Mar 2023 11:28:53 +0200,
Takashi Iwai wrote:
>
> On Wed, 29 Mar 2023 11:22:18 +0200,
> Hans de Goede wrote:
> >
> > Hi Takashi,
> >
> > On 3/29/23 10:16, Takashi Iwai wrote:
> > > Hi,
> > >
> > > we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
> > > Stick) on 6.2 kernel:
> > > https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
> > >
> > > The device reports the wrong values as the movements, e.g. sometimes a
> > > value such as 255, 254 or -255 is returned while usually it should be
> > > a smaller value like -1 or 2.
> > >
> > > The evtest on 6.2.x kernel shows the wrong values like:
> > >
> > > Event: time 1680037542.898747, type 2 (EV_REL), code 0 (REL_X), value 255
> > > Event: time 1680037542.898747, -------------- SYN_REPORT ------------
> > > Event: time 1680037543.145196, type 2 (EV_REL), code 0 (REL_X), value 1
> > > Event: time 1680037543.145196, -------------- SYN_REPORT ------------
> > > Event: time 1680037543.175087, type 2 (EV_REL), code 1 (REL_Y), value -255
> > > Event: time 1680037543.175087, -------------- SYN_REPORT ------------
> > > Event: time 1680037543.185421, type 2 (EV_REL), code 0 (REL_X), value 1
> > > Event: time 1680037543.185421, type 2 (EV_REL), code 1 (REL_Y), value -255
> > > Event: time 1680037543.185421, -------------- SYN_REPORT ------------
> > >
> > > while 6.1.x kernel shows the correct values like:
> > >
> > > Event: time 1680037386.318058, type 2 (EV_REL), code 0 (REL_X), value -1
> > > Event: time 1680037386.318058, type 2 (EV_REL), code 1 (REL_Y), value -1
> > > Event: time 1680037386.318058, -------------- SYN_REPORT ------------
> > > Event: time 1680037386.328087, type 2 (EV_REL), code 0 (REL_X), value -1
> > > Event: time 1680037386.328087, type 2 (EV_REL), code 1 (REL_Y), value -1
> > > Event: time 1680037386.328087, -------------- SYN_REPORT ------------
> > > Event: time 1680037386.338046, type 2 (EV_REL), code 0 (REL_X), value -1
> > > Event: time 1680037386.338046, type 2 (EV_REL), code 1 (REL_Y), value -2
> > > Event: time 1680037386.338046, -------------- SYN_REPORT ------------
> > >
> > > I couldn't see any relevant changes in alps.c between those versions,
> > > so this is likely a breakage in a lower layer.
> > >
> > > Could you guys take a look?
> >
> > I believe this is caused by the kernel now using -funsigned-char
> > everywhere and this should be fixed by this commit:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=754ff5060daf5a1cf4474eff9b4edeb6c17ef7ab
>
> Ah, that makes sense!
>
> I'll build a test kernel with this fix and ask the reporter for
> testing.
And it's confirmed that the commit above fixes the problem indeed.
thanks,
Takashi
On 29.03.23 11:22, Hans de Goede wrote:
> On 3/29/23 10:16, Takashi Iwai wrote:
>> we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
>> Stick) on 6.2 kernel:
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
>
> [...]
>
> I believe this is caused by the kernel now using -funsigned-char
> everywhere and this should be fixed by this commit:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=754ff5060daf5a1cf4474eff9b4edeb6c17ef7ab
>
> And there is a similar issue in the focaltech touchpad driver:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=8980f190947ba29f23110408e712444884b74251
>
> Dmitry, since this is hitting 6.2 users, perhaps you can send
> a pull-req for your current for-linus branch to get the fix
> on its way to stable ?
Hmm, no reply from Dmitry here or any other mail from him on lore since
a week. No big deal, but nevertheless a bit unfortunate, as I totally
agree: it would be really good to get this regressions fixed rather
sooner than later.
Is there any in-official de-facto co-maintainer for input that could
help out? CCing Jonathan, who according to get_maintainer.pl regularly
contributes to the input subsystem.
Guess if nothing happens soon I'll ask Linus to merge those two changes
directly, maybe he'll take them.
Ciao, Thorsten
On Thu, Mar 30, 2023 at 10:23:49AM +0200, Takashi Iwai wrote:
> On Wed, 29 Mar 2023 11:28:53 +0200,
> Takashi Iwai wrote:
> >
> > On Wed, 29 Mar 2023 11:22:18 +0200,
> > Hans de Goede wrote:
> > >
> > > Hi Takashi,
> > >
> > > On 3/29/23 10:16, Takashi Iwai wrote:
> > > > Hi,
> > > >
> > > > we've received a bug report about Thinkpad TrackPoint (ALPS DualPoint
> > > > Stick) on 6.2 kernel:
> > > > https://bugzilla.opensuse.org/show_bug.cgi?id=1209805
> > > >
> > > > The device reports the wrong values as the movements, e.g. sometimes a
> > > > value such as 255, 254 or -255 is returned while usually it should be
> > > > a smaller value like -1 or 2.
> > > >
> > > > The evtest on 6.2.x kernel shows the wrong values like:
> > > >
> > > > Event: time 1680037542.898747, type 2 (EV_REL), code 0 (REL_X), value 255
> > > > Event: time 1680037542.898747, -------------- SYN_REPORT ------------
> > > > Event: time 1680037543.145196, type 2 (EV_REL), code 0 (REL_X), value 1
> > > > Event: time 1680037543.145196, -------------- SYN_REPORT ------------
> > > > Event: time 1680037543.175087, type 2 (EV_REL), code 1 (REL_Y), value -255
> > > > Event: time 1680037543.175087, -------------- SYN_REPORT ------------
> > > > Event: time 1680037543.185421, type 2 (EV_REL), code 0 (REL_X), value 1
> > > > Event: time 1680037543.185421, type 2 (EV_REL), code 1 (REL_Y), value -255
> > > > Event: time 1680037543.185421, -------------- SYN_REPORT ------------
> > > >
> > > > while 6.1.x kernel shows the correct values like:
> > > >
> > > > Event: time 1680037386.318058, type 2 (EV_REL), code 0 (REL_X), value -1
> > > > Event: time 1680037386.318058, type 2 (EV_REL), code 1 (REL_Y), value -1
> > > > Event: time 1680037386.318058, -------------- SYN_REPORT ------------
> > > > Event: time 1680037386.328087, type 2 (EV_REL), code 0 (REL_X), value -1
> > > > Event: time 1680037386.328087, type 2 (EV_REL), code 1 (REL_Y), value -1
> > > > Event: time 1680037386.328087, -------------- SYN_REPORT ------------
> > > > Event: time 1680037386.338046, type 2 (EV_REL), code 0 (REL_X), value -1
> > > > Event: time 1680037386.338046, type 2 (EV_REL), code 1 (REL_Y), value -2
> > > > Event: time 1680037386.338046, -------------- SYN_REPORT ------------
> > > >
> > > > I couldn't see any relevant changes in alps.c between those versions,
> > > > so this is likely a breakage in a lower layer.
> > > >
> > > > Could you guys take a look?
> > >
> > > I believe this is caused by the kernel now using -funsigned-char
> > > everywhere and this should be fixed by this commit:
> > >
> > > https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=754ff5060daf5a1cf4474eff9b4edeb6c17ef7ab
> >
> > Ah, that makes sense!
> >
> > I'll build a test kernel with this fix and ask the reporter for
> > testing.
>
> And it's confirmed that the commit above fixes the problem indeed.
Sorry for sitting on this, I just sent a pull request and it was merged.
Thanks.
--
Dmitry