* Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
@ 2010-01-16 4:02 Andy Walls
2010-01-16 12:50 ` Igor M. Liplianin
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Andy Walls @ 2010-01-16 4:02 UTC (permalink / raw)
To: linux-media; +Cc: Andreas Tschirpke, Matthias Fechner, Igor M. Liplianin, stoth
Hi,
I've got reworked changes for the IR for the TeVii S470 and the HVR-1250
at
http://linuxtv.org/hg/~awalls/cx23885-ir2
Thanks to loaner HVR-1250 hardware from Devin Heitmueller,
I've solved the infinite interrupt problem with the CX23885 AV core and
have reworked the change set against the latest v4l-dvb.
Please test.
Note
1. the parameters for the IR controller setup in
linux/drivers/video/cx23885-input.c may need to be tweaked to set the
proper "params.modulation" and "params.invert_level" before you get
keypresses decoded.
2. I guessed at a reasonable set of remote keycodes for the TeVii S470,
so don't be surprised if the button mapping isn't quite right.
3. These module settings may be helpful for debug and test:
# modprobe cx25840 debug=2 ir_debug=2
# modprobe cx23885 debug=7
Also directing "kern.*" messages to /var/log/messages
in /etc/rsyslogd.conf and giving rsyslod a SIGHUP may be helpful for
capturing the messages.
4. In case I didn't fix the infinite interrupts problem for the TeVii
S470: Before testing, blacklist the cx23885 module
in /etc/modprobe.d/blacklist, so that when you reboot, the module
doesn't automatically load. If your system seems to be very busy with
inifinite interrupts upon cx23885 module load, stop testing (and let me
know).
Regards,
Andy
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 4:02 Andy Walls
@ 2010-01-16 12:50 ` Igor M. Liplianin
2010-01-16 13:06 ` Igor M. Liplianin
2010-01-16 14:00 ` Igor M. Liplianin
2 siblings, 0 replies; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-16 12:50 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On 16 января 2010 06:02:41 Andy Walls wrote:
> Hi,
>
> I've got reworked changes for the IR for the TeVii S470 and the HVR-1250
> at
>
> http://linuxtv.org/hg/~awalls/cx23885-ir2
>
> Thanks to loaner HVR-1250 hardware from Devin Heitmueller,
> I've solved the infinite interrupt problem with the CX23885 AV core and
> have reworked the change set against the latest v4l-dvb.
>
> Please test.
>
> Note
>
> 1. the parameters for the IR controller setup in
> linux/drivers/video/cx23885-input.c may need to be tweaked to set the
> proper "params.modulation" and "params.invert_level" before you get
> keypresses decoded.
>
> 2. I guessed at a reasonable set of remote keycodes for the TeVii S470,
> so don't be surprised if the button mapping isn't quite right.
>
> 3. These module settings may be helpful for debug and test:
>
> # modprobe cx25840 debug=2 ir_debug=2
> # modprobe cx23885 debug=7
>
> Also directing "kern.*" messages to /var/log/messages
> in /etc/rsyslogd.conf and giving rsyslod a SIGHUP may be helpful for
> capturing the messages.
>
> 4. In case I didn't fix the infinite interrupts problem for the TeVii
> S470: Before testing, blacklist the cx23885 module
> in /etc/modprobe.d/blacklist, so that when you reboot, the module
> doesn't automatically load. If your system seems to be very busy with
> inifinite interrupts upon cx23885 module load, stop testing (and let me
> know).
>
> Regards,
> Andy
Hi
modprobe cx23885 gives "nobody cared" :
Creating IR device irrcv0
irq 16: nobody cared (try booting with the "irqpoll" option)
Pid: 0, comm: swapper Not tainted 2.6.33-rc4 #3
Call Trace:
[<c1054700>] ? __report_bad_irq+0x24/0x69
[<c1054707>] ? __report_bad_irq+0x2b/0x69
[<c105482c>] ? note_interrupt+0xe7/0x13f
[<c1054d66>] ? handle_fasteoi_irq+0x7a/0x97
[<c1003e80>] ? handle_irq+0x38/0x40
[<c10036d8>] ? do_IRQ+0x38/0x8e
[<c1002ca9>] ? common_interrupt+0x29/0x30
[<c100796e>] ? mwait_idle+0x7a/0x7f
[<c1001ab3>] ? cpu_idle+0x37/0x4c
[<c1648774>] ? start_kernel+0x29a/0x29d
handlers:
[<c1332132>] (usb_hcd_irq+0x0/0x59)
[<f87cdd88>] (cx23885_irq+0x0/0x4e0 [cx23885])
Disabling IRQ #16
Igor
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 4:02 Andy Walls
2010-01-16 12:50 ` Igor M. Liplianin
@ 2010-01-16 13:06 ` Igor M. Liplianin
2010-01-16 14:00 ` Igor M. Liplianin
2 siblings, 0 replies; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-16 13:06 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On 16 января 2010 06:02:41 Andy Walls wrote:
> Hi,
>
> I've got reworked changes for the IR for the TeVii S470 and the HVR-1250
> at
>
> http://linuxtv.org/hg/~awalls/cx23885-ir2
>
> Thanks to loaner HVR-1250 hardware from Devin Heitmueller,
> I've solved the infinite interrupt problem with the CX23885 AV core and
> have reworked the change set against the latest v4l-dvb.
>
> Please test.
>
> Note
>
> 1. the parameters for the IR controller setup in
> linux/drivers/video/cx23885-input.c may need to be tweaked to set the
> proper "params.modulation" and "params.invert_level" before you get
> keypresses decoded.
>
> 2. I guessed at a reasonable set of remote keycodes for the TeVii S470,
> so don't be surprised if the button mapping isn't quite right.
>
> 3. These module settings may be helpful for debug and test:
>
> # modprobe cx25840 debug=2 ir_debug=2
> # modprobe cx23885 debug=7
>
> Also directing "kern.*" messages to /var/log/messages
> in /etc/rsyslogd.conf and giving rsyslod a SIGHUP may be helpful for
> capturing the messages.
>
> 4. In case I didn't fix the infinite interrupts problem for the TeVii
> S470: Before testing, blacklist the cx23885 module
> in /etc/modprobe.d/blacklist, so that when you reboot, the module
> doesn't automatically load. If your system seems to be very busy with
> inifinite interrupts upon cx23885 module load, stop testing (and let me
> know).
>
> Regards,
> Andy
However, modprobe cx23885 card=3
and RC5 remote gives some events.
cx25840 3-0044: IRQ Status: tsr rsr ror rby
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: IR receiver hardware FIFO overrun
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr ror rby
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: IR receiver hardware FIFO overrun
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr rby
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr ror rby
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: IR receiver hardware FIFO overrun
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr rto
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: rx read: 1605444 ns space
cx25840 3-0044: rx read: 1748852 ns mark
cx25840 3-0044: rx read: 1618778 ns space
cx25840 3-0044: rx read: 1713000 ns mark
cx25840 3-0044: rx read: end of rx
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr rto ror
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: IR receiver hardware FIFO overrun
cx25840 3-0044: AV Core IRQ status (exit):
cx25840 3-0044: rx read: 779667 ns space
cx25840 3-0044: rx read: 1737741 ns mark
cx25840 3-0044: rx read: 1618630 ns space
cx25840 3-0044: rx read: 1737593 ns mark
cx25840 3-0044: rx read: 1618630 ns space
cx25840 3-0044: rx read: 1738481 ns mark
cx25840 3-0044: rx read: 1617889 ns space
cx25840 3-0044: rx read: 1738926 ns mark
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: IRQ Status: tsr rsr rto ror
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: IR receiver hardware FIFO overrun
--
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 4:02 Andy Walls
2010-01-16 12:50 ` Igor M. Liplianin
2010-01-16 13:06 ` Igor M. Liplianin
@ 2010-01-16 14:00 ` Igor M. Liplianin
2010-01-16 19:55 ` Andy Walls
2 siblings, 1 reply; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-16 14:00 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On 16 января 2010 06:02:41 Andy Walls wrote:
> Hi,
>
> I've got reworked changes for the IR for the TeVii S470 and the HVR-1250
> at
>
> http://linuxtv.org/hg/~awalls/cx23885-ir2
>
> Thanks to loaner HVR-1250 hardware from Devin Heitmueller,
> I've solved the infinite interrupt problem with the CX23885 AV core and
> have reworked the change set against the latest v4l-dvb.
>
> Please test.
>
> Note
>
> 1. the parameters for the IR controller setup in
> linux/drivers/video/cx23885-input.c may need to be tweaked to set the
> proper "params.modulation" and "params.invert_level" before you get
> keypresses decoded.
It works properly with settings
params.modulation = false;
params.invert_level = true;
But after couple seconds :(
cx25840 3-0044: IRQ Status: tsr rsr rto
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: rx read: 9046778 ns mark
cx25840 3-0044: rx read: 2206333 ns space
cx25840 3-0044: rx read: 606926 ns mark
cx25840 3-0044: rx read: end of rx
cx25840 3-0044: IRQ Status: tsr rsr rto
cx25840 3-0044: IRQ Enables: rse rte roe
cx25840 3-0044: rx read: 9055815 ns mark
cx25840 3-0044: rx read: 2203519 ns space
cx25840 3-0044: rx read: 582481 ns mark
cx25840 3-0044: rx read: end of rx
irq 16: nobody cared (try booting with the "irqpoll" option)
Pid: 2971, comm: X Not tainted 2.6.33-rc4 #3
Call Trace:
[<c1054700>] ? __report_bad_irq+0x24/0x69
[<c1054707>] ? __report_bad_irq+0x2b/0x69
[<c105482c>] ? note_interrupt+0xe7/0x13f
[<c1054d66>] ? handle_fasteoi_irq+0x7a/0x97
[<c1003e80>] ? handle_irq+0x38/0x40
[<c10036d8>] ? do_IRQ+0x38/0x8e
[<c1002ca9>] ? common_interrupt+0x29/0x30
[<c109cb00>] ? __pollwait+0x76/0xa5
[<c13d4000>] ? unix_poll+0x14/0x89
[<c137c496>] ? sock_poll+0xc/0xe
[<c109c4ff>] ? do_select+0x2a1/0x42d
[<c109ca8a>] ? __pollwait+0x0/0xa5
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109cb2f>] ? pollwake+0x0/0x65
[<c109c7f0>] ? core_sys_select+0x165/0x21b
[<f8cb0318>] ? i915_gem_object_set_to_cpu_domain+0x2b/0xdb [i915]
[<f878535a>] ? drm_ioctl+0x0/0x2a4 [drm]
[<c109ab89>] ? vfs_ioctl+0x1c/0x7d
[<c109b13b>] ? do_vfs_ioctl+0x4aa/0x4e5
[<c1047341>] ? ktime_get_ts+0xd3/0xdb
[<c109ca69>] ? sys_select+0x6e/0x8f
[<c1425105>] ? syscall_call+0x7/0xb
handlers:
[<c1332132>] (usb_hcd_irq+0x0/0x59)
[<f8aafd88>] (cx23885_irq+0x0/0x4e0 [cx23885])
>
> 2. I guessed at a reasonable set of remote keycodes for the TeVii S470,
> so don't be surprised if the button mapping isn't quite right.
>
> 3. These module settings may be helpful for debug and test:
>
> # modprobe cx25840 debug=2 ir_debug=2
> # modprobe cx23885 debug=7
>
> Also directing "kern.*" messages to /var/log/messages
> in /etc/rsyslogd.conf and giving rsyslod a SIGHUP may be helpful for
> capturing the messages.
>
> 4. In case I didn't fix the infinite interrupts problem for the TeVii
> S470: Before testing, blacklist the cx23885 module
> in /etc/modprobe.d/blacklist, so that when you reboot, the module
> doesn't automatically load. If your system seems to be very busy with
> inifinite interrupts upon cx23885 module load, stop testing (and let me
> know).
>
> Regards,
> Andy
--
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 14:00 ` Igor M. Liplianin
@ 2010-01-16 19:55 ` Andy Walls
2010-01-16 21:56 ` Igor M. Liplianin
0 siblings, 1 reply; 15+ messages in thread
From: Andy Walls @ 2010-01-16 19:55 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On Sat, 2010-01-16 at 16:00 +0200, Igor M. Liplianin wrote:
> On 16 января 2010 06:02:41 Andy Walls wrote:
> > Hi,
> >
> > I've got reworked changes for the IR for the TeVii S470 and the HVR-1250
> > at
> >
> > http://linuxtv.org/hg/~awalls/cx23885-ir2
> >
> > Thanks to loaner HVR-1250 hardware from Devin Heitmueller,
> > I've solved the infinite interrupt problem with the CX23885 AV core and
> > have reworked the change set against the latest v4l-dvb.
> >
> > Please test.
> >
> > Note
> >
> > 1. the parameters for the IR controller setup in
> > linux/drivers/video/cx23885-input.c may need to be tweaked to set the
> > proper "params.modulation" and "params.invert_level" before you get
> > keypresses decoded.
>
> It works properly with settings
>
> params.modulation = false;
> params.invert_level = true;
Thanks. I have checked in a change the code for this.
> But after couple seconds :(
>
> cx25840 3-0044: IRQ Status: tsr rsr rto
> cx25840 3-0044: IRQ Enables: rse rte roe
> cx25840 3-0044: rx read: 9046778 ns mark
> cx25840 3-0044: rx read: 2206333 ns space
> cx25840 3-0044: rx read: 606926 ns mark
> cx25840 3-0044: rx read: end of rx
> cx25840 3-0044: IRQ Status: tsr rsr rto
> cx25840 3-0044: IRQ Enables: rse rte roe
> cx25840 3-0044: rx read: 9055815 ns mark
> cx25840 3-0044: rx read: 2203519 ns space
> cx25840 3-0044: rx read: 582481 ns mark
> cx25840 3-0044: rx read: end of rx
This is still good. :)
Those are NEC repeat sequences, but you probably know that already.
> irq 16: nobody cared (try booting with the "irqpoll" option)
> Pid: 2971, comm: X Not tainted 2.6.33-rc4 #3
> Call Trace:
> [<c1054700>] ? __report_bad_irq+0x24/0x69
[...]
> [<c1425105>] ? syscall_call+0x7/0xb
> handlers:
> [<c1332132>] (usb_hcd_irq+0x0/0x59)
> [<f8aafd88>] (cx23885_irq+0x0/0x4e0 [cx23885])
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 am looking for logging of the interrupt statuses and enables. They
should look something like this:
kernel: cx23885[0]/0: pci_status: 0x08000000 pci_mask: 0x08000001
[...]
kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
kernel: cx25840 6-0044: AV Core IRQ status (entry): ir
kernel: cx25840 6-0044: AV Core ir IRQ status: 0x31 disables: 0x20
kernel: cx25840 6-0044: IR IRQ Status: tsr rsr rto
kernel: cx25840 6-0044: IR IRQ Enables: rse rte roe
kernel: cx25840 6-0044: AV Core audio IRQ status: 0x80 disables: 0xff
kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
kernel: cx25840 6-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
kernel: cx25840 6-0044: AV Core IRQ status (exit):
But I was able to reproduce something like this when changing enable the
TSR interrupt enables using v4l2-dbg to change the register manually:
kernel: cx23885[0]/0: pci_status: 0x08300000 pci_mask: 0x08000001
[...]
kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
kernel: cx25840 6-0044: AV Core IRQ status (entry): <---- no irq flags (all 0's)
kernel: cx25840 6-0044: AV Core ir IRQ status: 0x00 disables: 0x00 <---- all 0's
kernel: cx25840 6-0044: AV Core audio IRQ status: 0x00 disables: 0x00 <---- all 0's
kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000 <---- all 0's
kernel: cx25840 6-0044: AV Core video IRQ status: 0x0000 disables: 0x0000 <---- all 0's
kernel: cx25840 6-0044: AV Core IRQ status (exit):
So there are some conditions where the AV Core can signal an interrupt,
but not be ready to be read over the I2C bus.
I have added code to count when these happen and handle them as spurious
interrupts. However, if the code gets too many (20) consecutive
spurious interrupts without at least one real one, it disables the AV
Core interrupt.
Regards,
Andy
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 19:55 ` Andy Walls
@ 2010-01-16 21:56 ` Igor M. Liplianin
2010-01-17 1:26 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-16 21:56 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On 16 января 2010 21:55:52 Andy Walls wrote:
> > cx25840 3-0044: IRQ Status: tsr rsr rto
> > cx25840 3-0044: IRQ Enables: rse rte roe
> > cx25840 3-0044: rx read: 9046778 ns mark
> > cx25840 3-0044: rx read: 2206333 ns space
> > cx25840 3-0044: rx read: 606926 ns mark
> > cx25840 3-0044: rx read: end of rx
> > cx25840 3-0044: IRQ Status: tsr rsr rto
> > cx25840 3-0044: IRQ Enables: rse rte roe
> > cx25840 3-0044: rx read: 9055815 ns mark
> > cx25840 3-0044: rx read: 2203519 ns space
> > cx25840 3-0044: rx read: 582481 ns mark
> > cx25840 3-0044: rx read: end of rx
>
> This is still good. :)
>
> Those are NEC repeat sequences, but you probably know that already.
Remote works until that point
>
> > irq 16: nobody cared (try booting with the "irqpoll" option)
> > Pid: 2971, comm: X Not tainted 2.6.33-rc4 #3
> > Call Trace:
> > [<c1054700>] ? __report_bad_irq+0x24/0x69
>
> [...]
>
> > [<c1425105>] ? syscall_call+0x7/0xb
> > handlers:
> > [<c1332132>] (usb_hcd_irq+0x0/0x59)
> > [<f8aafd88>] (cx23885_irq+0x0/0x4e0 [cx23885])
>
> 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 am looking for logging of the interrupt statuses and enables. They
> should look something like this:
>
>
> kernel: cx23885[0]/0: pci_status: 0x08000000 pci_mask: 0x08000001
> [...]
> kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> kernel: cx25840 6-0044: AV Core IRQ status (entry): ir
> kernel: cx25840 6-0044: AV Core ir IRQ status: 0x31 disables: 0x20
> kernel: cx25840 6-0044: IR IRQ Status: tsr rsr rto
> kernel: cx25840 6-0044: IR IRQ Enables: rse rte roe
> kernel: cx25840 6-0044: AV Core audio IRQ status: 0x80 disables: 0xff
> kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x2000 enables:
> 0x0000 kernel: cx25840 6-0044: AV Core video IRQ status: 0x01a7 disables:
> 0xffff kernel: cx25840 6-0044: AV Core IRQ status (exit):
>
>
> But I was able to reproduce something like this when changing enable the
> TSR interrupt enables using v4l2-dbg to change the register manually:
>
> kernel: cx23885[0]/0: pci_status: 0x08300000 pci_mask: 0x08000001
> [...]
> kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> kernel: cx25840 6-0044: AV Core IRQ status (entry):
> <---- no irq flags (all 0's) kernel: cx25840 6-0044: AV Core ir IRQ
> status: 0x00 disables: 0x00 <---- all 0's kernel: cx25840
> 6-0044: AV Core audio IRQ status: 0x00 disables: 0x00 <---- all 0's
> kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
> <---- all 0's kernel: cx25840 6-0044: AV Core video IRQ status: 0x0000
> disables: 0x0000 <---- all 0's kernel: cx25840 6-0044: AV Core IRQ
> status (exit):
>
> So there are some conditions where the AV Core can signal an interrupt,
> but not be ready to be read over the I2C bus.
>
> I have added code to count when these happen and handle them as spurious
> interrupts. However, if the code gets too many (20) consecutive
> spurious interrupts without at least one real one, it disables the AV
> Core interrupt.
>
>
> Regards,
> Andy
Spurious interrupts counter reaches #20 almost immediately after modprobe.
There is no time to press a key.
DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:01:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xfe800000
cx23885 0000:01:00.0: setting latency timer to 64
IRQ 16/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs
cx23885[0]/0: pci_status: 0x083f4000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
cx25840 3-0044: AV Core IRQ status (entry):
cx25840 3-0044: AV Core ir IRQ status: 0x00 disables: 0x00
cx25840 3-0044: AV Core audio IRQ status: 0x00 disables: 0x00
cx25840 3-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
cx25840 3-0044: AV Core video IRQ status: 0x0000 disables: 0x0000
cx25840 3-0044: AV Core IRQ status (exit):
cx23885[0]/0: consecutive spurious AV Core interrupt #1
[...]
cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
cx25840 3-0044: AV Core IRQ status (entry):
cx25840 3-0044: AV Core ir IRQ status: 0x00 disables: 0x00
cx25840 3-0044: AV Core audio IRQ status: 0x00 disables: 0x00
cx25840 3-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
cx25840 3-0044: AV Core video IRQ status: 0x0000 disables: 0x0000
cx25840 3-0044: AV Core IRQ status (exit):
cx23885[0]/0: consecutive spurious AV Core interrupt #20
cx23885[0]: disabling AV Core/IR interrupt: too many spurious interrupts
input: cx23885 IR (TeVii S470) as /class/input/input24
Creating IR device irrcv0
I commented out interrupt disabling line in order to get some debug to you.
But it occupied gigabytes on hard disk quickly.
[...]
cx23885[0]/0: consecutive spurious AV Core interrupt #95
cx23885[0]: disabling AV Core/IR interrupt: too many spurious interrupts
cx23885[0]/0: pci_status: 0x08304000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
cx25840 3-0044: AV Core IRQ status (entry): ir
cx25840 3-0044: AV Core ir IRQ status: 0x31 disables: 0x20
cx25840 3-0044: IR IRQ Status: tsr rsr rto
cx25840 3-0044: IR IRQ Enables: rse rte roe
cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
cx25840 3-0044: AV Core IRQ status (exit):
cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
cx25840 3-0044: AV Core IRQ status (entry):
cx25840 3-0044: AV Core ir IRQ status: 0x20 disables: 0x20
cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
cx25840 3-0044: AV Core IRQ status (exit):
cx23885[0]/0: consecutive spurious AV Core interrupt #1
cx25840 3-0044: rx read: 9061000 ns mark
cx25840 3-0044: rx read: 2207667 ns space
cx25840 3-0044: rx read: 586333 ns mark
cx25840 3-0044: rx read: end of rx
cx23885 0000:01:00.0: NEC IR auto repeat detected
cx23885[0]/0: pci_status: 0x08304000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
cx25840 3-0044: AV Core IRQ status (entry):
cx25840 3-0044: AV Core ir IRQ status: 0x20 disables: 0x20
cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
cx25840 3-0044: AV Core IRQ status (exit):
cx23885[0]/0: consecutive spurious AV Core interrupt #2
cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
[...]
--
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-16 21:56 ` Igor M. Liplianin
@ 2010-01-17 1:26 ` Andy Walls
2010-01-18 5:36 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Andy Walls @ 2010-01-17 1:26 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On Sat, 2010-01-16 at 23:56 +0200, Igor M. Liplianin wrote:
> On 16 января 2010 21:55:52 Andy Walls wrote:
> > > cx25840 3-0044: IRQ Status: tsr rsr rto
> > > cx25840 3-0044: IRQ Enables: rse rte roe
> > > cx25840 3-0044: rx read: 9046778 ns mark
> > > cx25840 3-0044: rx read: 2206333 ns space
> > > cx25840 3-0044: rx read: 606926 ns mark
> > > cx25840 3-0044: rx read: end of rx
> > > cx25840 3-0044: IRQ Status: tsr rsr rto
> > > cx25840 3-0044: IRQ Enables: rse rte roe
> > > cx25840 3-0044: rx read: 9055815 ns mark
> > > cx25840 3-0044: rx read: 2203519 ns space
> > > cx25840 3-0044: rx read: 582481 ns mark
> > > cx25840 3-0044: rx read: end of rx
> >
> > This is still good. :)
> >
> > Those are NEC repeat sequences, but you probably know that already.
> Remote works until that point
>
> >
> > > irq 16: nobody cared (try booting with the "irqpoll" option)
> > > Pid: 2971, comm: X Not tainted 2.6.33-rc4 #3
> > > Call Trace:
> > > [<c1054700>] ? __report_bad_irq+0x24/0x69
> >
> > [...]
> >
> > > [<c1425105>] ? syscall_call+0x7/0xb
> > > handlers:
> > > [<c1332132>] (usb_hcd_irq+0x0/0x59)
> > > [<f8aafd88>] (cx23885_irq+0x0/0x4e0 [cx23885])
> >
> > 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 am looking for logging of the interrupt statuses and enables. They
> > should look something like this:
> >
> >
> > kernel: cx23885[0]/0: pci_status: 0x08000000 pci_mask: 0x08000001
> > [...]
> > kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> > kernel: cx25840 6-0044: AV Core IRQ status (entry): ir
> > kernel: cx25840 6-0044: AV Core ir IRQ status: 0x31 disables: 0x20
> > kernel: cx25840 6-0044: IR IRQ Status: tsr rsr rto
> > kernel: cx25840 6-0044: IR IRQ Enables: rse rte roe
> > kernel: cx25840 6-0044: AV Core audio IRQ status: 0x80 disables: 0xff
> > kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x2000 enables:
> > 0x0000 kernel: cx25840 6-0044: AV Core video IRQ status: 0x01a7 disables:
> > 0xffff kernel: cx25840 6-0044: AV Core IRQ status (exit):
> >
> >
> > But I was able to reproduce something like this when changing enable the
> > TSR interrupt enables using v4l2-dbg to change the register manually:
> >
> > kernel: cx23885[0]/0: pci_status: 0x08300000 pci_mask: 0x08000001
> > [...]
> > kernel: cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> > kernel: cx25840 6-0044: AV Core IRQ status (entry):
> > <---- no irq flags (all 0's) kernel: cx25840 6-0044: AV Core ir IRQ
> > status: 0x00 disables: 0x00 <---- all 0's kernel: cx25840
> > 6-0044: AV Core audio IRQ status: 0x00 disables: 0x00 <---- all 0's
> > kernel: cx25840 6-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
> > <---- all 0's kernel: cx25840 6-0044: AV Core video IRQ status: 0x0000
> > disables: 0x0000 <---- all 0's kernel: cx25840 6-0044: AV Core IRQ
> > status (exit):
> >
> > So there are some conditions where the AV Core can signal an interrupt,
> > but not be ready to be read over the I2C bus.
> >
> > I have added code to count when these happen and handle them as spurious
> > interrupts. However, if the code gets too many (20) consecutive
> > spurious interrupts without at least one real one, it disables the AV
> > Core interrupt.
> >
> >
> > Regards,
> > Andy
> Spurious interrupts counter reaches #20 almost immediately after modprobe.
> There is no time to press a key.
>
> DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
> cx23885_dev_checkrevision() Hardware revision = 0xb0
> cx23885[0]/0: found at 0000:01:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xfe800000
> cx23885 0000:01:00.0: setting latency timer to 64
> IRQ 16/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs
> cx23885[0]/0: pci_status: 0x083f4000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> cx25840 3-0044: AV Core IRQ status (entry):
> cx25840 3-0044: AV Core ir IRQ status: 0x00 disables: 0x00
> cx25840 3-0044: AV Core audio IRQ status: 0x00 disables: 0x00
> cx25840 3-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
> cx25840 3-0044: AV Core video IRQ status: 0x0000 disables: 0x0000
> cx25840 3-0044: AV Core IRQ status (exit):
> cx23885[0]/0: consecutive spurious AV Core interrupt #1
> [...]
> cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> cx25840 3-0044: AV Core IRQ status (entry):
> cx25840 3-0044: AV Core ir IRQ status: 0x00 disables: 0x00
> cx25840 3-0044: AV Core audio IRQ status: 0x00 disables: 0x00
> cx25840 3-0044: AV Core audio MC IRQ status: 0x0000 enables: 0x0000
> cx25840 3-0044: AV Core video IRQ status: 0x0000 disables: 0x0000
> cx25840 3-0044: AV Core IRQ status (exit):
> cx23885[0]/0: consecutive spurious AV Core interrupt #20
> cx23885[0]: disabling AV Core/IR interrupt: too many spurious interrupts
> input: cx23885 IR (TeVii S470) as /class/input/input24
> Creating IR device irrcv0
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.
> I commented out interrupt disabling line in order to get some debug to you.
> But it occupied gigabytes on hard disk quickly.
>
> [...]
> cx23885[0]/0: consecutive spurious AV Core interrupt #95
> cx23885[0]: disabling AV Core/IR interrupt: too many spurious interrupts
> cx23885[0]/0: pci_status: 0x08304000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> cx25840 3-0044: AV Core IRQ status (entry): ir
> cx25840 3-0044: AV Core ir IRQ status: 0x31 disables: 0x20
> cx25840 3-0044: IR IRQ Status: tsr rsr rto
> cx25840 3-0044: IR IRQ Enables: rse rte roe
> cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
> cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
> cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
> cx25840 3-0044: AV Core IRQ status (exit):
> cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> cx25840 3-0044: AV Core IRQ status (entry):
> cx25840 3-0044: AV Core ir IRQ status: 0x20 disables: 0x20
> cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
> cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
> cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
> cx25840 3-0044: AV Core IRQ status (exit):
> cx23885[0]/0: consecutive spurious AV Core interrupt #1
> cx25840 3-0044: rx read: 9061000 ns mark
> cx25840 3-0044: rx read: 2207667 ns space
> cx25840 3-0044: rx read: 586333 ns mark
> cx25840 3-0044: rx read: end of rx
> cx23885 0000:01:00.0: NEC IR auto repeat detected
> cx23885[0]/0: pci_status: 0x08304000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> cx25840 3-0044: AV Core IRQ status (entry):
> cx25840 3-0044: AV Core ir IRQ status: 0x20 disables: 0x20
> cx25840 3-0044: AV Core audio IRQ status: 0x80 disables: 0xff
> cx25840 3-0044: AV Core audio MC IRQ status: 0x2000 enables: 0x0000
> cx25840 3-0044: AV Core video IRQ status: 0x01a7 disables: 0xffff
> cx25840 3-0044: AV Core IRQ status (exit):
> cx23885[0]/0: consecutive spurious AV Core interrupt #2
> cx23885[0]/0: pci_status: 0x08004000 pci_mask: 0x08000000
> cx23885[0]/0: vida_status: 0x00000000 vida_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts1_status: 0x00000000 ts1_mask: 0x00000000 count: 0x0
> cx23885[0]/0: ts2_status: 0x00000000 ts2_mask: 0x00000000 count: 0xc7381f2a
> cx23885[0]/0: (PCI_MSK_AV_CORE 0x08000000)
> [...]
I'll have to think aboput these....
I'll fix the I2C bus problem first and then come back to this.
Thanks for testing.
Regards,
Andy
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-17 1:26 ` Andy Walls
@ 2010-01-18 5:36 ` Andy Walls
2010-01-18 22:25 ` Igor M. Liplianin
0 siblings, 1 reply; 15+ messages in thread
From: Andy Walls @ 2010-01-18 5:36 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
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.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-18 5:36 ` Andy Walls
@ 2010-01-18 22:25 ` Igor M. Liplianin
2010-01-19 2:10 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-18 22:25 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-18 22:25 ` Igor M. Liplianin
@ 2010-01-19 2:10 ` Andy Walls
2010-01-20 17:11 ` Igor M. Liplianin
0 siblings, 1 reply; 15+ messages in thread
From: Andy Walls @ 2010-01-19 2:10 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-19 2:10 ` Andy Walls
@ 2010-01-20 17:11 ` Igor M. Liplianin
2010-01-21 1:12 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Igor M. Liplianin @ 2010-01-20 17:11 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On 19 января 2010 04:10:42 Andy Walls wrote:
> 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.
>
Now I can not remove modules.
Unloading cx25840 module raises exception in cx23885_av_workhandler, unloading cx23885 - in
i2c_transfer.
> > > 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
--
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-01-20 17:11 ` Igor M. Liplianin
@ 2010-01-21 1:12 ` Andy Walls
0 siblings, 0 replies; 15+ messages in thread
From: Andy Walls @ 2010-01-21 1:12 UTC (permalink / raw)
To: Igor M. Liplianin; +Cc: linux-media, Andreas Tschirpke, Matthias Fechner, stoth
On Wed, 2010-01-20 at 19:11 +0200, Igor M. Liplianin wrote:
> On 19 января 2010 04:10:42 Andy Walls wrote:
> > 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.
> >
> Now I can not remove modules.
> Unloading cx25840 module raises exception in cx23885_av_workhandler, unloading cx23885 - in
> i2c_transfer.
:(
OK. I give up for now.
Although, you can't unload the cx25840 module before the cx23885 module.
You have to unload the cx23885 module first, as the
cx23885_av_workhandler() calls cx25840_irq_handler().
If you remove the cx25840 module first, cx25840_irq_handler() is gone
and the cx23885_av_workhandler() will call into garbage memory.
Thanks for your help.
Regards,
Andy
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
@ 2010-07-09 20:28 Kenney Phillisjr
2010-07-18 12:56 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Kenney Phillisjr @ 2010-07-09 20:28 UTC (permalink / raw)
To: linux-media
I know this is an old thread, however i have an card that meets the
requirements to be tested by the patches made by andy, and so far
with what i've tried it's been doing really well for input.
I pretty much just downloaded and tested Andy's patch set...
http://linuxtv.org/hg/~awalls/cx23885-ir2
The tests where done on ubuntu 10.04 with kernel 2.6.32-23-generic
(64-bit) and this appears to be working perfectly. (This even properly
identifies the card I'm using down to the model)
card notes: Hauppauge WinTV-HVR1250 (Model: 79001)
oh and the only change i made to the test is i commented out the
4 lines in the makefile that generate the firedtv module so i could
compile the tests
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-07-09 20:28 Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250 Kenney Phillisjr
@ 2010-07-18 12:56 ` Andy Walls
2010-07-19 4:49 ` Andy Walls
0 siblings, 1 reply; 15+ messages in thread
From: Andy Walls @ 2010-07-18 12:56 UTC (permalink / raw)
To: Kenney Phillisjr; +Cc: Jarod Wilson, linux-media
On Fri, 2010-07-09 at 15:28 -0500, Kenney Phillisjr wrote:
> I know this is an old thread, however i have an card that meets the
> requirements to be tested by the patches made by andy, and so far
> with what i've tried it's been doing really well for input.
>
> I pretty much just downloaded and tested Andy's patch set...
> http://linuxtv.org/hg/~awalls/cx23885-ir2
I'll be porting most of these 32 patches forward to my v4l-dvb.git tree
(on the cx-ir branch) later today. I need the I/O pin configuration
stuff for the CX23885 and CX23888 IR transmitter pin configuration.
Could you please provide a diff for the one change you mentioned on IRC
about fixing Rx on the HVR-1250?
> The tests where done on ubuntu 10.04 with kernel 2.6.32-23-generic
> (64-bit) and this appears to be working perfectly. (This even properly
> identifies the card I'm using down to the model)
>
> card notes: Hauppauge WinTV-HVR1250 (Model: 79001)
I don't have an original HVR-1250 or any other card with a genuine
CX23885 chip anymore, so I'll be unable to test.
I will likely add a module parameter that end users will be required to
set explcitly to enable the IR integrated in the CX23885 chip. Igor's
testing with the TeVii S470 resulted in the infinite IR interrupts
making his system unusable.
Regards,
Andy
> oh and the only change i made to the test is i commented out the
> 4 lines in the makefile that generate the firedtv module so i could
> compile the tests
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250
2010-07-18 12:56 ` Andy Walls
@ 2010-07-19 4:49 ` Andy Walls
0 siblings, 0 replies; 15+ messages in thread
From: Andy Walls @ 2010-07-19 4:49 UTC (permalink / raw)
To: Kenney Phillisjr; +Cc: Jarod Wilson, linux-media, stoth, hverkuil
On Sun, 2010-07-18 at 08:56 -0400, Andy Walls wrote:
> On Fri, 2010-07-09 at 15:28 -0500, Kenney Phillisjr wrote:
> > I know this is an old thread, however i have an card that meets the
> > requirements to be tested by the patches made by andy, and so far
> > with what i've tried it's been doing really well for input.
> >
> > I pretty much just downloaded and tested Andy's patch set...
> > http://linuxtv.org/hg/~awalls/cx23885-ir2
>
>
> I'll be porting most of these 32 patches forward to my v4l-dvb.git tree
> (on the cx-ir branch) later today. I need the I/O pin configuration
> stuff for the CX23885 and CX23888 IR transmitter pin configuration.
> > The tests where done on ubuntu 10.04 with kernel 2.6.32-23-generic
> > (64-bit) and this appears to be working perfectly. (This even properly
> > identifies the card I'm using down to the model)
> >
> > card notes: Hauppauge WinTV-HVR1250 (Model: 79001)
>
> I don't have an original HVR-1250 or any other card with a genuine
> CX23885 chip anymore, so I'll be unable to test.
>
> I will likely add a module parameter that end users will be required to
> set explcitly to enable the IR integrated in the CX23885 chip. Igor's
> testing with the TeVii S470 resulted in the infinite IR interrupts
> making his system unusable.
Kenney,
I've ported my changes forward. I haven't sent a patch bomb yet,
because I want to make one more change to disable the TeVii S470 IR by
default (since it is reported to hang a user's machine), and I'm too
tired ATM. I also wanted to get some bit of Tx operational beyond
setting the LED drive level correctly, but again, I'm too tired ATM.
Anyway, here's the stats on the updated patch set. Please test if you
can. These patches will likely require a 2.6.33 or greater kernel
(IIRC) due to the kfifo API change.
The following changes since commit f6242ad1007df90691fd5b70f0808320fe7aee07:
V4L/DVB: xc5000: Fix a few warnings (2010-07-05 18:38:46 -0300)
are available in the git repository at:
ssh://linuxtv.org/git/awalls/v4l-dvb.git cx-ir
Andy Walls (13):
cx25840: Make cx25840 i2c register read transactions atomic
cx23885: Add correct detection of the HVR-1250 model 79501
cx23885: Add a VIDIOC_LOG_STATUS ioctl function for analog video devices
v4l2_subdev: Add s_io_pin_config to v4l2_subdev_core_ops
cx25840: Add s_io_pin_config core subdev ops for the CX2388[578]
v4l2_subdev, cx23885: Differentiate IR carrier sense and I/O pin inversion
cx23885: For CX23888 IR, configure the IO pin mux IR pins explcitly
v4l2_subdev: Move interrupt_service_routine ptr to v4l2_subdev_core_ops
cx25840: Add support for CX2388[57] A/V core integrated IR controllers
cx23885: Add a v4l2_subdev group id for the CX2388[578] integrated AV core
cx23885: Add preliminary IR Rx support for the HVR-1250 and TeVii S470
cx23885: Protect PCI interrupt mask manipulations with a spinlock
cx23885: Move AV Core irq handling to a work handler
Jean Delvare (3):
cx23885: Return -ENXIO on slave nack
cx23885: Check for slave nack on all transactions
cx23885: i2c_wait_done returns 0 or 1, don't check for < 0 return value
drivers/media/video/cx23885/Makefile | 5 +-
drivers/media/video/cx23885/cx23885-av.c | 35 +
drivers/media/video/cx23885/cx23885-av.h | 27 +
drivers/media/video/cx23885/cx23885-cards.c | 97 ++-
drivers/media/video/cx23885/cx23885-core.c | 124 +++-
drivers/media/video/cx23885/cx23885-i2c.c | 27 +-
drivers/media/video/cx23885/cx23885-input.c | 48 +-
drivers/media/video/cx23885/cx23885-ir.c | 24 +-
drivers/media/video/cx23885/cx23885-reg.h | 1 +
drivers/media/video/cx23885/cx23885-vbi.c | 2 +-
drivers/media/video/cx23885/cx23885-video.c | 23 +-
drivers/media/video/cx23885/cx23885.h | 9 +-
drivers/media/video/cx23885/cx23888-ir.c | 35 +-
drivers/media/video/cx25840/Makefile | 2 +-
drivers/media/video/cx25840/cx25840-core.c | 339 +++++++-
drivers/media/video/cx25840/cx25840-core.h | 28 +
drivers/media/video/cx25840/cx25840-ir.c | 1262 +++++++++++++++++++++++++++
include/media/cx25840.h | 75 ++
include/media/v4l2-subdev.h | 44 +-
19 files changed, 2118 insertions(+), 89 deletions(-)
create mode 100644 drivers/media/video/cx23885/cx23885-av.c
create mode 100644 drivers/media/video/cx23885/cx23885-av.h
create mode 100644 drivers/media/video/cx25840/cx25840-ir.c
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2010-07-19 4:48 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-09 20:28 Need testers: cx23885 IR Rx for TeVii S470 and HVR-1250 Kenney Phillisjr
2010-07-18 12:56 ` Andy Walls
2010-07-19 4:49 ` Andy Walls
-- strict thread matches above, loose matches on Subject: below --
2010-01-16 4:02 Andy Walls
2010-01-16 12:50 ` Igor M. Liplianin
2010-01-16 13:06 ` Igor M. Liplianin
2010-01-16 14:00 ` Igor M. Liplianin
2010-01-16 19:55 ` Andy Walls
2010-01-16 21:56 ` Igor M. Liplianin
2010-01-17 1:26 ` Andy Walls
2010-01-18 5:36 ` Andy Walls
2010-01-18 22:25 ` Igor M. Liplianin
2010-01-19 2:10 ` Andy Walls
2010-01-20 17:11 ` Igor M. Liplianin
2010-01-21 1:12 ` Andy Walls
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox