Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18 января 2010 07:36:52 Andy Walls wrote:
> 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.
It is very same behaviour here. A lot of interrupts without purpose.

>
> I have tested IR loopback with my HVR-1250 and things are fine for me,
> but I have no video interrupts coming in either.
I wonder what is the difference.

>
> 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.

BR

Igor
--
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

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux