Message ID | 20230501113010.891786-4-mweigand@mweigand.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Small fixes to the cyttsp5 touchscreen driver | expand |
On Mon, May 01, 2023 at 01:30:07PM +0200, Maximilian Weigand wrote: > Triggering the interrupt of the IRQ_TYPE_LEVEL_LOW type can lead to > probing issues with the device for the current driver (encountered on > the Pine64 PineNote). Basically the interrupt would be triggered before > certain commands were sent to the device, leading to a race between the > device responding fast enough and the irq handler fetching a data frame > from it. Actually all devices currently using the driver already use a > falling edge trigger. I'd prefer we adjusted the driver to handle level interrupts properly. Thanks.
Hi, On 02.05.23 02:24, Dmitry Torokhov wrote: > On Mon, May 01, 2023 at 01:30:07PM +0200, Maximilian Weigand wrote: >> Triggering the interrupt of the IRQ_TYPE_LEVEL_LOW type can lead to >> probing issues with the device for the current driver (encountered on >> the Pine64 PineNote). Basically the interrupt would be triggered before >> certain commands were sent to the device, leading to a race between the >> device responding fast enough and the irq handler fetching a data frame >> from it. Actually all devices currently using the driver already use a >> falling edge trigger. > > I'd prefer we adjusted the driver to handle level interrupts properly. Ok, I will have a look at that. Just to be clear: The driver should work only with level interrupts, or should it optimally support both level and falling edge triggers? Thanks and best regards Maximilian
On Tue, May 02, 2023 at 04:23:54PM +0200, Maximilian Weigand wrote: > Hi, > > On 02.05.23 02:24, Dmitry Torokhov wrote: > > On Mon, May 01, 2023 at 01:30:07PM +0200, Maximilian Weigand wrote: > >> Triggering the interrupt of the IRQ_TYPE_LEVEL_LOW type can lead to > >> probing issues with the device for the current driver (encountered on > >> the Pine64 PineNote). Basically the interrupt would be triggered before > >> certain commands were sent to the device, leading to a race between the > >> device responding fast enough and the irq handler fetching a data frame > >> from it. Actually all devices currently using the driver already use a > >> falling edge trigger. > > > > I'd prefer we adjusted the driver to handle level interrupts properly. > > Ok, I will have a look at that. Just to be clear: The driver should work > only with level interrupts, or should it optimally support both level > and falling edge triggers? Optimally a driver would work well with both. Thanks.
diff --git a/Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml b/Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml index 1959ec394768..a77203c78d6e 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml +++ b/Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml @@ -83,7 +83,7 @@ examples: pinctrl-names = "default"; pinctrl-0 = <&tp_reset_ds203>; interrupt-parent = <&pio>; - interrupts = <1 5 IRQ_TYPE_LEVEL_LOW>; + interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; reset-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; vdd-supply = <®_touch>;