Thread (26 messages) 26 messages, 5 authors, 2016-09-06

Re: [PATCH 3/4] input/alps: Allow touchsticks to report pressure

From: Peter Hutterer <hidden>
Date: 2016-06-13 00:21:25

On Fri, Jun 10, 2016 at 12:57:12PM +0200, Hans de Goede wrote:
Hi,

On 10-06-16 12:21, Ben Gamari wrote:
quoted
Hans de Goede [off-list ref] writes:
quoted
Hi,
quoted
@@ -2996,6 +2999,10 @@ int alps_init(struct psmouse *psmouse)

 		input_set_capability(dev2, EV_REL, REL_X);
 		input_set_capability(dev2, EV_REL, REL_Y);
+		if (priv->flags & ALPS_DUALPOINT_WITH_PRESSURE) {
+			input_set_capability(dev2, EV_ABS, ABS_PRESSURE);
+			input_set_abs_params(dev2, ABS_PRESSURE, 0, 127, 0, 0);
+		}
 		input_set_capability(dev2, EV_KEY, BTN_LEFT);
 		input_set_capability(dev2, EV_KEY, BTN_RIGHT);
 		input_set_capability(dev2, EV_KEY, BTN_MIDDLE);
This seems wrong, reporting ABS_PRESSURE on a relative device. And yes, this
really is a relative device (it sends repeated delta events when you
keep pushing at the same force, rather then sending a single coordinate
value).

Maybe we need a REL_PRESSURE for cases like this ?
Fair enough. However, if such a thing were added how would one specify
the range of the value (which seems necessary for the pressure to have
any meaning whatsoever)?
Good question, adding Peter Hutterer to the Cc.

Peter, some of the newer alps pointing sticks can also report pressure,
which is somewhat of an ill fit for the relative events interface
otherwise used with pointing sticks, do you have any suggestions on
how to deal with this ?
I think ABS_PRESSURE is fine here provided the ranges are set up correctly
and he device really sends an absolute value. It might confuse userspace at
first but there is no real requirement for a device to stick to one
interface only.

REL_PRESSURE would be a lot harder to handle because we don't have a
reference frame on what the permitted axis ranges could be and it would make
the actual value effectively meaningless (without a MOUSE_DPI-like database)

Cheers,
   Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help