On Mon, Feb 28, 2011 at 08:56:27PM +0800, Daniel Kurtz wrote: > Some Synaptics image sensors report samples at less than 80 Samples/sec. > Thus, the inter-sample gap is longer than 13 ms (more like 17-25 ms). > > With a 13ms timeout, every sample was processed twice: > 1) Once when ReadHwState() returned valid data. > 2) 13ms later, when the scheduled timer would expire. > > The value 50ms is chosen arbitrarily higher than the expected slowest > trackpad reporting interval, but short enough not to be noticeable by > a human user. > > Signed-off-by: Daniel Kurtz <[email protected]> > --- > src/synaptics.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/src/synaptics.c b/src/synaptics.c > index 56ce725..0b2d7a1 100644 > --- a/src/synaptics.c > +++ b/src/synaptics.c > @@ -1870,7 +1870,7 @@ ComputeDeltas(SynapticsPrivate *priv, const struct > SynapticsHwState *hw, > > /* to create fluid edge motion, call back 'soon' > * even in the absence of new hardware events */ > - delay = MIN(delay, 13); > + delay = MIN(delay, 50); > > if (priv->count_packet_finger <= 3) /* min. 3 packets, see get_delta() */ > goto skip; /* skip the lot */ > -- > 1.7.3.1
I wonder - wouldn't the better fix be to cancel the timer if the data was processed or if new data would come in? Cheers, Peter _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
