The cx88 driver
===============

.. note::

   This documentation is outdated.

cx8800 release notes
--------------------

This is a v4l2 device driver for the cx2388x chip.


current status
--------------

video
	- Basically works.
	- For now, only capture and read(). Overlay isn't supported.

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 some standards.
	  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) is supported via cx88-alsa.

vbi
	- Code present. Works for NTSC closed caption. PAL and other
	  TV norms may or may not work.


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:

.. code-block:: none

	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.
 (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 information 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]
