Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.28 580 lines 23 kB view raw
1Frequently Asked Questions: 2=========================== 3subject: unified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33) 4website: http://mjpeg.sourceforge.net/driver-zoran/ 5 61. What cards are supported 71.1 What the TV decoder can do an what not 81.2 What the TV encoder can do an what not 92. How do I get this damn thing to work 103. What mainboard should I use (or why doesn't my card work) 114. Programming interface 125. Applications 136. Concerning buffer sizes, quality, output size etc. 147. It hangs/crashes/fails/whatevers! Help! 158. Maintainers/Contacting 169. License 17 18=========================== 19 201. What cards are supported 21 22Iomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro 23DC10/DC10+/DC30/DC30+ and related boards (available under various names). 24 25Iomega Buz: 26* Zoran zr36067 PCI controller 27* Zoran zr36060 MJPEG codec 28* Philips saa7111 TV decoder 29* Philips saa7185 TV encoder 30Drivers to use: videodev, i2c-core, i2c-algo-bit, 31 videocodec, saa7111, saa7185, zr36060, zr36067 32Inputs/outputs: Composite and S-video 33Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 34Card number: 7 35 36AverMedia 6 Eyes AVS6EYES: 37* Zoran zr36067 PCI controller 38* Zoran zr36060 MJPEG codec 39* Samsung ks0127 TV decoder 40* Conexant bt866 TV encoder 41Drivers to use: videodev, i2c-core, i2c-algo-bit, 42 videocodec, ks0127, bt866, zr36060, zr36067 43Inputs/outputs: Six physical inputs. 1-6 are composite, 44 1-2, 3-4, 5-6 doubles as S-video, 45 1-3 triples as component. 46 One composite output. 47Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 48Card number: 8 49Not autodetected, card=8 is necessary. 50 51Linux Media Labs LML33: 52* Zoran zr36067 PCI controller 53* Zoran zr36060 MJPEG codec 54* Brooktree bt819 TV decoder 55* Brooktree bt856 TV encoder 56Drivers to use: videodev, i2c-core, i2c-algo-bit, 57 videocodec, bt819, bt856, zr36060, zr36067 58Inputs/outputs: Composite and S-video 59Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 60Card number: 5 61 62Linux Media Labs LML33R10: 63* Zoran zr36067 PCI controller 64* Zoran zr36060 MJPEG codec 65* Philips saa7114 TV decoder 66* Analog Devices adv7170 TV encoder 67Drivers to use: videodev, i2c-core, i2c-algo-bit, 68 videocodec, saa7114, adv7170, zr36060, zr36067 69Inputs/outputs: Composite and S-video 70Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 71Card number: 6 72 73Pinnacle/Miro DC10(new): 74* Zoran zr36057 PCI controller 75* Zoran zr36060 MJPEG codec 76* Philips saa7110a TV decoder 77* Analog Devices adv7176 TV encoder 78Drivers to use: videodev, i2c-core, i2c-algo-bit, 79 videocodec, saa7110, adv7175, zr36060, zr36067 80Inputs/outputs: Composite, S-video and Internal 81Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 82Card number: 1 83 84Pinnacle/Miro DC10+: 85* Zoran zr36067 PCI controller 86* Zoran zr36060 MJPEG codec 87* Philips saa7110a TV decoder 88* Analog Devices adv7176 TV encoder 89Drivers to use: videodev, i2c-core, i2c-algo-bit, 90 videocodec, sa7110, adv7175, zr36060, zr36067 91Inputs/outputs: Composite, S-video and Internal 92Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 93Card number: 2 94 95Pinnacle/Miro DC10(old): * 96* Zoran zr36057 PCI controller 97* Zoran zr36050 MJPEG codec 98* Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?) 99* Micronas vpx3220a TV decoder 100* mse3000 TV encoder or Analog Devices adv7176 TV encoder * 101Drivers to use: videodev, i2c-core, i2c-algo-bit, 102 videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067 103Inputs/outputs: Composite, S-video and Internal 104Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 105Card number: 0 106 107Pinnacle/Miro DC30: * 108* Zoran zr36057 PCI controller 109* Zoran zr36050 MJPEG codec 110* Zoran zr36016 Video Front End 111* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder 112* Analog Devices adv7176 TV encoder 113Drivers to use: videodev, i2c-core, i2c-algo-bit, 114 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067 115Inputs/outputs: Composite, S-video and Internal 116Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 117Card number: 3 118 119Pinnacle/Miro DC30+: * 120* Zoran zr36067 PCI controller 121* Zoran zr36050 MJPEG codec 122* Zoran zr36016 Video Front End 123* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder 124* Analog Devices adv7176 TV encoder 125Drivers to use: videodev, i2c-core, i2c-algo-bit, 126 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067 127Inputs/outputs: Composite, S-video and Internal 128Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 129Card number: 4 130 131Note: No module for the mse3000 is available yet 132Note: No module for the vpx3224 is available yet 133Note: use encoder=X or decoder=X for non-default i2c chips (see i2c-id.h) 134 135=========================== 136 1371.1 What the TV decoder can do an what not 138 139The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that 140information is not enough. There are several formats of the TV standards. 141And not every TV decoder is able to handle every format. Also the every 142combination is supported by the driver. There are currently 11 different 143tv broadcast formats all aver the world. 144 145The CCIR defines parameters needed for broadcasting the signal. 146The CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,... 147The CCIR says not much about the colorsystem used !!! 148And talking about a colorsystem says not to much about how it is broadcast. 149 150The CCIR standards A,E,F are not used any more. 151 152When you speak about NTSC, you usually mean the standard: CCIR - M using 153the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada 154and a few others. 155 156When you talk about PAL, you usually mean: CCIR - B/G using the PAL 157colorsystem which is used in many Countries. 158 159When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem 160which is used in France, and a few others. 161 162There the other version of SECAM, CCIR - D/K is used in Bulgaria, China, 163Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others. 164 165The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in 166Egypt, Libya, Sri Lanka, Syrain Arab. Rep. 167 168The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong, 169Ireland, Nigeria, South Africa. 170 171The CCIR - N uses the PAL colorsystem and PAL frame size but the NTSC framerate, 172and is used in Argentinia, Uruguay, an a few others 173 174We do not talk about how the audio is broadcast ! 175 176A rather good sites about the TV standards are: 177http://www.sony.jp/ServiceArea/Voltage_map/ 178http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/ 179and http://www.cabl.com/restaurant/channel.html 180 181Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly 182used in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same 183as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would 184be the same as NTSC 4.43. 185NTSC Combs seems to be a decoder mode where the decoder uses a comb filter 186to split coma and luma instead of a Delay line. 187 188But I did not defiantly find out what NTSC Comb is. 189 190Philips saa7111 TV decoder 191was introduced in 1997, is used in the BUZ and 192can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM 193 194Philips saa7110a TV decoder 195was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and 196can handle: PAL B/G, NTSC M and SECAM 197 198Philips saa7114 TV decoder 199was introduced in 2000, is used in the LML33R10 and 200can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM 201 202Brooktree bt819 TV decoder 203was introduced in 1996, and is used in the LML33 and 204can handle: PAL B/D/G/H/I, NTSC M 205 206Micronas vpx3220a TV decoder 207was introduced in 1996, is used in the DC30 and DC30+ and 208can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb 209 210Samsung ks0127 TV decoder 211is used in the AVS6EYES card and 212can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM 213 214=========================== 215 2161.2 What the TV encoder can do an what not 217 218The TV encoder are doing the "same" as the decoder, but in the oder direction. 219You feed them digital data and the generate a Composite or SVHS signal. 220For information about the colorsystems and TV norm take a look in the 221TV decoder section. 222 223Philips saa7185 TV Encoder 224was introduced in 1996, is used in the BUZ 225can generate: PAL B/G, NTSC M 226 227Brooktree bt856 TV Encoder 228was introduced in 1994, is used in the LML33 229can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina) 230 231Analog Devices adv7170 TV Encoder 232was introduced in 2000, is used in the LML300R10 233can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60 234 235Analog Devices adv7175 TV Encoder 236was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+ 237can generate: PAL B/D/G/H/I/N, PAL M, NTSC M 238 239ITT mse3000 TV encoder 240was introduced in 1991, is used in the DC10 old 241can generate: PAL , NTSC , SECAM 242 243Conexant bt866 TV encoder 244is used in AVS6EYES, and 245can generate: NTSC/PAL, PAL­M, PAL­N 246 247The adv717x, should be able to produce PAL N. But you find nothing PAL N 248specific in the registers. Seem that you have to reuse a other standard 249to generate PAL N, maybe it would work if you use the PAL M settings. 250 251========================== 252 2532. How do I get this damn thing to work 254 255Load zr36067.o. If it can't autodetect your card, use the card=X insmod 256option with X being the card number as given in the previous section. 257To have more than one card, use card=X1[,X2[,X3,[X4[..]]]] 258 259To automate this, add the following to your /etc/modprobe.conf: 260 261options zr36067 card=X1[,X2[,X3[,X4[..]]]] 262alias char-major-81-0 zr36067 263 264One thing to keep in mind is that this doesn't load zr36067.o itself yet. It 265just automates loading. If you start using xawtv, the device won't load on 266some systems, since you're trying to load modules as a user, which is not 267allowed ("permission denied"). A quick workaround is to add 'Load "v4l"' to 268XF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in 269one of your startup scripts (normally rc.local) if you don't use X. Both 270make sure that the modules are loaded on startup, under the root account. 271 272=========================== 273 2743. What mainboard should I use (or why doesn't my card work) 275 276<insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA. 277 278Experience tells us that people with a Buz, on average, have more problems 279than users with a DC10+/LML33. Also, it tells us that people owning a VIA- 280based mainboard (ktXXX, MVP3) have more problems than users with a mainboard 281based on a different chipset. Here's some notes from Andrew Stevens: 282-- 283Here's my experience of using LML33 and Buz on various motherboards: 284 285VIA MVP3 286 Forget it. Pointless. Doesn't work. 287Intel 430FX (Pentium 200) 288 LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie) 289Intel 440BX (early stepping) 290 LML33 tolerable. Buz starting to get annoying (6-10 frames/hour) 291Intel 440BX (late stepping) 292 Buz tolerable, LML3 almost perfect (occasional single frame drops) 293SiS735 294 LML33 perfect, Buz tolerable. 295VIA KT133(*) 296 LML33 starting to get annoying, Buz poor enough that I have up. 297 298Both 440BX boards were dual CPU versions. 299-- 300Bernhard Praschinger later added: 301-- 302AMD 751 303 Buz perfect-tolerable 304AMD 760 305 Buz perfect-tolerable 306-- 307In general, people on the user mailinglist won't give you much of a chance 308if you have a VIA-based motherboard. They may be cheap, but sometimes, you'd 309rather want to spend some more money on better boards. In general, VIA 310mainboard's IDE/PCI performance will also suck badly compared to others. 311You'll noticed the DC10+/DC30+ aren't mentioned anywhere in the overview. 312Basically, you can assume that if the Buz works, the LML33 will work too. If 313the LML33 works, the DC10+/DC30+ will work too. They're most tolerant to 314different mainboard chipsets from all of the supported cards. 315 316If you experience timeouts during capture, buy a better mainboard or lower 317the quality/buffersize during capture (see 'Concerning buffer sizes, quality, 318output size etc.'). If it hangs, there's little we can do as of now. Check 319your IRQs and make sure the card has its own interrupts. 320 321=========================== 322 3234. Programming interface 324 325This driver conforms to video4linux and video4linux2, both can be used to 326use the driver. Since video4linux didn't provide adequate calls to fully 327use the cards' features, we've introduced several programming extensions, 328which are currently officially accepted in the 2.4.x branch of the kernel. 329These extensions are known as the v4l/mjpeg extensions. See zoran.h for 330details (structs/ioctls). 331 332Information - video4linux: 333http://roadrunner.swansea.linux.org.uk/v4lapi.shtml 334Documentation/video4linux/API.html 335/usr/include/linux/videodev.h 336 337Information - video4linux/mjpeg extensions: 338./zoran.h 339(also see below) 340 341Information - video4linux2: 342http://linuxtv.org 343http://v4l2spec.bytesex.org/ 344/usr/include/linux/videodev2.h 345 346More information on the video4linux/mjpeg extensions, by Serguei 347Miridonovi and Rainer Johanni: 348-- 349The ioctls for that interface are as follows: 350 351BUZIOC_G_PARAMS 352BUZIOC_S_PARAMS 353 354Get and set the parameters of the buz. The user should always do a 355BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default 356settings, change what he likes and then make a BUZIOC_S_PARAMS call. 357 358BUZIOC_REQBUFS 359 360Before being able to capture/playback, the user has to request 361the buffers he is wanting to use. Fill the structure 362zoran_requestbuffers with the size (recommended: 256*1024) and 363the number (recommended 32 up to 256). There are no such restrictions 364as for the Video for Linux buffers, you should LEAVE SUFFICIENT 365MEMORY for your system however, else strange things will happen .... 366On return, the zoran_requestbuffers structure contains number and 367size of the actually allocated buffers. 368You should use these numbers for doing a mmap of the buffers 369into the user space. 370The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap 371maps the MJPEG buffer instead of the V4L buffers. 372 373BUZIOC_QBUF_CAPT 374BUZIOC_QBUF_PLAY 375 376Queue a buffer for capture or playback. The first call also starts 377streaming capture. When streaming capture is going on, you may 378only queue further buffers or issue syncs until streaming 379capture is switched off again with a argument of -1 to 380a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl. 381 382BUZIOC_SYNC 383 384Issue this ioctl when all buffers are queued. This ioctl will 385block until the first buffer becomes free for saving its 386data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY). 387 388BUZIOC_G_STATUS 389 390Get the status of the input lines (video source connected/norm). 391 392For programming example, please, look at lavrec.c and lavplay.c code in 393lavtools-1.2p2 package (URL: http://www.cicese.mx/~mirsev/DC10plus/) 394and the 'examples' directory in the original Buz driver distribution. 395 396Additional notes for software developers: 397 398 The driver returns maxwidth and maxheight parameters according to 399 the current TV standard (norm). Therefore, the software which 400 communicates with the driver and "asks" for these parameters should 401 first set the correct norm. Well, it seems logically correct: TV 402 standard is "more constant" for current country than geometry 403 settings of a variety of TV capture cards which may work in ITU or 404 square pixel format. Remember that users now can lock the norm to 405 avoid any ambiguity. 406-- 407Please note that lavplay/lavrec are also included in the MJPEG-tools 408(http://mjpeg.sf.net/). 409 410=========================== 411 4125. Applications 413 414Applications known to work with this driver: 415 416TV viewing: 417* xawtv 418* kwintv 419* probably any TV application that supports video4linux or video4linux2. 420 421MJPEG capture/playback: 422* mjpegtools/lavtools (or Linux Video Studio) 423* gstreamer 424* mplayer 425 426General raw capture: 427* xawtv 428* gstreamer 429* probably any application that supports video4linux or video4linux2 430 431Video editing: 432* Cinelerra 433* MainActor 434* mjpegtools (or Linux Video Studio) 435 436=========================== 437 4386. Concerning buffer sizes, quality, output size etc. 439 440The zr36060 can do 1:2 JPEG compression. This is really the theoretical 441maximum that the chipset can reach. The driver can, however, limit compression 442to a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz) 443can't handle 1:2 compression without stopping capture after only a few minutes. 444With 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into 4451:4 max. compression mode. 446 447100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame 448(size 720x576). The JPEG fields are stored in YUY2 format, so the size of the 449fields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 = 450414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT 451(quantization) tables, and you'll get to something like 512kB per frame for 4521:2 compression. For 1:4 compression, you'd have frames of half this size. 453 454Some additional explanation by Martin Samuelsson, which also explains the 455importance of buffer sizes: 456-- 457> Hmm, I do not think it is really that way. With the current (downloaded 458> at 18:00 Monday) driver I get that output sizes for 10 sec: 459> -q 50 -b 128 : 24.283.332 Bytes 460> -q 50 -b 256 : 48.442.368 461> -q 25 -b 128 : 24.655.992 462> -q 25 -b 256 : 25.859.820 463 464I woke up, and can't go to sleep again. I'll kill some time explaining why 465this doesn't look strange to me. 466 467Let's do some math using a width of 704 pixels. I'm not sure whether the Buz 468actually use that number or not, but that's not too important right now. 469 470704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; 4713168 blocks per field. Each pixel consist of two bytes; 128 bytes per block; 4721024 bits per block. 100% in the new driver mean 1:2 compression; the maximum 473output becomes 512 bits per block. Actually 510, but 512 is simpler to use 474for calculations. 475 476Let's say that we specify d1q50. We thus want 256 bits per block; times 3168 477becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes 478here, so we don't need to do any fancy corrections for bits-per-pixel or such 479things. 101376 bytes per field. 480 481d1 video contains two fields per frame. Those sum up to 202752 bytes per 482frame, and one of those frames goes into each buffer. 483 484But wait a second! -b128 gives 128kB buffers! It's not possible to cram 485202752 bytes of JPEG data into 128kB! 486 487This is what the driver notice and automatically compensate for in your 488examples. Let's do some math using this information: 489 490128kB is 131072 bytes. In this buffer, we want to store two fields, which 491leaves 65536 bytes for each field. Using 3168 blocks per field, we get 49220.68686868... available bytes per block; 165 bits. We can't allow the 493request for 256 bits per block when there's only 165 bits available! The -q50 494option is silently overridden, and the -b128 option takes precedence, leaving 495us with the equivalence of -q32. 496 497This gives us a data rate of 165 bits per block, which, times 3168, sums up 498to 65340 bytes per field, out of the allowed 65536. The current driver has 499another level of rate limiting; it won't accept -q values that fill more than 5006/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be 501a safe bet. Personally, I think I would have lowered requested-bits-per-block 502by one, or something like that.) We can't use 165 bits per block, but have to 503lower it again, to 6/8 of the available buffer space: We end up with 124 bits 504per block, the equivalence of -q24. With 128kB buffers, you can't use greater 505than -q24 at -d1. (And PAL, and 704 pixels width...) 506 507The third example is limited to -q24 through the same process. The second 508example, using very similar calculations, is limited to -q48. The only 509example that actually grab at the specified -q value is the last one, which 510is clearly visible, looking at the file size. 511-- 512 513Conclusion: the quality of the resulting movie depends on buffer size, quality, 514whether or not you use 'low_bitrate=1' as insmod option for the zr36060.c 515module to do 1:4 instead of 1:2 compression, etc. 516 517If you experience timeouts, lowering the quality/buffersize or using 518'low_bitrate=1 as insmod option for zr36060.o might actually help, as is 519proven by the Buz. 520 521=========================== 522 5237. It hangs/crashes/fails/whatevers! Help! 524 525Make sure that the card has its own interrupts (see /proc/interrupts), check 526the output of dmesg at high verbosity (load zr36067.o with debug=2, 527load all other modules with debug=1). Check that your mainboard is favorable 528(see question 2) and if not, test the card in another computer. Also see the 529notes given in question 3 and try lowering quality/buffersize/capturesize 530if recording fails after a period of time. 531 532If all this doesn't help, give a clear description of the problem including 533detailed hardware information (memory+brand, mainboard+chipset+brand, which 534MJPEG card, processor, other PCI cards that might be of interest), give the 535system PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give 536the kernel version, driver version, glibc version, gcc version and any other 537information that might possibly be of interest. Also provide the dmesg output 538at high verbosity. See 'Contacting' on how to contact the developers. 539 540=========================== 541 5428. Maintainers/Contacting 543 544The driver is currently maintained by Laurent Pinchart and Ronald Bultje 545(<laurent.pinchart@skynet.be> and <rbultje@ronald.bitfreak.net>). For bug 546reports or questions, please contact the mailinglist instead of the developers 547individually. For user questions (i.e. bug reports or how-to questions), send 548an email to <mjpeg-users@lists.sf.net>, for developers (i.e. if you want to 549help programming), send an email to <mjpeg-developer@lists.sf.net>. See 550http://www.sf.net/projects/mjpeg/ for subscription information. 551 552For bug reports, be sure to include all the information as described in 553the section 'It hangs/crashes/fails/whatevers! Help!'. Please make sure 554you're using the latest version (http://mjpeg.sf.net/driver-zoran/). 555 556Previous maintainers/developers of this driver include Serguei Miridonov 557<mirsev@cicese.mx>, Wolfgang Scherr <scherr@net4you.net>, Dave Perks 558<dperks@ibm.net> and Rainer Johanni <Rainer@Johanni.de>. 559 560=========================== 561 5629. License 563 564This driver is distributed under the terms of the General Public License. 565 566 This program is free software; you can redistribute it and/or modify 567 it under the terms of the GNU General Public License as published by 568 the Free Software Foundation; either version 2 of the License, or 569 (at your option) any later version. 570 571 This program is distributed in the hope that it will be useful, 572 but WITHOUT ANY WARRANTY; without even the implied warranty of 573 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 574 GNU General Public License for more details. 575 576 You should have received a copy of the GNU General Public License 577 along with this program; if not, write to the Free Software 578 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 579 580See http://www.gnu.org/ for more information.