mgavideo README

Copyright (C) 1999-2000 Ryan Drake (stiletto@mediaone.net)  See COPYING.


Generic all-caps "cover my ass" statement:
------------------------------------------

************************************************************************
THIS RELEASE IS FOR SERIOUS KERNEL HACKERS ONLY.  IT IS NOT INTENDED FOR
EVERYDAY USERS.  THIS IS NOT BETA CODE.  THIS IS NOT EVEN ALPHA CODE.
IT IS AN EXPERIMENTAL DEVICE DRIVER, SO HANDLE IT WITH CARE.  IF YOU
DON'T KNOW WHAT YOU ARE DOING YOU SHOULDN'T BE USING THIS YET.
************************************************************************

Once it is more stable, and I am sure it won't blow up anyone's computer,
I will make a more public release, but for now, use it at your own risk.


New from last release:
----------------------

        Read the CHANGELOG.

What you get in this tarball:
-----------------------------

        mgavideo.c - this module is the interface to the G100 and G200's video
        mgavideo.h   extension registers.  It also registers itself as an i2c
                     bus, and includes an api for sending commands to each
                     of the devices on the i2c (currently there is support
                     for the ks0127, the msp3400, and the TV tuner).

        ks0127.c   - this module is an interface to the KS0127 video decoder
        ks0127.h     chip, which is used on the Matrox Rainbow Runner-G series
                     cards, and the Matrox Marvel card.

        maven.c    - Skeleton driver for the Maven TV-out.  Currently does
        maven.h      nothing but detect the chip.

        zr36060.c  - this module drives the Zoran MJPEG chip.
        zr36060.h

        videodev-v4l2.h - These files make up the V4L2 - specific portion of
        videodev-v4l2.c   the driver.  Currently this is the only interface
        mgacap-v4l2.c     that works, but a V4L1 version is coming soon!

        i2c.c      - These files are all from the Linux 2.2.14 kernel.  Some
        i2c.h        have been modified slightly.
        tuner.c
        tuner.h
        msp3400.c
        msp3400.h
        videodev.c
        videodev.h

        i, r       - Two very simple shell scripts I cooked up to easily
                     install and remove the drivers.  You can probably guess
                     which one is which.

        iv4l1      - Shell scripts to install and remove the experimental
        rv4l1        V4L1 interface to mgavideo

        CHANGELOG  - Read this to find out what changed since the last release.
        COPYING    - The GPL
        Makefile   - Used to build the modules.
        README     - You're looking at it!
        VERSION    - Contains the name of the latest driver release version.

        apps/*     - Sample V4L2 apps.

        mgavideo-2.2.14.patch - Patch to the 2.2.14 kernel to add Matrox video
                                support.  Since this only enables the V4L1
                                portion, it is pretty useless for now.


So how do I build this thing:
-----------------------------

        Make sure you have the Linux kernel source installed.  You need this.
        I've tested it on 2.2.7, but it should work for all versions 2.0 and
        above.  If it doesn't I'd like to know.

        Run make:
                make

        As root, run my "i" script, or insmod them yourself if my script
        doesn't work, or if you don't trust it :)
                ./i

        Back as a normal user, run the xcaptest that was just built.  Other
        versions of xcaptest wont work so make sure you get the right one:
                apps/xcaptest

        A strange bug I just recently started seeing.  Sometimes it won't
        work the first time you load the modules.  I don't know why.
        The solution is to unload the modules:
                ./r
        And then reload them.  That should fix it.

        If things don't work, it may be helpful to open up an xconsole and
        have a look at what's going on.  All of the driver .c files have
        a line  int debug = 0;  And if you change any of these to = 1, you
        can get even more debug information.

        Again, this stuff could mess up your card if it doesn't work right
        so make sure you know what you're doing before running them.


What needs to be done:
----------------------

        APPS NEEDED!  If you are a bored hacker trying to think of a cool
        project, we could use a nice V4L2-capable video displayer that
        supports capture, preview, TV tuner (including channel changes.. see
        freq.c) ... all that good stuff.  Something with a nice shiny GTK+
        GUI or whatever would be ideal!  I know this is just wishful thinking
        but I'll put the request out for the record ;-)

        Implement other V4L2 devices.  V4L2 can interface to other kinds of
        devices besides video.  From what I can tell, we can probably implement
        /dev/codec, /dev/vout, /dev/radio, and /dev/vbi, in addition to the
        currently implemented /dev/video.

        Work on Maven support.  Any volunteers?

        Development is on The Linux Video and DVD Project page
        http://linuxvideo.org

        Download the latest code with CVS
        cvs -d :pserver:anonymous@cvs.linuxvideo.org:/cvs/livid login
        cvs -d :pserver:anonymous@cvs.linuxvideo.org:/cvs/livid co mgavideo

        To update the code later use cd mgavideo and cvs up

	See also marvel.sourceforge.net for updates ! :-)

        
Extra:
------

        Anyone know if the Maven TVOut spec is available anywhere?

        The mgavideo module contains basic code to set up the video capture
        and vbi windows, and to start and stop the grabber.  Matrox has
        released specs for the G200 chip, which you can get here:

        http://www.matrox.com/mga/dev_relations/chips_tech/mga-g200.htm

        You need to register to get the specs, and it doesn't cost anything
        to get them.

        The KS0127 module works, but will need more features implemented
        in order to be very useful.  Specs for this chip can be found here:

        http://www.usa.samsungsemi.com/products/prodspec/videodecoder/KS0127/ks0127ov.htm 



Ryan Drake
stiletto@mediaone.net
