Oh, right, it already tests for this case :-) My mistake.
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.