[PATCH 1/9] I2C: mv64xxx: work around signals causing I2C transactions to be aborted
Jean-Francois Moine
moinejf at free.fr
Fri May 17 02:37:43 EDT 2013
On Thu, 16 May 2013 21:30:59 +0100
Russell King <rmk+kernel at arm.linux.org.uk> 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/
More information about the linux-arm-kernel
mailing list