Due to recent reverse engineering efforts, a lot more information is now
available about the internals of the SUR40. We document this in the kernel
driver for future use.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
The SUR40 labels all reported blobs as touch, token, or generic blob.
Previously, all blobs were reported as touch regardless of type, causing
lots of false positives. Present patch fixes this.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 2 ++
1 file changed, 2 insertions(+)
On Sun, Jul 09, 2017 at 08:54:50PM +0200, Florian Echtler wrote:
quoted hunk
Due to recent reverse engineering efforts, a lot more information is now
available about the internals of the SUR40. We document this in the kernel
driver for future use.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
On Sun, Jul 09, 2017 at 08:54:51PM +0200, Florian Echtler wrote:
quoted hunk
The SUR40 labels all reported blobs as touch, token, or generic blob.
Previously, all blobs were reported as touch regardless of type, causing
lots of false positives. Present patch fixes this.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 2 ++
1 file changed, 2 insertions(+)
Good point, I'll send an updated patch ASAP.
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
Best, Florian
On 09.07.2017 23:41, Dmitry Torokhov wrote:
On Sun, Jul 09, 2017 at 08:54:51PM +0200, Florian Echtler wrote:
quoted
The SUR40 labels all reported blobs as touch, token, or generic blob.
Previously, all blobs were reported as touch regardless of type, causing
lots of false positives. Present patch fixes this.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 2 ++
1 file changed, 2 insertions(+)
On Mon, Jul 10, 2017 at 09:11:53AM +0200, Florian Echtler wrote:
Good point, I'll send an updated patch ASAP.
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
It really should, but I think Peter never got around implementing this.
Also, I think it is a good idea to set touch major to max in this case.
I believe that that will help clients that do no understand MT_TOOL_PALM
to still do palm rejection.
Peter?
Best, Florian
On 09.07.2017 23:41, Dmitry Torokhov wrote:
quoted
On Sun, Jul 09, 2017 at 08:54:51PM +0200, Florian Echtler wrote:
quoted
The SUR40 labels all reported blobs as touch, token, or generic blob.
Previously, all blobs were reported as touch regardless of type, causing
lots of false positives. Present patch fixes this.
Signed-off-by: Martin Kaltenbrunner <redacted>
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 2 ++
1 file changed, 2 insertions(+)
On Mon, Jul 10, 2017 at 09:11:53AM +0200, Florian Echtler wrote:
quoted
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
It really should, but I think Peter never got around implementing this.
Also, I think it is a good idea to set touch major to max in this case.
I believe that that will help clients that do no understand MT_TOOL_PALM
to still do palm rejection.
Peter?
Would you consider merging v2 of the patch regardless of the Xorg situation? Right now, it's a useful bugfix in any case, and we can deal with how to represent blobs/palms/tokens later on.
Best, Florian
--
"_Nothing_ brightens up my morning. Coffee simply provides a shade of
grey just above the pitch-black of the infinite depths of the _abyss_."
From: Peter Hutterer <hidden> Date: 2017-07-14 08:24:05
On Fri, Jul 14, 2017 at 09:54:03AM +0200, Florian Echtler wrote:
On Mon, 10 Jul 2017, Dmitry Torokhov wrote:
quoted
On Mon, Jul 10, 2017 at 09:11:53AM +0200, Florian Echtler wrote:
quoted
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
It really should, but I think Peter never got around implementing this.
Also, I think it is a good idea to set touch major to max in this case.
I believe that that will help clients that do no understand MT_TOOL_PALM
to still do palm rejection.
Peter?
Would you consider merging v2 of the patch regardless of the Xorg situation?
Right now, it's a useful bugfix in any case, and we can deal with how to
represent blobs/palms/tokens later on.
sorry about the delay, bit chaotic here. libinput 1.8 was released a week or
so ago and it supports MT_TOOL_PALM, so consider userspace ready for that. I
also have patches to use major/minor for palm detection where appropriate
which will hit git master (my) tonight.
That's the libinput situation sorted I think, don't expect synaptics to
catch up with that though (unless someone ends up writing the patches).
Cheers,
Peter
On Fri, Jul 14, 2017 at 09:54:03AM +0200, Florian Echtler wrote:
quoted
On Mon, 10 Jul 2017, Dmitry Torokhov wrote:
quoted
On Mon, Jul 10, 2017 at 09:11:53AM +0200, Florian Echtler wrote:
quoted
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
It really should, but I think Peter never got around implementing this.
Also, I think it is a good idea to set touch major to max in this case.
I believe that that will help clients that do no understand MT_TOOL_PALM
to still do palm rejection.
Peter?
Would you consider merging v2 of the patch regardless of the Xorg situation?
Right now, it's a useful bugfix in any case, and we can deal with how to
represent blobs/palms/tokens later on.
sorry about the delay, bit chaotic here. libinput 1.8 was released a week or
so ago and it supports MT_TOOL_PALM, so consider userspace ready for that. I
also have patches to use major/minor for palm detection where appropriate
which will hit git master (my) tonight.
Nevermind :-) Just to clarify, I can now set MT_TOOL_PALM on generic blob
objects, and they will still be available in userspace "on request", but will
not be considered as touch points?
Do you know how "legacy" xserver-xorg-input-evdev will handle this case?
And final question: the SUR40 also is able to identify specific patterns as
tokens (so-called "bytetags", see
https://github.com/floe/surface-2.0/blob/master/bytetag/bytetag.pdf ). What
would be a sensible way to expose these to userspace, too? Add another
MT_TOOL_TOKEN type?
Thanks & best regards, Florian
--
SENT FROM MY DEC VT50 TERMINAL
From: Peter Hutterer <hidden> Date: 2017-07-14 22:13:33
On 14/07/2017 19:28 , Florian Echtler wrote:
On 14.07.2017 10:24, Peter Hutterer wrote:
quoted
On Fri, Jul 14, 2017 at 09:54:03AM +0200, Florian Echtler wrote:
quoted
On Mon, 10 Jul 2017, Dmitry Torokhov wrote:
quoted
On Mon, Jul 10, 2017 at 09:11:53AM +0200, Florian Echtler wrote:
quoted
Related question: we first attempted to label non-touch objects as MT_TOOL_PALM,
but it looks like userspace (Xorg in particular) doesn't actually distinguish
between MT_TOOL_* types; is that correct?
It really should, but I think Peter never got around implementing this.
Also, I think it is a good idea to set touch major to max in this case.
I believe that that will help clients that do no understand MT_TOOL_PALM
to still do palm rejection.
Peter?
Would you consider merging v2 of the patch regardless of the Xorg situation?
Right now, it's a useful bugfix in any case, and we can deal with how to
represent blobs/palms/tokens later on.
sorry about the delay, bit chaotic here. libinput 1.8 was released a week or
so ago and it supports MT_TOOL_PALM, so consider userspace ready for that. I
also have patches to use major/minor for palm detection where appropriate
which will hit git master (my) tonight.
Nevermind :-) Just to clarify, I can now set MT_TOOL_PALM on generic blob
objects, and they will still be available in userspace "on request", but will
not be considered as touch points?
Do you know how "legacy" xserver-xorg-input-evdev will handle this case?
sorry, I just went back to read the whole thread and realised this is a touchscreen, not a touchpad. Short answer: we don't have tool type handling in touchscreens because no-one asked for it yet. I can probably get this done by the end of next week. File a bug against libinput and assign it to me please.
That's for libinput. evdev is in maintenance mode, it may be possible to add that bit but it largely depends on when the tool type is set. If it's set in the first event already that's trivial to add (I think).
And final question: the SUR40 also is able to identify specific patterns as
tokens (so-called "bytetags", see
https://github.com/floe/surface-2.0/blob/master/bytetag/bytetag.pdf ). What
would be a sensible way to expose these to userspace, too? Add another
MT_TOOL_TOKEN type?
You'd have to add one for each token here, but that may not be too bad, beyond adding a lot of #defines. The tool type is the value field, so we have 32 bits before we run out. 64 tokens won't make a dent there. Maybe use MT_TOKEN_MIN and MT_TOKEN_MAX to keep the defines in check, though I'd recommend considering more specific naming and lots of documentation to detail what the tokens stand for. And consider whether we want to use something overly specific, userspace won't be happy if we have thirty different vendor-specific token ranges.
Cheers,
Peter