Questions about synaptics coordinate

Peter Hutterer peter.hutterer at who-t.net
Wed Mar 28 23:39:48 PDT 2012


On Tue, Mar 27, 2012 at 12:38:01PM +0800, Leon Shaw wrote:
> Hi Peter,
> 
> I looked into eventcomm.c and got confused.
> 
> 1. Shouldn't apply_st_scaling be something like:
> (value - st_min[axis]) * proto_data->st_to_mt_scale[axis] + priv->minx_or_y;
> instead of
> value * proto_data->st_to_mt_scale[axis] + proto_data->st_to_mt_offset[axis];
> since st_min is normally not 0?

yes, you're right, this appears to be broken. Can you submit a patch please?
rename the st_to_mt_offset to st_min since we don't seem to need it
elsewhere.

> 2. My device seems reporting coordinates beyond minimum and maximum
> value in priv when I touch the edges. Is there some thing wrong?

no, that's a synaptics "feature". the ranges the device reports are the
ones seen from a "default" finger, if your finger is larger or smaller, the
actual ranges you can trigger on the device are different. bit of a pain,
the main problem is that the driver assumes these ranges to be something
else and features have piled up on this misunderstanding for years. it'll
take a while to get rid of this.
 
Cheers,
  Peter


More information about the xorg-devel mailing list