Re: [PATCH v1 03/63] Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary

From: Jiada Wang
Date: Wed Aug 21 2019 - 09:26:42 EST

Hi Dmitry

On 2019/08/17 2:16, Dmitry Torokhov wrote:
On Fri, Aug 16, 2019 at 05:28:52PM +0900, Jiada Wang wrote:
From: Nick Dyer <nick.dyer@xxxxxxxxxxx>

The workaround of reading all messages until an invalid is received is a
way of forcing the CHG line high, which means that when using
edge-triggered interrupts the interrupt can be acquired.

With level-triggered interrupts the workaround is unnecessary.

Also, most recent maXTouch chips have a feature called RETRIGEN which, when
enabled, reasserts the interrupt line every cycle if there are messages
waiting. This also makes the workaround unnecessary.

Note: the RETRIGEN feature is only in some firmware versions/chips, it's
not valid simply to enable the bit.

Instead of trying to work around of misconfiguration for IRQ/firmware,
can we simply error out of probe if we see a level interrupt with
!RETRIGEN firmware?

I think for old firmwares, which doesn't support RETRIGEN feature, this workaround is needed, otherwise we will break all old firmwares, which configured with edge-triggered IRQ

for recent firmwares which support RETRIGEN feature, we can fail probe, if RETRIGEN is not enabled, and configured with edge-triggered IRQ.

what is your thought?