Dear Dmitry, > > > It is important not to rely on the i2c_master_recv return value: > > > Ignoring failed transfers sometimes causes hanging touch events, as the > > > controller thinks that the transfer succeeded and won't resend the event. > > > > This statement worries me, because you are basically end up reporting > > garbage. Does the controller sends all active contacts in each frame, or > > only changed ones? You can use INPUT_MT_DROP_UNUSED to let input core > > automatically drop contacts that were not reported within the last > > frame. And fire up a timer to release everything if last transfer errors > > out. > Thank you for the suggestions. I indeed felt uncomfortable about > ignoring the return value of i2c_master_recv() but INPUT_MT_DROP_UNUSED > helped and now it works awesome! I've just got another EXC3000-Controller-Board to play with and it looks like I need to add that timer you suggested: I still get sporadically hanging touches with this one :( So I will send you another patch the moment I figured out how. Best Regards, Ahmet -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html