
cx8800 release notes
====================

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
	- 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:

	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 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]
