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.30-rc3 579 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. 405-- 406Please note that lavplay/lavrec are also included in the MJPEG-tools 407(http://mjpeg.sf.net/). 408 409=========================== 410 4115. Applications 412 413Applications known to work with this driver: 414 415TV viewing: 416* xawtv 417* kwintv 418* probably any TV application that supports video4linux or video4linux2. 419 420MJPEG capture/playback: 421* mjpegtools/lavtools (or Linux Video Studio) 422* gstreamer 423* mplayer 424 425General raw capture: 426* xawtv 427* gstreamer 428* probably any application that supports video4linux or video4linux2 429 430Video editing: 431* Cinelerra 432* MainActor 433* mjpegtools (or Linux Video Studio) 434 435=========================== 436 4376. Concerning buffer sizes, quality, output size etc. 438 439The zr36060 can do 1:2 JPEG compression. This is really the theoretical 440maximum that the chipset can reach. The driver can, however, limit compression 441to a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz) 442can't handle 1:2 compression without stopping capture after only a few minutes. 443With 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into 4441:4 max. compression mode. 445 446100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame 447(size 720x576). The JPEG fields are stored in YUY2 format, so the size of the 448fields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 = 449414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT 450(quantization) tables, and you'll get to something like 512kB per frame for 4511:2 compression. For 1:4 compression, you'd have frames of half this size. 452 453Some additional explanation by Martin Samuelsson, which also explains the 454importance of buffer sizes: 455-- 456> Hmm, I do not think it is really that way. With the current (downloaded 457> at 18:00 Monday) driver I get that output sizes for 10 sec: 458> -q 50 -b 128 : 24.283.332 Bytes 459> -q 50 -b 256 : 48.442.368 460> -q 25 -b 128 : 24.655.992 461> -q 25 -b 256 : 25.859.820 462 463I woke up, and can't go to sleep again. I'll kill some time explaining why 464this doesn't look strange to me. 465 466Let's do some math using a width of 704 pixels. I'm not sure whether the Buz 467actually use that number or not, but that's not too important right now. 468 469704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; 4703168 blocks per field. Each pixel consist of two bytes; 128 bytes per block; 4711024 bits per block. 100% in the new driver mean 1:2 compression; the maximum 472output becomes 512 bits per block. Actually 510, but 512 is simpler to use 473for calculations. 474 475Let's say that we specify d1q50. We thus want 256 bits per block; times 3168 476becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes 477here, so we don't need to do any fancy corrections for bits-per-pixel or such 478things. 101376 bytes per field. 479 480d1 video contains two fields per frame. Those sum up to 202752 bytes per 481frame, and one of those frames goes into each buffer. 482 483But wait a second! -b128 gives 128kB buffers! It's not possible to cram 484202752 bytes of JPEG data into 128kB! 485 486This is what the driver notice and automatically compensate for in your 487examples. Let's do some math using this information: 488 489128kB is 131072 bytes. In this buffer, we want to store two fields, which 490leaves 65536 bytes for each field. Using 3168 blocks per field, we get 49120.68686868... available bytes per block; 165 bits. We can't allow the 492request for 256 bits per block when there's only 165 bits available! The -q50 493option is silently overridden, and the -b128 option takes precedence, leaving 494us with the equivalence of -q32. 495 496This gives us a data rate of 165 bits per block, which, times 3168, sums up 497to 65340 bytes per field, out of the allowed 65536. The current driver has 498another level of rate limiting; it won't accept -q values that fill more than 4996/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be 500a safe bet. Personally, I think I would have lowered requested-bits-per-block 501by one, or something like that.) We can't use 165 bits per block, but have to 502lower it again, to 6/8 of the available buffer space: We end up with 124 bits 503per block, the equivalence of -q24. With 128kB buffers, you can't use greater 504than -q24 at -d1. (And PAL, and 704 pixels width...) 505 506The third example is limited to -q24 through the same process. The second 507example, using very similar calculations, is limited to -q48. The only 508example that actually grab at the specified -q value is the last one, which 509is clearly visible, looking at the file size. 510-- 511 512Conclusion: the quality of the resulting movie depends on buffer size, quality, 513whether or not you use 'low_bitrate=1' as insmod option for the zr36060.c 514module to do 1:4 instead of 1:2 compression, etc. 515 516If you experience timeouts, lowering the quality/buffersize or using 517'low_bitrate=1 as insmod option for zr36060.o might actually help, as is 518proven by the Buz. 519 520=========================== 521 5227. It hangs/crashes/fails/whatevers! Help! 523 524Make sure that the card has its own interrupts (see /proc/interrupts), check 525the output of dmesg at high verbosity (load zr36067.o with debug=2, 526load all other modules with debug=1). Check that your mainboard is favorable 527(see question 2) and if not, test the card in another computer. Also see the 528notes given in question 3 and try lowering quality/buffersize/capturesize 529if recording fails after a period of time. 530 531If all this doesn't help, give a clear description of the problem including 532detailed hardware information (memory+brand, mainboard+chipset+brand, which 533MJPEG card, processor, other PCI cards that might be of interest), give the 534system PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give 535the kernel version, driver version, glibc version, gcc version and any other 536information that might possibly be of interest. Also provide the dmesg output 537at high verbosity. See 'Contacting' on how to contact the developers. 538 539=========================== 540 5418. Maintainers/Contacting 542 543The driver is currently maintained by Laurent Pinchart and Ronald Bultje 544(<laurent.pinchart@skynet.be> and <rbultje@ronald.bitfreak.net>). For bug 545reports or questions, please contact the mailinglist instead of the developers 546individually. For user questions (i.e. bug reports or how-to questions), send 547an email to <mjpeg-users@lists.sf.net>, for developers (i.e. if you want to 548help programming), send an email to <mjpeg-developer@lists.sf.net>. See 549http://www.sf.net/projects/mjpeg/ for subscription information. 550 551For bug reports, be sure to include all the information as described in 552the section 'It hangs/crashes/fails/whatevers! Help!'. Please make sure 553you're using the latest version (http://mjpeg.sf.net/driver-zoran/). 554 555Previous maintainers/developers of this driver include Serguei Miridonov 556<mirsev@cicese.mx>, Wolfgang Scherr <scherr@net4you.net>, Dave Perks 557<dperks@ibm.net> and Rainer Johanni <Rainer@Johanni.de>. 558 559=========================== 560 5619. License 562 563This driver is distributed under the terms of the General Public License. 564 565 This program is free software; you can redistribute it and/or modify 566 it under the terms of the GNU General Public License as published by 567 the Free Software Foundation; either version 2 of the License, or 568 (at your option) any later version. 569 570 This program is distributed in the hope that it will be useful, 571 but WITHOUT ANY WARRANTY; without even the implied warranty of 572 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 573 GNU General Public License for more details. 574 575 You should have received a copy of the GNU General Public License 576 along with this program; if not, write to the Free Software 577 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 578 579See http://www.gnu.org/ for more information.