* ABS_PRESSURE and 0 ranges @ 2012-10-25 12:59 Rolf Eike Beer 2012-10-25 18:34 ` Dmitry Torokhov 0 siblings, 1 reply; 5+ messages in thread From: Rolf Eike Beer @ 2012-10-25 12:59 UTC (permalink / raw) To: linux-input Hi all, as I found out the hard way tslib does the detection if a touchscreen has been "clicked" if the kernel driver says it does not support ABS_PRESSURE. But when the kernel says it can do ABS_PRESSURE tslib will not do it's emulation and just pass on whatever pressure value the kernel sends. So far, so good. Sadly there are some drivers that do: input_set_abs_params(dev, ABS_PRESSURE, 0, 0, 0, 0); Guess what happens: no clicks at all. The question I have is: does the above line make any sense to be in a kernel driver at all? Or is that some voodoo that must be there and it's all tslib fault? Now that I know where the problem is coming from the problem is easily fixable, I'm just wondering which patch to make. Greetings, Eike ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ABS_PRESSURE and 0 ranges 2012-10-25 12:59 ABS_PRESSURE and 0 ranges Rolf Eike Beer @ 2012-10-25 18:34 ` Dmitry Torokhov 2012-10-25 20:11 ` Rolf Eike Beer 0 siblings, 1 reply; 5+ messages in thread From: Dmitry Torokhov @ 2012-10-25 18:34 UTC (permalink / raw) To: Rolf Eike Beer; +Cc: linux-input Hi Rolf, On Thu, Oct 25, 2012 at 02:59:49PM +0200, Rolf Eike Beer wrote: > Hi all, > > as I found out the hard way tslib does the detection if a touchscreen has been > "clicked" if the kernel driver says it does not support ABS_PRESSURE. But when > the kernel says it can do ABS_PRESSURE tslib will not do it's emulation and > just pass on whatever pressure value the kernel sends. > > So far, so good. Sadly there are some drivers that do: > > input_set_abs_params(dev, ABS_PRESSURE, 0, 0, 0, 0); > What drivers are doing this? > Guess what happens: no clicks at all. The question I have is: does the above > line make any sense to be in a kernel driver at all? Or is that some voodoo > that must be there and it's all tslib fault? > > Now that I know where the problem is coming from the problem is easily > fixable, I'm just wondering which patch to make. Well, the limits are strictly advisory for userspace, input core does not perform any clamping or discarding the data that falls outside the limits, so tslib probably should not do that either. Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ABS_PRESSURE and 0 ranges 2012-10-25 18:34 ` Dmitry Torokhov @ 2012-10-25 20:11 ` Rolf Eike Beer 2012-10-25 20:51 ` Dmitry Torokhov 0 siblings, 1 reply; 5+ messages in thread From: Rolf Eike Beer @ 2012-10-25 20:11 UTC (permalink / raw) To: Dmitry Torokhov, linux-input [-- Attachment #1: Type: text/plain, Size: 1537 bytes --] You wrote: > Hi Rolf, > > On Thu, Oct 25, 2012 at 02:59:49PM +0200, Rolf Eike Beer wrote: > > Hi all, > > > > as I found out the hard way tslib does the detection if a touchscreen has > > been "clicked" if the kernel driver says it does not support > > ABS_PRESSURE. But when the kernel says it can do ABS_PRESSURE tslib will > > not do it's emulation and just pass on whatever pressure value the kernel > > sends. > > > > So far, so good. Sadly there are some drivers that do: > > > > input_set_abs_params(dev, ABS_PRESSURE, 0, 0, 0, 0); > > What drivers are doing this? git grep 'ABS_PRESSURE, 0, 0, 0, 0' drivers/input/ > > Guess what happens: no clicks at all. The question I have is: does the > > above line make any sense to be in a kernel driver at all? Or is that > > some voodoo that must be there and it's all tslib fault? > > > > Now that I know where the problem is coming from the problem is easily > > fixable, I'm just wondering which patch to make. > > Well, the limits are strictly advisory for userspace, input core does > not perform any clamping or discarding the data that falls outside the > limits, so tslib probably should not do that either. My main concern is that if the driver says it will only ever give pressure values from 0 to 0, what useful stuff may that ever be? And since the driver says it supports presure touchscreen will wait for the driver to report it. Since it will never do it (or could at most return a 0), then there is nothing that could ever become a valid click event. Eike [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ABS_PRESSURE and 0 ranges 2012-10-25 20:11 ` Rolf Eike Beer @ 2012-10-25 20:51 ` Dmitry Torokhov 2012-10-25 21:45 ` Rolf Eike Beer 0 siblings, 1 reply; 5+ messages in thread From: Dmitry Torokhov @ 2012-10-25 20:51 UTC (permalink / raw) To: Rolf Eike Beer; +Cc: linux-input On Thursday, October 25, 2012 10:11:27 PM Rolf Eike Beer wrote: > You wrote: > > Hi Rolf, > > > > On Thu, Oct 25, 2012 at 02:59:49PM +0200, Rolf Eike Beer wrote: > > > Hi all, > > > > > > as I found out the hard way tslib does the detection if a touchscreen > > > has > > > been "clicked" if the kernel driver says it does not support > > > ABS_PRESSURE. But when the kernel says it can do ABS_PRESSURE tslib will > > > not do it's emulation and just pass on whatever pressure value the > > > kernel > > > sends. > > > > > > So far, so good. Sadly there are some drivers that do: > > > > > > input_set_abs_params(dev, ABS_PRESSURE, 0, 0, 0, 0); > > > > What drivers are doing this? > > git grep 'ABS_PRESSURE, 0, 0, 0, 0' drivers/input/ > > > > Guess what happens: no clicks at all. The question I have is: does the > > > above line make any sense to be in a kernel driver at all? Or is that > > > some voodoo that must be there and it's all tslib fault? > > > > > > Now that I know where the problem is coming from the problem is easily > > > fixable, I'm just wondering which patch to make. > > > > Well, the limits are strictly advisory for userspace, input core does > > not perform any clamping or discarding the data that falls outside the > > limits, so tslib probably should not do that either. > > My main concern is that if the driver says it will only ever give pressure > values from 0 to 0, what useful stuff may that ever be? And since the driver > says it supports presure touchscreen will wait for the driver to report it. > Since it will never do it (or could at most return a 0), then there is > nothing that could ever become a valid click event. Once again, the limits are simply advisory and can even be adjusted from userspace (EVIOCSABS). So ucb1400_ts does report true pressure so all is good there, but tsc40 is not. I think the claim for ABS_PRESSURE is left over from time when tslib did not think that device without ABS_PRESSURE was a touchscreen. I'll remove it from the driver. Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ABS_PRESSURE and 0 ranges 2012-10-25 20:51 ` Dmitry Torokhov @ 2012-10-25 21:45 ` Rolf Eike Beer 0 siblings, 0 replies; 5+ messages in thread From: Rolf Eike Beer @ 2012-10-25 21:45 UTC (permalink / raw) To: Dmitry Torokhov, linux-input [-- Attachment #1: Type: text/plain, Size: 2276 bytes --] You wrote: > On Thursday, October 25, 2012 10:11:27 PM Rolf Eike Beer wrote: > > You wrote: > > > Hi Rolf, > > > > > > On Thu, Oct 25, 2012 at 02:59:49PM +0200, Rolf Eike Beer wrote: > > > > Hi all, > > > > > > > > as I found out the hard way tslib does the detection if a touchscreen > > > > has > > > > been "clicked" if the kernel driver says it does not support > > > > ABS_PRESSURE. But when the kernel says it can do ABS_PRESSURE tslib > > > > will > > > > not do it's emulation and just pass on whatever pressure value the > > > > kernel > > > > sends. > > > > > > > > So far, so good. Sadly there are some drivers that do: > > > > > > > > input_set_abs_params(dev, ABS_PRESSURE, 0, 0, 0, 0); > > > > > > What drivers are doing this? > > > > git grep 'ABS_PRESSURE, 0, 0, 0, 0' drivers/input/ > > > > > > Guess what happens: no clicks at all. The question I have is: does the > > > > above line make any sense to be in a kernel driver at all? Or is that > > > > some voodoo that must be there and it's all tslib fault? > > > > > > > > Now that I know where the problem is coming from the problem is easily > > > > fixable, I'm just wondering which patch to make. > > > > > > Well, the limits are strictly advisory for userspace, input core does > > > not perform any clamping or discarding the data that falls outside the > > > limits, so tslib probably should not do that either. > > > > My main concern is that if the driver says it will only ever give pressure > > values from 0 to 0, what useful stuff may that ever be? And since the > > driver says it supports presure touchscreen will wait for the driver to > > report it. Since it will never do it (or could at most return a 0), then > > there is nothing that could ever become a valid click event. > > Once again, the limits are simply advisory and can even be adjusted from > userspace (EVIOCSABS). > > So ucb1400_ts does report true pressure so all is good there, but tsc40 is > not. I think the claim for ABS_PRESSURE is left over from time when tslib > did not think that device without ABS_PRESSURE was a touchscreen. I'll > remove it from the driver. Thanks, so I know what part to patch. Please backport that to stable, too, so tslib will work with that driver even on stable kernels. Eike [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-25 21:45 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-25 12:59 ABS_PRESSURE and 0 ranges Rolf Eike Beer 2012-10-25 18:34 ` Dmitry Torokhov 2012-10-25 20:11 ` Rolf Eike Beer 2012-10-25 20:51 ` Dmitry Torokhov 2012-10-25 21:45 ` Rolf Eike Beer
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).