Re: [PATCH 6/6] Input: elantech - add v3 hardware support

Seth Forshee
2011-08-19T12:50:30Z

On Fri, Aug 19, 2011 at 02:41:01PM +0200, Éric Piel wrote:
> Op 19-08-11 14:13, Seth Forshee schreef:
> >On Fri, Aug 19, 2011 at 04:29:57PM +0800, JJ Ding wrote:
> >>>You should only report the ABS_[XY] coordinates when fingers != 0. The
> >>>xorg synaptics module sees the values reported in that case as
> >>>legitimate. This is causing me to see strange behaviors when scrolling
> >>>with two-finger drags.
> >>AFAIK, though v2 and v3 differ in packet format, they really report the
> >>same data to the userspace. In this version of v3 support, I even try to
> >>make v2 and v3 report all the data in the same sequnce. If you're seeing
> >>this issue, maybe we should do the same with v2?
> >
> >Actually neither v1 nor v2 reports ABS_[XY] unless fingers != 0. In v2
> >the reporting is in a switch statement on the number of fingers, and 0
> >is unhandled.
>
> Yes, in other words, in the case of v1 or v2, the switch(fingers)
> does nothing if fingers == 0.
>
> Maybe you could do put these 3 lines inside a "if (fingers != 0)":
> + input_report_abs(dev, ABS_X, x1);
> + input_report_abs(dev, ABS_Y, y1);
> + elantech_report_semi_mt_data(dev, fingers, x1, y1, x2, y2);

I don't think elantech_report_semi_mt_data() should be moved inside the
condition. It's doing the right thing when fingers is 0.