Re: [PATCH] input: goodix: Poll the 'buffer status' bit before reading data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey,

Sorry I took this long to look into this.

On Thu, 2017-03-30 at 15:33 +0200, Paul Cercueil wrote:
> The Goodix panel triggers an interrupt on touch events. However, its
> registers will contain the valid values a short time after the
> interrupt, and not when it's raised. At that moment, the 'buffer
> status'
> bit is set.
> 
> Previously, if the 'buffer status' bit was not set when the registers
> were read, the data was discarded and no input event was emitted,
> causing "finger down" or "finger up" events to be missed sometimes.
> 
> This went unnoticed until v4.9, as the DesignWare I2C driver commonly
> used with this driver had enough latency for that bug to never
> trigger.
> 
> Now, in the IRQ handler we will poll (with a timeout)

I don't like the fact that the timeout isn't actually a timeout, but a
loop counter...

>  the 'buffer status'
> bit and process the data of the panel as soon as this bit gets set.

OK.

> Note that the Goodix panel will send a few spurious interrupts after
> the
> 'finger up' event, in which the 'buffer status' bit will never be
> set.

Can you please re-send the patch with diff option that makes it easier
to comment on whole patch? There's various block levels being mixed
because they have a linefeed in common...

I'm also CC:ing Hans to test it out as my Goodix tablet is still out of
commission.

Cheers
--
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



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux