[linux-dvb] HVR-1200, cx23885 driver and Message Signaled Interrupts
Hans-Frieder Vogt
hfvogt at gmx.net
Sun Jan 4 23:33:47 CET 2009
Am Sunday 04 January 2009 07:27:00 schrieben Sie:
> Hans-Frieder,
>
> > Hi Peter, hi List,
> >
> > attached is a patch that enables MSI on the cx23885. I tested this patch
> > for a while now on a Dvico FusionHDTV Dual Express and have not found any
> > side effects. It works on versions 2.6.27.x and 2.6.28. 2.6.28-gitx not
> > tried yet.
>
> I applied your patch against trunk v4l-dvb tree on stock Ubuntu kernel
> 2.6.27-9.
>
> While the module loads properly when passed enable_msi=1 and
> /proc/interrupts as well as lspci tell me that everything should be set
> up fine, I am not getting any interrupts delivered as per attached
> output of:
> cat /proc/interrupts
>
> For troubleshooting purposes I have also attached the output of:
> dmesg | egrep -i "tv|dvb|haupp|cx|tda"
>
> /peter
Hm, strange!
I attached the same data that you collected for my environment. The only
difference that I see is, that I get in dmesg (or kern.log) immediately after
the line
cx23885 0000:03:00.0: setting latency timer to 64
the confirmation that MSI is activated:
cx23885 0000:03:00.0: irq 315 for MSI/MSI-X
It seems that for your card, the PCI code is stuck halfways?!
As you have other devices running with MSI, can you please check whether you
see a line ... irq xyz for MSI/MSI-X for them? This would narrow down the
region in the code to search for the problem.
Regards,
Hans-Frieder
-------------- next part --------------
[ 8.928904] cx23885 driver version 0.0.1 loaded
[ 8.930726] cx23885 0000:03:00.0: PCI INT A -> Link[LN0A] -> GSI 19 (level, low) -> IRQ 19
[ 8.931185] CORE cx23885[0]: subsystem: 18ac:db78, board: DViCO FusionHDTV DVB-T Dual Express [card=11,autodetected]
[ 9.258821] input: i2c IR (FusionHDTV) as /devices/virtual/input/input2
[ 9.317611] ir-kbd-i2c: i2c IR (FusionHDTV) detected at i2c-0/0-006b/ir0 [cx23885[0]]
[ 9.318109] cx23885_dvb_register() allocating 1 frontend(s)
[ 9.318178] cx23885[0]: cx23885 based dvb card
[ 9.398854] xc2028 0-0061: creating new instance
[ 9.398916] xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
[ 9.398980] DVB: registering new adapter (cx23885[0])
[ 9.399036] DVB: registering adapter 0 frontend 0 (Zarlink ZL10353 DVB-T)...
[ 9.399555] cx23885_dvb_register() allocating 1 frontend(s)
[ 9.399612] cx23885[0]: cx23885 based dvb card
[ 9.400354] xc2028 1-0061: creating new instance
[ 9.400408] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
[ 9.400464] DVB: registering new adapter (cx23885[0])
[ 9.400519] DVB: registering adapter 1 frontend 0 (Zarlink ZL10353 DVB-T)...
[ 9.400927] cx23885_dev_checkrevision() Hardware revision = 0xb0
[ 9.400990] cx23885[0]/0: found at 0000:03:00.0, rev: 2, irq: 19, latency: 0, mmio: 0xfea00000
[ 9.401069] cx23885 0000:03:00.0: setting latency timer to 64
[ 9.401140] cx23885 0000:03:00.0: irq 315 for MSI/MSI-X
[ 34.554403] i2c-adapter i2c-0: firmware: requesting xc3028-v27.fw
[ 34.655312] xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[ 34.856389] xc2028 0-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
[ 36.003429] xc2028 0-0061: Loading firmware for type=D2633 DTV8 (210), id 0000000000000000.
[ 36.017390] xc2028 0-0061: Loading SCODE for type=DTV78 ZARLINK456 SCODE HAS_IF_4760 (62000100), id 0000000000000000.
[ 36.381875] i2c-adapter i2c-1: firmware: requesting xc3028-v27.fw
[ 36.393020] xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[ 36.393225] xc2028 1-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
[ 37.336752] xc2028 1-0061: Loading firmware for type=D2633 DTV8 (210), id 0000000000000000.
[ 37.350886] xc2028 1-0061: Loading SCODE for type=DTV78 ZARLINK456 SCODE HAS_IF_4760 (62000100), id 0000000000000000.
[ 177.654931] xc2028 1-0061: Loading firmware for type=D2633 DTV78 (110), id 0000000000000000.
[ 177.669134] xc2028 1-0061: Loading SCODE for type=DTV78 ZARLINK456 SCODE HAS_IF_4760 (62000100), id 0000000000000000.
-------------- next part --------------
03:00.0 Multimedia video controller: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder (rev 02)
Subsystem: DViCO Corporation Device db78
Flags: bus master, fast devsel, latency 0, IRQ 315
Memory at fea00000 (64-bit, non-prefetchable) [size=2M]
Capabilities: [40] Express Endpoint, MSI 00
Capabilities: [80] Power Management version 2
Capabilities: [90] Vital Product Data <?>
Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [100] Advanced Error Reporting <?>
Capabilities: [200] Virtual Channel <?>
Kernel driver in use: cx23885
Kernel modules: cx23885
-------------- next part --------------
CPU0 CPU1
0: 45 1 IO-APIC-edge timer
1: 0 2 IO-APIC-edge i8042
6: 0 5 IO-APIC-edge floppy
7: 1 0 IO-APIC-edge
8: 0 1 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 0 5 IO-APIC-edge i8042
20: 1 668 IO-APIC-fasteoi nvidia
21: 0 0 IO-APIC-fasteoi ehci_hcd:usb3
22: 0 0 IO-APIC-fasteoi ohci_hcd:usb2, ohci_hcd:usb4
23: 0 0 IO-APIC-fasteoi ehci_hcd:usb1
314: 6 13426 PCI-MSI-edge eth1
315: 3 2383 PCI-MSI-edge cx23885[0]
316: 0 215 PCI-MSI-edge HDA Intel
317: 11 11955 PCI-MSI-edge ahci
NMI: 0 0 Non-maskable interrupts
LOC: 27488 21523 Local timer interrupts
RES: 2678 2372 Rescheduling interrupts
CAL: 1001 85 Function call interrupts
TLB: 417 173 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
SPU: 0 0 Spurious interrupts
ERR: 1
MIS: 0
More information about the linux-dvb
mailing list