Blame view

Documentation/video4linux/w9968cf.txt 17.6 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1

6e2040900   Michael Krufky   V4L/DVB (4042): D...
2
3
4
  		   W996[87]CF JPEG USB Dual Mode Camera Chip
  		     Driver for Linux 2.6 (basic version)
  		   =========================================
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5

6e2040900   Michael Krufky   V4L/DVB (4042): D...
6
  			       - Documentation -
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
7
8
9
10
11
12
13
14
15
16
17
  
  
  Index
  =====
  1.  Copyright
  2.  Disclaimer
  3.  License
  4.  Overview
  5.  Supported devices
  6.  Module dependencies
  7.  Module loading
992caacf1   Matt LaPlante   Fix typos in Docu...
18
  8.  Module parameters
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  9.  Contact information
  10. Credits
  
  
  1. Copyright
  ============
  Copyright (C) 2002-2004 by Luca Risolia <luca.risolia@studio.unibo.it>
  
  
  2. Disclaimer
  =============
  Winbond is a trademark of Winbond Electronics Corporation.
  This software is not sponsored or developed by Winbond.
  
  
  3. License
  ==========
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  
  
  4. Overview
  ===========
  This driver supports the video streaming capabilities of the devices mounting
  Winbond W9967CF and Winbond W9968CF JPEG USB Dual Mode Camera Chips. OV681
  based cameras should be supported as well.
  
  The driver is divided into two modules: the basic one, "w9968cf", is needed for
  the supported devices to work; the second one, "w9968cf-vpp", is an optional
  module, which provides some useful video post-processing functions like video
7f2c01ab8   Adrian Bunk   [PATCH] USB: driv...
60
  decoding, up-scaling and colour conversions.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
61

7f2c01ab8   Adrian Bunk   [PATCH] USB: driv...
62
63
64
65
  Note that the official kernels do neither include nor support the second
  module for performance purposes. Therefore, it is always recommended to
  download and install the latest and complete release of the driver,
  replacing the existing one, if present.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  
  The latest and full-featured version of the W996[87]CF driver can be found at:
  http://www.linux-projects.org. Please refer to the documentation included in
  that package, if you are going to use it.
  
  Up to 32 cameras can be handled at the same time. They can be connected and
  disconnected from the host many times without turning off the computer, if
  your system supports the hotplug facility.
  
  To change the default settings for each camera, many parameters can be passed
  through command line when the module is loaded into memory.
  
  The driver relies on the Video4Linux, USB and I2C core modules. It has been
  designed to run properly on SMP systems as well. An additional module,
  "ovcamchip", is mandatory; it provides support for some OmniVision image
  sensors connected to the W996[87]CF chips; if found in the system, the module
  will be automatically loaded by default (provided that the kernel has been
  compiled with the automatic module loading option).
  
  
  5. Supported devices
  ====================
  At the moment, known W996[87]CF and OV681 based devices are:
  - Aroma Digi Pen VGA Dual Mode ADG-5000 (unknown image sensor)
  - AVerMedia AVerTV USB (SAA7111A, Philips FI1216Mk2 tuner, PT2313L audio chip)
  - Creative Labs Video Blaster WebCam Go (OmniVision OV7610 sensor)
  - Creative Labs Video Blaster WebCam Go Plus (OmniVision OV7620 sensor)
  - Lebon LDC-035A (unknown image sensor)
  - Ezonics EZ-802 EZMega Cam (OmniVision OV8610C sensor)
  - OmniVision OV8610-EDE (OmniVision OV8610 sensor)
  - OPCOM Digi Pen VGA Dual Mode Pen Camera (unknown image sensor)
  - Pretec Digi Pen-II (OmniVision OV7620 sensor)
  - Pretec DigiPen-480 (OmniVision OV8610 sensor)
  
  If you know any other W996[87]CF or OV681 based cameras, please contact me.
  
  The list above does not imply that all those devices work with this driver: up
  until now only webcams that have an image sensor supported by the "ovcamchip"
  module work. Kernel messages will always tell you whether this is case.
  
  Possible external microcontrollers of those webcams are not supported: this
  means that still images cannot be downloaded from the device memory.
  
  Furthermore, it's worth to note that I was only able to run tests on my
  "Creative Labs Video Blaster WebCam Go". Donations of other models, for
  additional testing and full support, would be much appreciated.
  
  
  6. Module dependencies
  ======================
  For it to work properly, the driver needs kernel support for Video4Linux, USB
  and I2C, and the "ovcamchip" module for the image sensor. Make sure you are not
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
118
  actually using any external "ovcamchip" module, given that the W996[87]CF
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
  driver depends on the version of the module present in the official kernels.
  
  The following options of the kernel configuration file must be enabled and
  corresponding modules must be compiled:
  
  	# Multimedia devices
  	#
  	CONFIG_VIDEO_DEV=m
  
  	# I2C support
  	#
  	CONFIG_I2C=m
  
  The I2C core module can be compiled statically in the kernel as well.
  
  	# OmniVision Camera Chip support
  	#
  	CONFIG_VIDEO_OVCAMCHIP=m
  
  	# USB support
  	#
  	CONFIG_USB=m
  
  In addition, depending on the hardware being used, only one of the modules
  below is necessary:
  
  	# USB Host Controller Drivers
  	#
  	CONFIG_USB_EHCI_HCD=m
  	CONFIG_USB_UHCI_HCD=m
  	CONFIG_USB_OHCI_HCD=m
  
  And finally:
  
  	# USB Multimedia devices
  	#
  	CONFIG_USB_W9968CF=m
  
  
  7. Module loading
  =================
  To use the driver, it is necessary to load the "w9968cf" module into memory
  after every other module required.
  
  Loading can be done this way, from root:
  
  	[root@localhost home]# modprobe usbcore
  	[root@localhost home]# modprobe i2c-core
  	[root@localhost home]# modprobe videodev
  	[root@localhost home]# modprobe w9968cf
  
  At this point the pertinent devices should be recognized: "dmesg" can be used
  to analyze kernel messages:
  
  	[user@localhost home]$ dmesg
  
  There are a lot of parameters the module can use to change the default
  settings for each device. To list every possible parameter with a brief
  explanation about them and which syntax to use, it is recommended to run the
  "modinfo" command:
  
  	[root@locahost home]# modinfo w9968cf
  
  
  8. Module parameters
  ====================
  Module parameters are listed below:
  -------------------------------------------------------------------------------
  Name:            ovmod_load
  Type:            bool
  Syntax:          <0|1>
  Description:     Automatic 'ovcamchip' module loading: 0 disabled, 1 enabled.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
