On Sat, 2010-01-16 at 20:26 -0500, Andy Walls wrote: > On Sat, 2010-01-16 at 23:56 +0200, Igor M. Liplianin wrote: > > On 16 января 2010 21:55:52 Andy Walls wrote: > > > I have checked in more changes to > > > > > > http://linuxtv.org/hg/~awalls/cx23885-ir2 > > > > > > Please test again using these module parameters: > > > > > > modprobe cx25840 ir_debug=2 debug=2 > > > modprobe cx23885 ir_input_debug=2 irq_debug=7 debug=7 > > > > > > I have removed the spurious interrupt handling code - it was bogus. The real problems are: 1. performing AV Core i2c transactions from an IRQ context is bad 2. the cx25840 module needs locking to prevent i2c transaction contention during the AV Core register reads and writes. I have implemented and checked in a change for #1. Now the AV_CORE interrupt gets disabled and a work handler is scheduled to deal with the IR controller on the AV core. When the work handler is done, it will re-enable the AV_CORE interrupt. I have not implmented a change for #2 yet. I have not added locking to protect cx25840_read() and cx25840_write() functions. This will take time to get right. You may test these latest changes if you want, but I won't be surprised if things don't work on occasion. I have tested IR loopback with my HVR-1250 and things are fine for me, but I have no video interrupts coming in either. Regards, Andy > OK. I think I finally have guessed what is going on: > > 1. The cx23885_irq_handler is called for the AV_CORE when something else > in the cx23885 or cx25840 module is accessing that I2C bus. > > 2. The I2C bus adapter mutex in the i2c_subsystem stays locked so the > cx23885_irq_handler() and cx25840_irq_handler() cannot read the AV core > registers since the I2C subsystem returns -EINVAL and 0 for the data. > > 3. The interrupt handler keeps getting called because it never clears > the interrupt condition in the AV Core. > > I think I have to do some work in the cx25840 module and the cx23885 > module to handle locking of the AV Core I2C client and I2C bus 3. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html