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 Tue, 2010-01-19 at 00:25 +0200, Igor M. Liplianin wrote:
> 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.

I have now fixed the cx25840 module.

I also added a log function for "v4l2-ctl -d /dev/video0 --log-status"
to log the status of the IR controller.


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

a. I set up the IR transmit pin for the HVR-1250 but not the S470 in
cx23885-cards.c:cx23885_ir_init()

b. I set the transmitter invert_level for the Tx pin (a no-op for the
cx23885 IR controller) at the bottom of
cx23885-input.c:cx23885_input_ir_start() for the HVR-1250, but not the
S470.

c. For testing, I add an analog device video node to the HVR1250 for a
debug and test:

diff -r 9128ef95c5a7 -r 1ce2344226c1 linux/drivers/media/video/cx23885/cx23885-cards.c
--- a/linux/drivers/media/video/cx23885/cx23885-cards.c	Sat Jan 09 13:58:18 2010 -0500
+++ b/linux/drivers/media/video/cx23885/cx23885-cards.c	Sat Jan 09 14:31:30 2010 -0500
@@ -104,6 +104,8 @@
 	},
 	[CX23885_BOARD_HAUPPAUGE_HVR1250] = {
 		.name		= "Hauppauge WinTV-HVR1250",
+		.tuner_type	= TUNER_ABSENT,
+		.porta		= CX23885_ANALOG_VIDEO,
 		.portc		= CX23885_MPEG_DVB,
 		.input          = {{
 			.type   = CX23885_VMUX_TELEVISION,



d.  The script of commands I use for testing the HVR-1250 IR Rx with the
IR Tx in hardware loopback is:

#make unload; make unload
#make install

#modprobe cx25840 ir_debug=2 debug=2
#modprobe cx23885 ir_input_debug=2 irq_debug=7 debug=7

#v4l2-ctl -d /dev/video0 --log-status

# Get pin ctrl setting
v4l2-dbg -d /dev/video0 -c 0x44 -g 0x123

# disable tx fifo
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x200 0x4c

# disable tx fifo svc req
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x214 0x20

# disable tx, enable loopback
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x201 0x21

#v4l2-ctl -d /dev/video0 --log-status

# set tx clk div
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x204 1 0

#enable tx fifo
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x200 0xcc

# store test pulse data
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x7f 0x1 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x5f 0x0 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x7f 0x1 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x5f 0x0 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x7f 0x1 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x5f 0x0 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x7f 0x1 0x0
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x23c 0xff 0x5f 0x0 0x0

#v4l2-ctl -d /dev/video0 --log-status

#enable tx
v4l2-dbg -d /dev/video0 -c 0x44 -s 0x201 0x23

#v4l2-ctl -d /dev/video0 --log-status



e. My HVR-1250 doesn't have actual external IR Rx hardware, so I can
only test with loopback.



If my latest changes don't work, I'll probably have to order a CX23885
card with the hardware for actual IR Rx.  Maybe I'll get a TeVii S470
and buy a satellite dish. ;)


Thanks again for all your test efforts.

Regards,
Andy

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