191
192
193
194
  		 If enabled, 'insmod' searches for the required 'ovcamchip'
  		 module in the system, according to its configuration, and
  		 loads that module automatically. This action is performed as
  		 once soon as the 'w9968cf' module is loaded into memory.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
195
  Default:         1
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
196
  -------------------------------------------------------------------------------
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
197
198
199
  Name:           simcams
  Type:           int
  Syntax:         <n>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
200
  Description:    Number of cameras allowed to stream simultaneously.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
201
  		n may vary from 0 to 32.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
202
203
204
205
  Default:        32
  -------------------------------------------------------------------------------
  Name:           video_nr
  Type:           int array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
206
  Syntax:         <-1|n[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
207
  Description:    Specify V4L minor mode number.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
208
209
210
211
212
213
214
  		-1 = use next available
  		 n = use minor number n
  		You can specify up to 32 cameras this way.
  		For example:
  		video_nr=-1,2,-1 would assign minor number 2 to the second
  		recognized camera and use auto for the first one and for every
  		other camera.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
215
216
217
218
  Default:        -1
  -------------------------------------------------------------------------------
  Name:           packet_size
  Type:           int array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
219
  Syntax:         <n[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
220
  Description:    Specify the maximum data payload size in bytes for alternate
6e2040900   Michael Krufky   V4L/DVB (4042): D...
221
  		settings, for each device. n is scaled between 63 and 1023.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
222
223
224
225
226
227
  Default:        1023
  -------------------------------------------------------------------------------
  Name:           max_buffers
  Type:           int array (min = 0, max = 32)
  Syntax:         <n[,...]>
  Description:    For advanced users.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
228
229
  		Specify the maximum number of video frame buffers to allocate
  		for each device, from 2 to 32.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
230
231
232
233
  Default:        2
  -------------------------------------------------------------------------------
  Name:           double_buffer
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
234
  Syntax:         <0|1[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
235
  Description:    Hardware double buffering: 0 disabled, 1 enabled.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
236
237
238
  		It should be enabled if you want smooth video output: if you
  		obtain out of sync. video, disable it, or try to
  		decrease the 'clockdiv' module parameter value.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
239
240
241
242
  Default:        1 for every device.
  -------------------------------------------------------------------------------
  Name:           clamping
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
243
  Syntax:         <0|1[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
244
245
246
247
248
  Description:    Video data clamping: 0 disabled, 1 enabled.
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           filter_type
  Type:           int array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
249
  Syntax:         <0|1|2[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
250
  Description:    Video filter type.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
251
252
253
  		0 none, 1 (1-2-1) 3-tap filter, 2 (2-3-6-3-2) 5-tap filter.
  		The filter is used to reduce noise and aliasing artifacts
  		produced by the CCD or CMOS image sensor.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
254
255
256
257
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           largeview
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
258
  Syntax:         <0|1[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
259
260
261
262
263
  Description:    Large view: 0 disabled, 1 enabled.
  Default:        1 for every device.
  -------------------------------------------------------------------------------
  Name:           upscaling
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
264
  Syntax:         <0|1[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
265
  Description:    Software scaling (for non-compressed video only):
6e2040900   Michael Krufky   V4L/DVB (4042): D...
266
267
268
  		0 disabled, 1 enabled.
  		Disable it if you have a slow CPU or you don't have enough
  		memory.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
269
270
271
272
273
274
275
  Default:        0 for every device.
  Note:           If 'w9968cf-vpp' is not present, this parameter is set to 0.
  -------------------------------------------------------------------------------
  Name:           decompression
  Type:           int array (min = 0, max = 32)
  Syntax:         <0|1|2[,...]>
  Description:    Software video decompression:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
276
277
278
279
280
281
282
283
  		0 = disables decompression
  		    (doesn't allow formats needing decompression).
  		1 = forces decompression
  		    (allows formats needing decompression only).
  		2 = allows any permitted formats.
  		Formats supporting (de)compressed video are YUV422P and
  		YUV420P/YUV420 in any resolutions where width and height are
  		multiples of 16.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
284
285
  Default:        2 for every device.
  Note:           If 'w9968cf-vpp' is not present, forcing decompression is not
6e2040900   Michael Krufky   V4L/DVB (4042): D...
286
  		allowed; in this case this parameter is set to 2.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
287
288
289
290
291
  -------------------------------------------------------------------------------
  Name:           force_palette
  Type:           int array (min = 0, max = 32)
  Syntax:         <0|9|10|13|15|8|7|1|6|3|4|5[,...]>
  Description:    Force picture palette.
6e2040900   Michael Krufky   V4L/DVB (4042): D...
292
293
294
295
296
297
298
299
300
301
302
303
304
305
  		In order:
  		 0 = Off - allows any of the following formats:
  		 9 = UYVY    16 bpp - Original video, compression disabled
  		10 = YUV420  12 bpp - Original video, compression enabled
  		13 = YUV422P 16 bpp - Original video, compression enabled
  		15 = YUV420P 12 bpp - Original video, compression enabled
  		 8 = YUVY    16 bpp - Software conversion from UYVY
  		 7 = YUV422  16 bpp - Software conversion from UYVY
  		 1 = GREY     8 bpp - Software conversion from UYVY
  		 6 = RGB555  16 bpp - Software conversion from UYVY
  		 3 = RGB565  16 bpp - Software conversion from UYVY
  		 4 = RGB24   24 bpp - Software conversion from UYVY
  		 5 = RGB32   32 bpp - Software conversion from UYVY
  		When not 0, this parameter will override 'decompression'.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
306
307
308
309
310
311
312
  Default:        0 for every device. Initial palette is 9 (UYVY).
  Note:           If 'w9968cf-vpp' is not present, this parameter is set to 9.
  -------------------------------------------------------------------------------
  Name:           force_rgb
  Type:           bool array (min = 0, max = 32)
  Syntax:         <0|1[,...]>
  Description:    Read RGB video data instead of BGR:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
313
314
315
  		1 = use RGB component ordering.
  		0 = use BGR component ordering.
  		This parameter has effect when using RGBX palettes only.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
316
317
318
319
320
321
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           autobright
  Type:           bool array (min = 0, max = 32)
  Syntax:         <0|1[,...]>
  Description:    Image sensor automatically changes brightness:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
322
  		0 = no, 1 = yes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
323
324
325
326
327
328
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           autoexp
  Type:           bool array (min = 0, max = 32)
  Syntax:         <0|1[,...]>
  Description:    Image sensor automatically changes exposure:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
329
  		0 = no, 1 = yes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
330
331
332
333
334
335
  Default:        1 for every device.
  -------------------------------------------------------------------------------
  Name:           lightfreq
  Type:           int array (min = 0, max = 32)
  Syntax:         <50|60[,...]>
  Description:    Light frequency in Hz:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
336
  		50 for European and Asian lighting, 60 for American lighting.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
337
338
339
340
  Default:        50 for every device.
  -------------------------------------------------------------------------------
  Name:           bandingfilter
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
341
342
  Syntax:         <0|1[,...]>
  Description:    Banding filter to reduce effects of fluorescent
6e2040900   Michael Krufky   V4L/DVB (4042): D...
343
344
345
346
  		lighting:
  		0 disabled, 1 enabled.
  		This filter tries to reduce the pattern of horizontal
  		light/dark bands caused by some (usually fluorescent) lighting.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
347
348
349
350
351
352
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           clockdiv
  Type:           int array (min = 0, max = 32)
  Syntax:         <-1|n[,...]>
  Description:    Force pixel clock divisor to a specific value (for experts):
6e2040900   Michael Krufky   V4L/DVB (4042): D...
353
354
355
  		n may vary from 0 to 127.
  		-1 for automatic value.
  		See also the 'double_buffer' module parameter.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
356
357
358
359
360
361
  Default:        -1 for every device.
  -------------------------------------------------------------------------------
  Name:           backlight
  Type:           bool array (min = 0, max = 32)
  Syntax:         <0|1[,...]>
  Description:    Objects are lit from behind:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
362
  		0 = no, 1 = yes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
363
364
365
366
367
368
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           mirror
  Type:           bool array (min = 0, max = 32)
  Syntax:         <0|1[,...]>
  Description:    Reverse image horizontally:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
369
  		0 = no, 1 = yes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
370
371
372
373
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           monochrome
  Type:           bool array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
374
  Syntax:         <0|1[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
375
  Description:    The image sensor is monochrome:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
376
  		0 = no, 1 = yes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
377
378
379
380
381
382
  Default:        0 for every device.
  -------------------------------------------------------------------------------
  Name:           brightness
  Type:           long array (min = 0, max = 32)
  Syntax:         <n[,...]>
  Description:    Set picture brightness (0-65535).
6e2040900   Michael Krufky   V4L/DVB (4042): D...
383
  		This parameter has no effect if 'autobright' is enabled.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
  Default:        31000 for every device.
  -------------------------------------------------------------------------------
  Name:           hue
  Type:           long array (min = 0, max = 32)
  Syntax:         <n[,...]>
  Description:    Set picture hue (0-65535).
  Default:        32768 for every device.
  -------------------------------------------------------------------------------
  Name:           colour
  Type:           long array (min = 0, max = 32)
  Syntax:         <n[,...]>
  Description:    Set picture saturation (0-65535).
  Default:        32768 for every device.
  -------------------------------------------------------------------------------
  Name:           contrast
  Type:           long array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
400
  Syntax:         <n[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
401
402
403
404
405
  Description:    Set picture contrast (0-65535).
  Default:        50000 for every device.
  -------------------------------------------------------------------------------
  Name:           whiteness
  Type:           long array (min = 0, max = 32)
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
406
  Syntax:         <n[,...]>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
407
408
409
410
411
  Description:    Set picture whiteness (0-65535).
  Default:        32768 for every device.
  -------------------------------------------------------------------------------
  Name:           debug
  Type:           int
1864cfb15   Michael Krufky   V4L/DVB (3653h): ...
412
  Syntax:         <n>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
413
  Description:    Debugging information level, from 0 to 6:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
414
415
  		0 = none (use carefully)
  		1 = critical errors
f65e51d74   Sylvestre Ledru   Documentation: fi...
416
  		2 = significant information
6e2040900   Michael Krufky   V4L/DVB (4042): D...
417
418
419
420
421
422
  		3 = configuration or general messages
  		4 = warnings
  		5 = called functions
  		6 = function internals
  		Level 5 and 6 are useful for testing only, when only one
  		device is used.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
423
424
425
426
427
428
  Default:        2
  -------------------------------------------------------------------------------
  Name:           specific_debug
  Type:           bool
  Syntax:         <0|1>
  Description:    Enable or disable specific debugging messages:
6e2040900   Michael Krufky   V4L/DVB (4042): D...
429
430
  		0 = print messages concerning every level <= 'debug' level.
  		1 = print messages concerning the level indicated by 'debug'.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
  Default:        0
  -------------------------------------------------------------------------------
  
  
  9. Contact information
  ======================
  I may be contacted by e-mail at <luca.risolia@studio.unibo.it>.
  
  I can accept GPG/PGP encrypted e-mail. My GPG key ID is 'FCE635A4'.
  My public 1024-bit key should be available at your keyserver; the fingerprint
  is: '88E8 F32F 7244 68BA 3958  5D40 99DA 5D2A FCE6 35A4'.
  
  
  10. Credits
  ==========
  The development would not have proceed much further without having looked at
  the source code of other drivers and without the help of several persons; in
  particular:
  
  - the I2C interface to kernel and high-level image sensor control routines have
    been taken from the OV511 driver by Mark McClelland;
  
  - memory management code has been copied from the bttv driver by Ralph Metzler,
    Marcus Metzler and Gerd Knorr;
  
  - the low-level I2C read function has been written by Frederic Jouault;
  
  - the low-level I2C fast write function has been written by Piotr Czerczak.