request_irq in I2C driver causes kernel to freeze during probe, but if done later - no problem!

Mark Brown broonie at opensource.wolfsonmicro.com
Mon Mar 29 06:01:37 EDT 2010


On Sat, Mar 27, 2010 at 01:12:23AM +0000, Ben Dooks wrote:
> On Sat, Mar 27, 2010 at 01:41:52AM +0100, Ulf Samuelsson wrote:

> > I tried doing an I2C transfer inside the interrupt routine
> > (this is my only way of logging)
> > and then the I2C probe routine locked up already when
> > doing the request_irq.

> i2c transfers can sleep, thus you need somet thread or work-queue to
> process them. 

Or with current (post 2.6.29, IIRC 2.6.33 or later) kernels use a
threaded IRQ handler for the I2C interactions.



More information about the linux-arm-kernel mailing list