Matrox Meteor FrameGrabber Driver v1.4. ======================================= Copyright (C) 1996 Jim Bray (jb@gandalf.cs.wcu.edu). [ comments and bug reports should now be directed to ian@robots.ox.ac.uk ] This work was supported by RWI (Real World Interface) Inc., and the AI Lab at Brown University. This is a port and partial rewrite of the FreeBSD Matrox Meteor FrameGrabber Driver, written by Jim Lowe and Mark Tinguely. Matt Welsh's bigphysarea mechanism is used to substitute for the BSD vm_page_alloc_contig(). It requires at least a 1.3-series kernel. It is known to work with 1.3.72 and later. It also work with v2.x series kernels. The bigphysarea patch is not included in the v2.0 kernel so you still need to make the patch. There is a list, meteor-users@rwii.com, for discusssion. It is managed by majordomo; send mail to majordomo@rwii.com with no content if you need instructions. The command to join would be "subscribe meteor-list" in the message body. Older and possibly newer versions can be found on ftp.rwii.com in /pub/linux/system/Meteor, which is the driver's home site. This is version 1.4c. It appears to be stable and usable on most hardware. Enjoy. --Jim Bray / Ian Reid RECENT HISTORY: =============== (See History for old comments) Version 1.0: 5/1/96 Made checkPCI() inline, #ifdeffed it on DEBUG_METEOR so it should disappear unless debugging is set. Changed Makefile to compile -Wall -Wstrict-prototypes. This revealed a typo in ioctl METEORSBT254. Fixed. Added parens, prototypes etc until no warnings. Renamed vw to vu. Version 1.1: 5/6/96 Implemented METEORSTATUS ioctl fix posted by Jim Lowe. Version 1.2: 14/May/96 Ian Reid (ian@robots.ox.ac.uk) Fixed frames per second so that it actually implements the call in the saa7116. Fixed bug in SVIDEO input which ignored chrominance by just reverting to the bsd bit of this code. Fixed #define METEOR_INPUT_DEV_RCA Fixed #define METEOR_DEV_MASK Fixed spelling of PLANAR Added a selectable system default (SYSTEM=PAL/SECAM/NTSC) Version 1.3 22/May/96 Ian Reid (ian@robots.ox.ac.uk) Fixed problem with PAL RGB mode (from jonas@mcs.com) Fixed problem with frames per second code Fixed problem with PCF8574_xxxx_WRITE Added METEOR_GEO_ODD_EVEN to enable separate capture of odd/even fields Added METEOR_SIG_[FRAME|FIELD] to toggle between interrupts after each field or frame (frame still the default) Added METEOR_FIELD_MODE to capture fields as if they were frames *** this has not been thoroughly tested on all image types and on synchronous capture *** Version 1.4 17/July/96 ian@robots.ox.ac.uk & anuj@fwi.uva.nl Fixed prob inadvertently introduced to set_fps in the last fix (thanks Pedro Felzenszwalb pff@cs.cornell.edu) Tested and fixed FIELD_MODE stuff Added support for YUV in synchronous mode Allow lowat==hiwat==0 in synchronous mode to mean capture in round-robin fashion without user intervention. Also added cur_frame to struct meteor_mem so that this info is available in shared memory. It appears that not only is there a problem with the number of bits in the dma_end registers (only 22), but that the dma regs themselves don't increment over 4Mb boundaries. Instead they wrap around to the start of the 4Mb block. Furthermore, since they only increment in 4 byte words, if the image width is not divisible by 8 then YUV images can overflow (since the U and V parts are saved separately using dma regs 1 and 2). The changes to fix these problems are due to anuj@fwi.uva.nl and include a complete rewrite of alloc_frame_buffer which may not be completely backwardly compatibile, but is much cleaner and more general. You can now grab a sequence of images once (using a new capture flag METEOR_CAP_CONT_ONCE added by anuj@fwi.uva.nl) and use buffers of >4Mb. In order to allow this, a new ioctl (METEORGFROFF) returns the offsets into the frame buffer of each frame and the meteor_mem structure (see ioctl_meteor.h for the meteor_frame_offset structure). Version 1.4a 23/7/96 Very minor changes to tidy v1.4 and update some info in README Bug fixes from Mark Wolski (mwolski@rvssun3.gmr.com) Fix to FIELD_MODE so it resets properly Version 1.4b 5/11/96 Minor bug fixes Added equivalence between YUV_422 and YUV_PLANAR Changed name of vu4 to mvid, cleaned it up the command line interface and wrote a man page. Version 1.4c 20/2/97 Bug fixes (from burschka@mail.lpr.e-technik.tu-muenchen.de) INSTALLING: =========== 1. If you are running SMP, you must uncomment the two SMP lines near the top of the Makefile. 2. Change the SYSTEM variable near the top of the Makefile to whatever you want your default system to be. 3. Make sure you have a recent 1.3 series kernel. This driver will not work with anything much older than 1.3.72. 4. If you don't already have bigphysarea in your kernel, do patch -p1 {0,1} c 40 {0,1} to produce crw-r--r-- 1 root root 40, 0 Mar 14 22:19 /dev/mmetfgrab0 crw-r--r-- 1 root root 40, 0 Mar 14 22:19 /dev/meteor0 crw-r--r-- 1 root root 40, 1 Mar 14 22:19 /dev/mmetfgrab1 crw-r--r-- 1 root root 40, 1 Mar 14 22:19 /dev/meteor1 or whatever you prefer. The test programs will look for the mmetfgrab names. 8. Do make and make install in the source directory. You need to SU for the make install. The make install will do depmod -a for you. Just cut this line out if you will be using insmod/rmmod. Do this make while running the kernel image you intend to use the driver with. Your meteors can all use the same IRQ, and are set up for IRQ sharing with other devices. Note that the other devices are more than likely not, but if you can load the module, it means everything should be OK regarding IRQ allocation/sharing. 9. You will need to be running kerneld (recommended, it is cool) or manually modprobe the module. If you have problems, uncomment the DEBUG_METEOR and SHOW_CAPT_ERRORS lines in meteor.h and remake, etc to see a lot of chatter about what is going on. --Jim Bray