Hi, On Mon, Dec 12, 2011 at 08:30:49PM +0200, Felipe Contreras wrote: > 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 believe Samuel has already applied those to the MFD tree. The funny part is that those patches were pending on linux-omap for over 2 months I have refreshed them over and over again and asked for help from other people to test. Everything went smooth on my simple beagle board with no keypad and I couldn't see any issues, unfortunately. Still, 2 months is a whole lot of time to NAK a patch, but nobody said anything so, of course, Samuel assumed it was ok and, like I said above, it worked for my simple GPIO usecase with beagleboard. Oh well, it won't change anything now, Sam has applied Neil's fixes. -- balbi
Attachment:
signature.asc
Description: Digital signature