On Thu, 16 May 2013 21:30:59 +0100 Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> wrote: > Do not use interruptible waits in an I2C driver; if a process uses > signals (eg, Xorg uses SIGALRM and SIGPIPE) then these signals can > cause the I2C driver to abort a transaction in progress by another > driver, which can cause that driver to fail. I2C drivers are not > expected to abort transactions on signals. Hi Russell, I had the same problem with my dove drm driver, but I don't fully agree with your solution. Using wait_event_timeout() stops the system, and reading the EDID from an external screen may take some time. Instead, as the problem occurs with the X server on HDMI exchanges, I acted on the tda998x driver, simply masking the SIGALRM and SIGPIPE signals on each drm driver request. This mechanism works fine for me. Patch follows. -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html