Cx88 devices (cx2388x)

From LinuxTVWiki
Jump to navigation Jump to search

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

(Documentation/video4linux/README.cx88 from 2.6.15.4 with some added links)

This is a v4l2 device driver for the cx2388x chip.

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?

  1. Try upgrading to the latest snapshot, maybe it has been added meanwhile (use the mainline kernel; cf. How to submit patches).
  2. 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").
  3. 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

(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