Re: Interrupt issue in twl4030_keypad

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

 



On Mon, Dec 12, 2011 at 08:30:49PM +0200, Felipe Contreras wrote:
> Hi,
> 
> The short version is this: either we revert this patch[1], or we apply
> this patch series[2], as well as its essential fixes[3].
> 
> The long version is this. There's a synchronization issue with the
> current keypad driver and twl core; the irq is marked as handled even
> though the thread that is supposed to handle it hasn't run yet, and
> since it's clear-on-read, and it hasn't been read, it's detected
> again, so they keypad driver receives two interrupt callbacks instead
> of one, and in the second one reads nothing from the i2c register, so
> a key release is assumed. This makes key-presses as simple as shift+a
> impossible.
> 
> In other words, it's totally unreliable. This might not be isolated to
> the keypard driver, but other "nested" interrupts from twl core that
> started using request_threaded_irq prematurely (before it was
> supported by the twl core). But at least I haven't tried those.
> 
> This patch was applied on 2.6.33, which means all versions before 3.2
> are affected, including 3.1.
> 
> What do you think about fixing this on stable kernels?

I think you need to tell me exactly what git commit ids in Linus's tree
that you want to see in the stable kernel releases, which you didn't do
here :(

Also, please use stable@xxxxxxxxxxxxxxx, stable@xxxxxxxxxx has been dead
since August.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux