Re: [PATCH V2 05/10] input: touchscreen: ili210x: Convert to threaded IRQ

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

 



On Fri, Dec 21, 2018 at 09:42:54PM +0100, Marek Vasut wrote:
> On 12/21/2018 09:30 AM, Dmitry Torokhov wrote:
> > On Fri, Dec 21, 2018 at 03:30:36AM +0100, Marek Vasut wrote:
> >> On 12/21/2018 02:44 AM, Dmitry Torokhov wrote:
> >>> Hi Marek,
> >>
> >> Hi,
> >>
> >>> On Thu, Dec 20, 2018 at 09:43:00PM +0100, Marek Vasut wrote:
> >>>> Get rid of the workqueue, just spawn a threaded IRQ and handle
> >>>
> >>> Not really...
> >>
> >> Fixed
> >>
> >>>> @@ -279,7 +275,6 @@ static int ili210x_i2c_remove(struct i2c_client *client)
> >>>>  	struct ili210x *priv = i2c_get_clientdata(client);
> >>>>  
> >>>>  	sysfs_remove_group(&client->dev.kobj, &ili210x_attr_group);
> >>>> -	free_irq(priv->client->irq, priv);
> >>>
> >>> Now this is unsafe, as interrupt is released after work is cancelled and
> >>> interrupt may schedule work again.
> >>>
> >>> If we can prove that it works, I liked your original change better. Can
> >>> you try addind sleep of let's say 5 seconds to the interrupt thread
> >>> just before it returns and see if you get release events reported. The
> >>> idea is to verify the sequence:
> >>>
> >>> - chip raises interrupt line
> >>> - ISR reads chip state
> >>> - in response chip makes intterrupt line inactive?
> >>
> >> No, the IRQ line stays active as long as there's touch event happening
> >> (someone has a finger on the touch panel).
> > 
> > Sorry for asking the same question over and over, but have you verified
> > that the touch controller definitely does not raise interrupt on release
> > (the procedure that I outlined above should help determining that)?
> 
> No problem. I had a scope connected to the IRQ line, the line goes LOW
> on touch-down and high on touch-release.

OK, so we definitely need a work or a timer to handle release.

Thanks.

-- 
Dmitry



[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