aha/Documentation/video4linux
Bruno Christo 0c5db42551 V4L/DVB (10827): Add support for GeoVision GV-800(S)
I have a GeoVision GV-800(S) card, it has 4 CONEXANT BT878A chips.
It has 16 video inputs and 4 audio inputs, and it is almost identical
to the GV-800, as seen on http://bttv-gallery.de .
The only difference appears to be the analog mux, it has a CD22M3494
in place of the MT8816AP. The card has a blue PCB, as seen in this
picture: http://www.gsbr.com.br/imagem/kits/GeoVision%20GV%20800.jpg .

This card wasn't originally supported, and it was detected as
UNKNOWN/GENERIC. The video inputs weren't working, so I tried
"forcing" a few cards like the GeoVision GV-600, but there was still
no video. So I made a patch to support this card, based on the Kodicom
4400r.

The GV-800(S) is identified as follows:

...
02:00.0 Multimedia video controller: Brooktree Corporation Bt878 Video
Capture (rev 11)
02:00.1 Multimedia controller: Brooktree Corporation Bt878 Audio
Capture (rev 11)
02:04.0 Multimedia video controller: Brooktree Corporation Bt878 Video
Capture (rev 11)
02:04.1 Multimedia controller: Brooktree Corporation Bt878 Audio
Capture (rev 11)
02:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video
Capture (rev 11)
02:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio
Capture (rev 11)
02:0c.0 Multimedia video controller: Brooktree Corporation Bt878 Video
Capture (rev 11)
02:0c.1 Multimedia controller: Brooktree Corporation Bt878 Audio
Capture (rev 11)

...
02:00.0 0400: 109e:036e (rev 11)
       Subsystem: 800a:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdfff000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2
       Kernel modules: bttv

02:00.1 0480: 109e:0878 (rev 11)
       Subsystem: 800a:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdffe000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2

02:04.0 0400: 109e:036e (rev 11)
       Subsystem: 800b:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdffd000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2
       Kernel modules: bttv

02:04.1 0480: 109e:0878 (rev 11)
       Subsystem: 800b:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdffc000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2

02:08.0 0400: 109e:036e (rev 11)
       Subsystem: 800c:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdffb000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2
       Kernel modules: bttv

02:08.1 0480: 109e:0878 (rev 11)
       Subsystem: 800c:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdffa000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2

02:0c.0 0400: 109e:036e (rev 11)
       Subsystem: 800d:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdff9000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2
       Kernel modules: bttv

02:0c.1 0480: 109e:0878 (rev 11)
       Subsystem: 800d:763d
       Flags: bus master, medium devsel, latency 32, IRQ 10
       Memory at cdff8000 (32-bit, prefetchable) [size=4K]
       Capabilities: [44] Vital Product Data <?>
       Capabilities: [4c] Power Management version 2

As you can see, the GV-800(S) card is almost identical to the GV-800
on bttv-gallery, so this patch might also work for that card. If not,
only a few changes should be required on the gv800s_write() function.

After this patch, the video inputs work correctly on linux 2.6.24 and
2.6.27 using the software 'motion'. The input order may seem a little
odd, but it's the order the original software/driver uses, and I decided
to keep that order to get the most out of the card.

I tried to get the audio working with the snd-bt87x module, but I only
get noise from every audio input, even after selecting a different mux
with alsamixer. Also, after trying to play sound from those sources, I
randomly get a RISC error about an invalid RISC opcode, and then that
output stops working. I also can't change the sampling rate when
recording. Any pointers to adding audio support are welcome.

