Re: [PATCH 1/5] Input: zinitix - check all available fingers for every touch event
Linus Walleij <[email protected]> Wed, 29 Jul 2026 09:44:59 +0200
| Newsgroups | org.kernel.vger.linux-samsung-soc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAD++jL=QfXJ78pfKy1hV6wGfSYzERUi=-nmqjPfMiXr9xk5+aw@mail.gmail.com> |
On Thu, Jul 23, 2026 at 9:24=E2=80=AFPM Kaustabh Chakraborty <[email protected]> wrote: > When this initial driver was first added to tree, that is, in commit > 26822652c85e ("Input: add zinitix touchscreen driver"), the touch_event > struct had a field called finger_cnt. It was supposed to report how many > fingers are touching the screen. > > But then, in commit e941dc13fd37 ("Input: zinitix - do not report shadow > fingers"), some touchscreens reportedly exposed a bit mask for the > fingers, instead of the count. So the code was changed to bitwise > iteration. > > With my testing on the ZT7548 touchscreen of the Galaxy J6, I find the > former to be true. This shows that there's two valid methods depending > on what hardware the driver is made to work on. > > One solution is to implement both methods, and use some flag to select > between the two. However, this introduces more implementation overhead, > and a possibility of regression on devices the driver is expected to work= . > > Instead, unconditionally check all fingers. The finger_mask field is now > left unused, thus serving as padding bytes in the struct. For each > finger, zinitix_report_finger() is called if the status reports the > SUB_BIT_EXIST bit, so phantom fingers are not going to be a thing. > > Moreover, the android driver [1] does exactly that, so it's a tried > method of implementation. > > Link: https://android.googlesource.com/kernel/bcm/+/23d376ef33aa4c500a5ea= 24a290f029d5f8e2de3/drivers/input/touchscreen/zinitix_touch.c#1942 [1] > Signed-off-by: Kaustabh Chakraborty <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Yours, Linus Walleij