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 - 23:35:56 EST


On 2019/08/22 2:54, Dmitry Torokhov wrote:
On Wed, Aug 21, 2019 at 10:26:31PM +0900, Jiada Wang wrote:
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

Do you know if there are any? I know Chrome OS firmware have RETRIGEN
activated and they are pretty old (original Pixel is from 2013). But if
we indeed have devices with edge interrupt and old not firmware that
does not retrigger, I guess we'll have to keep it...

Honestly I don't know firmwares/chips which don't support RETRIGEN feature.

BUT Dyer originally authored this patch in 2012, I assume here "old" firmware/chips means, those before 2012.