Signed-off-by: Bruno Christo <bchristo@inf.ufsm.br>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:07 -03:00
..
bttv Rationalise Randy's address a bit 2008-10-30 11:38:47 -07:00
cx88 Fix typos in Documentation/: 'Q'-'R' 2006-10-03 22:54:15 +02:00
cx2341x V4L/DVB (10487): doc: update hm12 documentation. 2009-03-30 12:42:41 -03:00
.gitignore .gitignore updates 2008-10-30 11:38:45 -07:00
API.html V4L/DVB (10128): modify V4L documentation to be a valid XHTML 2008-12-30 09:40:39 -02:00
cafe_ccic V4L/DVB (4797): Marvell 88ALP01 "cafe" driver 2006-12-10 08:51:13 -02:00
CARDLIST.au0828 V4L/DVB (9247): au0828: add support for another USB id for Hauppauge HVR950Q 2008-10-17 17:26:39 -03:00
CARDLIST.bttv V4L/DVB (10827): Add support for GeoVision GV-800(S) 2009-03-30 12:43:07 -03:00
CARDLIST.cx88 V4L/DVB (9534): cx88: Add support for Prof 6200 DVB-S PCI card 2008-12-29 17:53:28 -02:00
CARDLIST.cx23885 V4L/DVB (10805): Add support for NetUP Dual DVB-S2 CI card 2009-03-30 12:43:05 -03:00
CARDLIST.em28xx V4L/DVB (10741): em28xx: Add Kaiser Baas Video to DVD maker support 2009-03-30 12:43:00 -03:00
CARDLIST.ivtv V4L/DVB (6763): ivtv: add AVerMedia EZMaker PCI Deluxe support 2008-01-25 19:03:23 -02:00
CARDLIST.saa7134 V4L/DVB (10156): saa7134: Add support for Avermedia AVer TV GO 007 FM Plus 2009-01-02 17:13:44 -02:00
CARDLIST.tuner V4L/DVB (9268): tuner: add FMD1216MEX tuner 2008-10-17 17:29:09 -03:00
CARDLIST.usbvision V4L/DVB (6994): usbvision: add Pinnacle Studio PCTV USB (NTSC) FM V3 2008-01-25 19:04:46 -02:00
cpia2_overview.txt V4L/DVB (3376): Add cpia2 camera support 2006-02-27 00:09:05 -03:00
CQcam.txt V4L/DVB (5068): Fix authorship references 2007-02-21 13:34:20 -02:00
cx18.txt V4L/DVB (8168): cx18: Upgrade to newer firmware & update cx18 documentation. 2008-07-20 07:15:30 -03:00
et61x251.txt V4L/DVB (5064): ET61X251 driver updates. 2007-02-21 13:34:20 -02:00
extract_xc3028.pl V4L/DVB (7651): tuner-xc2028: Several fixes to SCODE 2008-04-24 14:09:44 -03:00
gspca.txt V4L/DVB (10421): gspca - documentation: Add the webcam 041e:405b. 2009-03-30 12:42:36 -03:00
hauppauge-wintv-cx88-ir.txt Fix typos in Documentation/: 'Q'-'R' 2006-10-03 22:54:15 +02:00
ibmcam.txt V4L/DVB (4042): Documentation: whitespace cleanup 2006-06-25 02:00:38 -03:00
lifeview.txt
m5602.txt V4L/DVB (9091): gspca: Subdriver m5602 (ALi) added. 2008-10-12 09:37:13 -02:00
Makefile docsrc: build Documentation/ sources 2008-08-12 16:07:30 -07:00
meye.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
not-in-cx2388x-datasheet.txt
ov511.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
radiotrack.txt V4L/DVB (3599c): Whitespace cleanups under Documentation/video4linux 2006-03-25 09:29:32 -03:00
README.cpia V4L/DVB (3599c): Whitespace cleanups under Documentation/video4linux 2006-03-25 09:29:32 -03:00
README.cpia2 V4L/DVB (3399a): cpia2/cpia2_v4l.c cleanups 2006-03-03 12:15:29 -03:00
README.cx88 V4L/DVB (9370): Update README.cx88 with the current status 2008-12-29 17:53:13 -02:00
README.ir
README.ivtv V4L/DVB (5409): Add CARDLIST.ivtv and README.ivtv 2007-04-27 15:44:28 -03:00
README.pvrusb2 documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
README.saa7134
se401.txt V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux 2006-04-02 04:55:56 -03:00
si470x.txt V4L/DVB (10530): Documentation and code cleanups 2009-03-30 12:42:45 -03:00
sn9c102.txt Documentation cleanup: trivial misspelling, punctuation, and grammar corrections. 2008-07-26 12:00:06 -07:00
soc-camera.txt V4L/DVB (8799): soc-camera: add API documentation 2008-10-12 09:36:55 -02:00
stv680.txt V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux 2006-04-02 04:55:56 -03:00
v4l2-framework.txt V4L/DVB (10644): v4l2-subdev: rename dev field to v4l2_dev 2009-03-30 12:42:50 -03:00
v4lgrab.c V4L/DVB (10210): Fix a bug on v4lgrab.c 2009-01-29 08:35:37 -02:00
w9966.txt V4L/DVB (3599c): Whitespace cleanups under Documentation/video4linux 2006-03-25 09:29:32 -03:00
w9968cf.txt remove mention of CONFIG_KMOD from documentation 2008-07-22 19:24:29 +10:00
zc0301.txt V4L/DVB (5063): ZC0301 driver updates. 2007-02-21 13:34:19 -02:00
Zoran documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
zr364xx.txt V4L/DVB (10263): zr364xx: add support for Aiptek DV T300 2009-03-30 12:42:23 -03:00


What is it?
===========

This is a v4l2/oss device driver for saa7130/33/34/35 based capture / TV
boards.  See http://www.semiconductors.philips.com/pip/saa7134hl for a
description.


Status
======

Almost everything is working.  video, sound, tuner, radio, mpeg ts, ...

As with bttv, card-specific tweaks are needed.  Check CARDLIST for a
list of known TV cards and saa7134-cards.c for the drivers card
configuration info.


Build
=====

Pick up videodev + v4l2 patches from http://bytesex.org/patches/.
Configure, build, install + boot the new kernel.  You'll need at least
these config options:

	CONFIG_I2C=m
	CONFIG_VIDEO_DEV=m

Type "make" to build the driver now.  "make install" installs the
driver.  "modprobe saa7134" should load it.  Depending on the card you
might have to pass card=<nr> as insmod option, check CARDLIST for
valid choices.


Changes / Fixes
===============

Please mail me unified diffs ("diff -u") with your changes, and don't
forget to tell me what it changes / which problem it fixes / whatever
it is good for ...


Known Problems
==============

* The tuner for the flyvideos isn't detected automatically and the
  default might not work for you depending on which version you have.
  There is a tuner= insmod option to override the driver's default.

Card Variations:
================

Cards can use either of these two crystals (xtal):
 - 32.11 MHz -> .audio_clock=0x187de7
 - 24.576MHz -> .audio_clock=0x200000
(xtal * .audio_clock = 51539600)

Some details about 30/34/35:

 - saa7130 - low-price chip, doesn't have mute, that is why all those
 cards should have .mute field defined in their tuner structure.

 - saa7134 - usual chip

 - saa7133/35 - saa7135 is probably a marketing decision, since all those
 chips identifies itself as 33 on pci.

Credits
=======

andrew.stevens@philips.com + werner.leeb@philips.com for providing
saa7134 hardware specs and sample board.


Have fun,

  Gerd

--
Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]