Cx88 devices (cx2388x)
Introduction
The cx2388x chip is the successor to the bt87x chips; cf. PCI interface chipsets used for v4l cards.
There is also support in the kernel for a cx23416 mpeg encoder via the cx2388x host port though the blackbird driver, cx88-blackbird.c, which includes parts from the ivtv driver.
The pcHDTV3000 card supports both analog and digital capture; see Peter Knaggs excellent configuration guide with further references.
Supported cards
For an up-to-date list of v4l supported cx88 devices, see the CVS of the kernel documentation CARDLIST.cx88, also available in your local kernel source Documentation/video4linux/CARDLIST.cx88.
Release notes
For the most up-to-date version, see the CVS README.cx88, also available in your local kernel source as Documentation/video4linux/README.cx88.
Current status
Video
- Basically works.
- Some minor image quality glitches
- For now only capture, overlay support isn't completed yet.
Audio
- The chip specs for the on-chip TV sound decoder are next to useless :-/
- Neverless the builtin TV sound decoder starts working now, at least for PAL-BG. Other TV norms need other code ...
- FOR ANY REPORTS ON THIS PLEASE MENTION THE TV NORM YOU ARE USING.
- Most tuner chips do provide mono sound, which may or may not be useable depending on the board design. With the Hauppauge cards it works, so there is mono sound available as fallback.
- audio data dma (i.e. recording without loopback cable to the sound card) should be possible, but there is no code yet ...
vbi (cf. text capture)
- Some code present. Doesn't crash any more, but also doesn't work yet ...
How to add support for new cards
The driver needs some config info for the TV cards. This stuff is in cx88-cards.c. If the driver doesn't work well you likely need a new entry for your card in that file. Check the kernel log (using dmesg) to see whenever the driver knows your card or not. There is a line like this one:
cx8800[0]: subsystem: 0070:3400, board: Hauppauge WinTV \ 34xxx models [card=1,autodetected]
If your card is listed as "board: UNKNOWN/GENERIC" it is unknown to the driver. What to do then?
- Try upgrading to the latest snapshot, maybe it has been added meanwhile (use the mainline kernel; cf. How to submit patches).
- You can try to create a new entry yourself, have a look at cx88-cards.c. If that worked, mail me your changes as unified diff ("diff -u").
- Or you can mail me the config information. I need at least the following informations to add the card:
- the PCI Subsystem ID ("0070:3400" from the line above, "lspci -v" output is fine too).
- the tuner type used by the card. You can try to find one by trial-and-error using the tuner=<n> insmod option. If you know which one the card has, you can also have a look at the list in CARDLIST.tuner.
Have fun,
Gerd
Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
TV audio types
For an up-to-date list of TV audio types see the CVS of the kernel sources cx88.h, also available in your local kernel source drivers/media/video/cx88/cx88.h.
WW_NONE 1 WW_BTSC 2 WW_BG 3 WW_DK 4 WW_I 5 WW_L 6 WW_EIAJ 7 WW_I2SPT 8 WW_FM 9
Color problem patch
Installation notes
MSI TV-@nywhere Master
This card is not able to do the default QuasiSplitSound demulation. You have to force the IF part to Intercarrier:
options tda9887 qss=0
In addition, set hue full up or down and then adjust the rest. There is a bug nobody has found so far.
Q: How can users force the IF part to Intercarrier as described above? Source code modification before installation? by union
Hue_Saturation_Brightness
There was a problem in the cx88 code that resulted in the need to set hue to either 0% or 100% in order to avoid seeing green and blue men on the screen. This problem has been corrected as of the CVS commit on Wed Jun 29 16:28:17 2005 UTC. We have collected information regarding this on Hue_Saturation_Brightness page.
WinTV Go
The WinTV Go card also known to your lspci program as:
Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
Subsystem: Hauppauge computer works Inc. Hauppauge WinTV 34xxx models
works with the following help:
modprobe cx88xx tuner=56 && modprobe cx8800
Since it responds to Philips commands this specific tuner, Philips PAL/SECAM multi (FQ1216AME MK4), responded best.
Leadtek PVR 2000
The Leadtek PVR 2000 card also known to your lspci program as(BTW I am runing Fedor core3 ):
01:01.0 Multimedia video controller: Conexant Winfast TV2000 XP (rev 05) Subsystem: LeadTek Research Inc.: Unknown device 663c Flags: medium devsel, IRQ 9 Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [44] Vital Product Data Capabilities: [4c] Power Management version 2
01:01.2 Multimedia controller: Conexant: Unknown device 8802 (rev 05) Subsystem: LeadTek Research Inc.: Unknown device 663c Flags: bus master, medium devsel, latency 64, IRQ 9 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [4c] Power Management version 2
pay attention that:the hardware is detected as Winfast TV200 XP when Fedore core 3 is starting. in fact , my hardware card is Winfast PVR 2000.I do know where is the problem.so when you config it's remote function with lirc driver you must be careful.
[root@root bttv-0.9.11]# modprobe cx8800
[root@root bttv-0.9.11]# tail /var/log/messages
Dec 10 18:53:40 root kernel: ACPI: PCI interrupt 0000:01:01.0[A] -> GSI 9 (level, low) -> IRQ 9 Dec 10 18:53:40 root kernel: cx8800[0]: found at 0000:01:01.0, rev: 5, irq: 9, latency: 64, mmio: 0xfc000000 Dec 10 18:53:40 root kernel: cx8800[0]: subsystem: 107d:663c, board: Leadtek PVR 2000 [card=9,autodetected] Dec 10 18:53:40 root kernel: cx8800[0]: i2c register ok Dec 10 18:53:40 root kernel: tuner: Ignoring new-style parameters in presence of obsolete ones Dec 10 18:53:40 root kernel: tuner: chip found at addr 0xc0 i2c-bus cx8800[0] Dec 10 18:53:40 root kernel: tuner: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3)) by cx8800[0] Dec 10 18:53:40 root kernel: cx8800[0]: i2c attach [client=Philips PAL/SECAM multi (FM1216ME MK3)] Dec 10 18:53:40 root kernel: cx8800[0]: registered device video0 [v4l2] Dec 10 18:53:40 root kernel: cx8800[0]: registered device vbi0
Leadtek PVR 2000
The Leadtek PVR 2000 card also known to your lspci program as(BTW I am runing Fedor core3 ):
01:01.0 Multimedia video controller: Conexant Winfast TV2000 XP (rev 05) Subsystem: LeadTek Research Inc.: Unknown device 663c Flags: medium devsel, IRQ 9 Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [44] Vital Product Data Capabilities: [4c] Power Management version 2
01:01.2 Multimedia controller: Conexant: Unknown device 8802 (rev 05) Subsystem: LeadTek Research Inc.: Unknown device 663c Flags: bus master, medium devsel, latency 64, IRQ 9 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [4c] Power Management version 2
pay attention that:the hardware is detected as Winfast TV200 XP when Fedore core 3 is starting. in fact , my hardware card is Winfast PVR 2000.I do know where is the problem.so when you config it's remote function with lirc driver you must be careful.
[root@root bttv-0.9.11]# modprobe cx8800
[root@root bttv-0.9.11]# tail /var/log/messages
Dec 10 18:53:40 root kernel: ACPI: PCI interrupt 0000:01:01.0[A] -> GSI 9 (level, low) -> IRQ 9 Dec 10 18:53:40 root kernel: cx8800[0]: found at 0000:01:01.0, rev: 5, irq: 9, latency: 64, mmio: 0xfc000000 Dec 10 18:53:40 root kernel: cx8800[0]: subsystem: 107d:663c, board: Leadtek PVR 2000 [card=9,autodetected] Dec 10 18:53:40 root kernel: cx8800[0]: i2c register ok Dec 10 18:53:40 root kernel: tuner: Ignoring new-style parameters in presence of obsolete ones Dec 10 18:53:40 root kernel: tuner: chip found at addr 0xc0 i2c-bus cx8800[0] Dec 10 18:53:40 root kernel: tuner: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3)) by cx8800[0] Dec 10 18:53:40 root kernel: cx8800[0]: i2c attach [client=Philips PAL/SECAM multi (FM1216ME MK3)] Dec 10 18:53:40 root kernel: cx8800[0]: registered device video0 [v4l2] Dec 10 18:53:40 root kernel: cx8800[0]: registered device vbi0