2011-03-14 08:49:28 -03:00
/*
* DivIO nw80x subdriver
*
* Copyright ( C ) 2011 Jean - François Moine ( http : //moinejf.free.fr)
* Copyright ( C ) 2003 Sylvain Munaut < tnt @ 246 tNt . com >
* Kjell Claesson < keyson @ users . sourceforge . net >
*
* 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
* 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 . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
# define MODULE_NAME "nw80x"
# include "gspca.h"
MODULE_AUTHOR ( " Jean-Francois Moine <http://moinejf.free.fr> " ) ;
MODULE_DESCRIPTION ( " NW80x USB Camera Driver " ) ;
MODULE_LICENSE ( " GPL " ) ;
static int webcam ;
/* controls */
enum e_ctrl {
GAIN ,
EXPOSURE ,
AUTOGAIN ,
NCTRLS /* number of controls */
} ;
/* specific webcam descriptor */
struct sd {
struct gspca_dev gspca_dev ; /* !! must be the first item */
struct gspca_ctrl ctrls [ NCTRLS ] ;
u32 ae_res ;
s8 ag_cnt ;
# define AG_CNT_START 13
u8 bridge ;
u8 webcam ;
} ;
enum bridges {
2011-03-22 05:16:11 -03:00
BRIDGE_NW800 , /* and et31x110 */
2011-03-14 08:49:28 -03:00
BRIDGE_NW801 ,
BRIDGE_NW802 ,
} ;
enum webcams {
Generic800 ,
SpaceCam , /* Trust 120 SpaceCam */
SpaceCam2 , /* other Trust 120 SpaceCam */
Cvideopro , /* Conceptronic Video Pro */
Dlink350c ,
DS3303u ,
Kr651us ,
Kritter ,
Mustek300 ,
Proscope ,
Twinkle ,
DvcV6 ,
P35u ,
Generic802 ,
NWEBCAMS /* number of webcams */
} ;
/*
- webcams :
- Typhoon Webcam 100 USB ( 06 a5 : 0000 )
nw800
- Trust SpaceCam120 or SpaceCam100 PORTABLE ( 06 a5 : d800 )
nw801 SpaceCam . init
or trust_space . init if no LED ( ? )
- Divio Chicony TwinkleCam ( 06 a5 : d800 ) ?
nw800 Twinkle . init
- Plustek Opticam 500U or ProLink DS3303u
nw801 DS3303u . init
- Logitech QuickCam Pro ( dark focus ring ) ( 046 d : d001 )
nw801
- EZCam Pro p35u ( 052 b : d001 , 06 a5 : d001 and 06 be : d001 )
nw801 - sensor Sharp IR3Y38M
- AVerMedia Camguard ( 072 8 : d001 )
nw801
- Panasonic GP - KR651US ( 06 a5 : d001 )
nw802 kr651us . init
- iRez Kritter cam
nw802 kritter . init
- D - link dru - 350 c cam
nw802 d - link - 350 c . init
- The Scope USB Microscope M2 ( ProScope )
= Divio ProLink DS3303u WebCam ( 06 a5 : d001 )
= Scalar USB Microscope M2 ( Proscope )
nw802 proscope . init
- Conceptronic Video Pro ' CVIDEOPRO USB Webcam CCD ' ( 06 a5 : d001 )
nw802 cvideopro . init
- Mustek Wcam 300 mini
nw802 mustek_300_mini . init
- D - Link NetQam Pro 250 plus ( 06 a5 : d001 )
- Showcam NGS webcam ( 065 a : d800 )
- sceptre svc300
- DSB - C110 ( 06 a5 : d800 )
et31x110
- DVC V6 ( 0502 : d001 )
nw802
- registers
nw800 / et31x110 nw801 nw802
0000. .009 e 0000. .00 a1 0000. .009 e
0200. .0211 id id
0300. .0302 id id
0400. .0406 ( inex ) 0400. .0406
0500. .0505 0500. .0506 ( inex )
0600. .061 a 0600. .0601 0600. .0601
0800. .0814 id id
1000. .109 c 1000. .10 a1 1000. .109 a
080 c : luma ( nw800 / nw802 )
080 d : luma ( nw801 )
1004 : LUT ( ? )
100 b : R gain ( 0. .63 )
100 c : B gain
100 d : G gain
100 e : Y gain
100f : U gain
1010 : V gain
1019 : clock ( nw801 - bit 0x08 : indoor / outdoor )
101 b : shutter 1 ( 0. .255 )
101 c : shutter 2
1026 : BP = gain ( nw801 )
1041 , 1052 , 1063 , 1074 : LUT base ( nw802 )
1048 , 1059 , 106 a , 107 b : LUT base ( nw801 )
- resolutions
nw800 352 x288
nw801 / nw802 320 x240 - 640 x480
*/
2011-03-22 05:16:11 -03:00
static const struct v4l2_pix_format cif_mode [ ] = {
2011-03-14 08:49:28 -03:00
{ 352 , 288 , V4L2_PIX_FMT_JPGL , V4L2_FIELD_NONE ,
. bytesperline = 352 ,
. sizeimage = 352 * 288 * 4 / 8 ,
. colorspace = V4L2_COLORSPACE_JPEG }
} ;
static const struct v4l2_pix_format vga_mode [ ] = {
{ 320 , 240 , V4L2_PIX_FMT_JPGL , V4L2_FIELD_NONE ,
. bytesperline = 320 ,
. sizeimage = 320 * 240 * 4 / 8 ,
. colorspace = V4L2_COLORSPACE_JPEG } ,
{ 640 , 480 , V4L2_PIX_FMT_JPGL , V4L2_FIELD_NONE ,
. bytesperline = 640 ,
. sizeimage = 640 * 480 * 3 / 8 ,
. colorspace = V4L2_COLORSPACE_JPEG } ,
} ;
/*
* The sequences below contain :
* - 1 st and 2 nd bytes : either
* - register number ( BE )
* - I2C0 + i2c address
* - 3 rd byte : data length ( = 0 for end of sequence )
* - n bytes : data
*/
# define I2C0 0xff
2011-03-22 05:16:11 -03:00
2011-03-14 08:49:28 -03:00
static const u8 nw800_init [ ] = {
2011-03-22 05:46:24 -03:00
0x04 , 0x05 , 0x01 , 0x61 ,
0x04 , 0x04 , 0x01 , 0x01 ,
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
2011-03-22 05:46:24 -03:00
0x04 , 0x04 , 0x03 , 0x00 , 0x00 , 0x00 ,
0x05 , 0x05 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
static const u8 nw800_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0xc0 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x43 , 0x00 , 0xb4 , 0x01 , 0x10 , 0x00 , 0x4f ,
0xef , 0x0e , 0x00 , 0x74 , 0x01 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x3e , 0x00 , 0x24 ,
0x03 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xa0 , 0x48 , 0xc3 , 0x02 , 0x88 , 0x0c , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x06 , 0x00 , 0x08 ,
0x00 , 0x32 , 0x01 , 0x01 , 0x00 , 0x16 , 0x00 , 0x04 ,
0x00 , 0x4b , 0x00 , 0x76 , 0x00 , 0x86 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x61 , 0xc0 ,
0x05 , 0x00 , 0x06 , 0xe8 , 0x00 , 0x00 , 0x00 , 0x20 , 0x20 ,
0x06 , 0x00 , 0x1b , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x83 , 0x02 , 0x20 , 0x00 , 0x13 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1d , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x2d , 0x00 , 0x62 ,
0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 , 0x20 ,
0x01 , 0x60 , 0x01 , 0x00 , 0x00 ,
0x04 , 0x04 , 0x01 , 0xff ,
0x04 , 0x06 , 0x01 , 0xc4 ,
0x04 , 0x06 , 0x01 , 0xc0 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x43 , 0x00 , 0xb4 , 0x01 , 0x10 , 0x00 , 0x4f ,
0xef , 0x0e , 0x00 , 0x74 , 0x01 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x3e , 0x00 , 0x24 ,
0x03 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xa0 , 0x48 , 0xc3 , 0x02 , 0x88 , 0x0c , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x06 , 0x00 , 0x08 ,
0x00 , 0x32 , 0x01 , 0x01 , 0x00 , 0x16 , 0x00 , 0x04 ,
0x00 , 0x4b , 0x00 , 0x76 , 0x00 , 0x86 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x61 , 0xc0 ,
0x05 , 0x00 , 0x06 , 0xe8 , 0x00 , 0x00 , 0x00 , 0x20 , 0x20 ,
0x06 , 0x00 , 0x1b , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x83 , 0x02 , 0x20 , 0x00 , 0x13 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1d , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x2d , 0x00 , 0x62 ,
0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 , 0x20 ,
0x01 , 0x60 , 0x01 , 0x00 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x48 , 0x58 , 0x9e , 0x48 , 0x58 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x84 , 0x36 , 0x05 , 0x01 , 0xf2 , 0x86 , 0x65 ,
0x40 ,
0x00 , 0x80 , 0x01 , 0xa0 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x00 , 0x91 , 0x02 , 0x6c , 0x01 ,
0x00 , 0x03 , 0x02 , 0xc8 , 0x01 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x10 , 0x00 , 0x01 , 0x83 ,
0x10 , 0x8f , 0x0c , 0x62 , 0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 ,
0x20 , 0x01 , 0x60 , 0x01 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x10 , 0x1b , 0x02 , 0x69 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x05 , 0x02 , 0x01 , 0x02 ,
0x06 , 0x00 , 0x02 , 0x04 , 0xd9 ,
0x05 , 0x05 , 0x01 , 0x20 ,
0x05 , 0x05 , 0x01 , 0x21 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x08 , 0x21 , 0x3d , 0x52 , 0x63 , 0x75 , 0x83 ,
0x91 , 0x9e , 0xaa , 0xb6 , 0xc1 , 0xcc , 0xd6 , 0xe0 ,
0xea ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x13 , 0x13 ,
0x10 , 0x03 , 0x01 , 0x14 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x08 , 0x21 , 0x3d , 0x52 , 0x63 , 0x75 , 0x83 ,
0x91 , 0x9e , 0xaa , 0xb6 , 0xc1 , 0xcc , 0xd6 , 0xe0 ,
0xea ,
0x10 , 0x0b , 0x01 , 0x14 ,
0x10 , 0x0d , 0x01 , 0x20 ,
0x10 , 0x0c , 0x01 , 0x34 ,
0x04 , 0x06 , 0x01 , 0xc3 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0x05 , 0x02 , 0x01 , 0x02 ,
0x06 , 0x00 , 0x02 , 0x00 , 0x48 ,
0x05 , 0x05 , 0x01 , 0x20 ,
0x05 , 0x05 , 0x01 , 0x21 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
/* 06a5:d001 - nw801 - Panasonic
* P35u */
static const u8 nw801_start_1 [ ] = {
2011-03-14 08:49:28 -03:00
0x05 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x0e , 0x00 , 0x00 , 0xf9 , 0x02 , 0x11 , 0x00 , 0x0e ,
0x01 , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x22 , 0xb4 , 0x6f , 0x3f , 0x0f , 0x88 , 0x20 , 0x08 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x69 , 0xa8 , 0x1f , 0x00 ,
0x0d , 0x02 , 0x07 , 0x00 , 0x01 , 0x00 , 0x19 , 0x00 ,
0xf2 , 0x00 , 0x18 , 0x06 , 0x10 , 0x06 , 0x10 , 0x00 ,
0x36 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 ,
0x05 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x22 , 0x02 , 0x80 , 0x00 , 0x1e , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x0a , 0x15 , 0x08 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x01 , 0x35 , 0xfd , 0x07 , 0x3d , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xc0 , 0x00 , 0x14 , 0x02 ,
0x00 , 0x01 , 0x00 , 0x00 , 0x40 , 0x00 , 0x00 , 0x00 ,
0x40 , 0x00 , 0x00 , 0x00 , 0x40 , 0x20 , 0x10 , 0x06 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 , 0xf7 ,
0x10 , 0x40 , 0x40 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 , 0x80 ,
0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 , 0xa4 ,
0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc , 0xcf ,
0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 , 0x64 ,
0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 , 0xe2 ,
0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x10 , 0x80 , 0x22 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x0e , 0x00 , 0x82 , 0x02 ,
0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 , 0x01 ,
0xf0 , 0x00 ,
0 , 0 , 0 ,
} ;
2011-03-22 05:16:11 -03:00
static const u8 nw801_start_qvga [ ] = {
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x10 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x18 , 0x0b , 0x06 , 0xa2 , 0x86 , 0x78 ,
0x02 , 0x0f , 0x01 , 0x6b ,
0x10 , 0x1a , 0x01 , 0x15 ,
0x00 , 0x00 , 0x01 , 0x1e ,
0x10 , 0x00 , 0x01 , 0x2f ,
0x10 , 0x8c , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x11 , 0x08 , 0x29 , 0x00 , 0x18 , 0x01 , 0x1f , 0x00 , 0xd2 , 0x00 ,
/* AE window */
0 , 0 , 0 ,
} ;
2011-03-22 05:16:11 -03:00
static const u8 nw801_start_vga [ ] = {
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x10 , 0x78 , 0xa0 , 0x97 , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xf0 ,
0x02 , 0x0f , 0x01 , 0xd5 ,
0x10 , 0x1a , 0x01 , 0x15 ,
0x00 , 0x00 , 0x01 , 0x0e ,
0x10 , 0x00 , 0x01 , 0x22 ,
0x10 , 0x8c , 0x08 , 0x00 , 0x00 , 0x7f , 0x02 , 0x00 , 0x00 , 0xdf , 0x01 ,
0x10 , 0x11 , 0x08 , 0x51 , 0x00 , 0x30 , 0x02 , 0x3d , 0x00 , 0xa4 , 0x01 ,
0 , 0 , 0 ,
} ;
2011-03-22 05:16:11 -03:00
static const u8 nw801_start_2 [ ] = {
2011-03-14 08:49:28 -03:00
0x10 , 0x04 , 0x01 , 0x1a ,
0x10 , 0x19 , 0x01 , 0x09 , /* clock */
0x10 , 0x24 , 0x06 , 0xc0 , 0x00 , 0x3f , 0x02 , 0x00 , 0x01 ,
/* .. gain .. */
0x00 , 0x03 , 0x02 , 0x92 , 0x03 ,
0x00 , 0x1d , 0x04 , 0xf2 , 0x00 , 0x24 , 0x07 ,
0x00 , 0x7b , 0x01 , 0xcf ,
0x10 , 0x94 , 0x01 , 0x07 ,
0x05 , 0x05 , 0x01 , 0x01 ,
0x05 , 0x04 , 0x01 , 0x01 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x48 , 0x11 , 0x00 , 0x37 , 0x55 , 0x6b , 0x7d , 0x8d , 0x9b , 0xa8 ,
0xb4 , 0xbf , 0xca , 0xd4 , 0xdd , 0xe6 , 0xef , 0xf0 ,
0xf0 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x0c , 0x0c ,
0x10 , 0x03 , 0x01 , 0x08 ,
0x10 , 0x48 , 0x11 , 0x00 , 0x37 , 0x55 , 0x6b , 0x7d , 0x8d , 0x9b , 0xa8 ,
0xb4 , 0xbf , 0xca , 0xd4 , 0xdd , 0xe6 , 0xef , 0xf0 ,
0xf0 ,
0x10 , 0x0b , 0x01 , 0x0b ,
0x10 , 0x0d , 0x01 , 0x0b ,
0x10 , 0x0c , 0x01 , 0x1f ,
0x05 , 0x06 , 0x01 , 0x03 ,
0 , 0 , 0
} ;
/* nw802 (sharp IR3Y38M?) */
2011-03-22 05:16:11 -03:00
static const u8 nw802_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x00 , 0x00 , 0xf9 , 0x02 , 0x10 , 0x00 , 0x4d ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb4 , 0x6f , 0x3f , 0x0f , 0x88 , 0x20 , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x01 , 0x00 , 0x16 , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x08 , 0x00 , 0x18 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x21 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa1 , 0x02 , 0x80 , 0x00 , 0x1d , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0xff , 0x01 , 0xc0 , 0x00 , 0x14 ,
0x02 , 0x00 , 0x01 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0e , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x10 , 0x02 , 0xf2 , 0x8f , 0x78 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x10 , 0x00 , 0x01 , 0xad ,
0x00 , 0x00 , 0x01 , 0x08 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x51 , 0x00 , 0xf0 , 0x00 , 0x3d , 0x00 , 0xb4 , 0x00 ,
0x10 , 0x1d , 0x08 , 0x00 , 0xa0 , 0x00 , 0xa0 , 0x00 , 0xa0 , 0x00 , 0xa0 ,
0x10 , 0x0e , 0x01 , 0x27 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0e , 0x35 , 0x4f , 0x62 , 0x71 , 0x7f , 0x8b ,
0x96 , 0xa0 , 0xa9 , 0xb2 , 0xbb , 0xc3 , 0xca , 0xd2 ,
0xd8 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x14 , 0x14 ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x41 , 0x11 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 , 0x64 , 0x74 ,
0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 , 0xe2 , 0xf1 ,
0xff ,
/* 0x00, 0x0e, 0x35, 0x4f, 0x62, 0x71, 0x7f, 0x8b,
* 0x96 , 0xa0 , 0xa9 , 0xb2 , 0xbb , 0xc3 , 0xca , 0xd2 ,
* 0xd8 , */
0x10 , 0x0b , 0x01 , 0x10 ,
0x10 , 0x0d , 0x01 , 0x11 ,
0x10 , 0x0c , 0x01 , 0x1c ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
/* et31x110 - Trust 120 SpaceCam */
static const u8 spacecam_init [ ] = {
0x04 , 0x05 , 0x01 , 0x01 ,
0x04 , 0x04 , 0x01 , 0x01 ,
0x04 , 0x06 , 0x01 , 0x04 ,
0x04 , 0x04 , 0x03 , 0x00 , 0x00 , 0x00 ,
0x05 , 0x05 , 0x01 , 0x00 ,
2011-03-22 05:46:24 -03:00
0 , 0 , 0
} ;
static const u8 spacecam_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x44 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x43 , 0x00 , 0xb4 , 0x01 , 0x10 , 0x00 , 0x4f ,
0xef , 0x0e , 0x00 , 0x74 , 0x01 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x3e , 0x00 , 0x24 ,
0x03 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xa0 , 0x48 , 0xc3 , 0x02 , 0x88 , 0x0c , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x06 , 0x00 , 0x08 ,
0x00 , 0x32 , 0x01 , 0x01 , 0x00 , 0x16 , 0x00 , 0x04 ,
0x00 , 0x4b , 0x00 , 0x7c , 0x00 , 0x80 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x05 , 0x00 , 0x06 , 0xe0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x06 , 0x00 , 0x1b , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x83 , 0x02 , 0x20 , 0x00 , 0x11 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1d , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x2d , 0x00 , 0x62 ,
0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 , 0x20 ,
0x01 , 0x60 , 0x01 , 0x00 , 0x00 ,
0x04 , 0x06 , 0x01 , 0xc0 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x02 , 0x00 , 0x11 , 0x48 , 0x58 , 0x9e , 0x48 , 0x58 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x84 , 0x36 , 0x05 , 0x01 , 0xf2 , 0x86 , 0x65 ,
0x40 ,
0x00 , 0x80 , 0x01 , 0xa0 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x00 , 0x91 , 0x02 , 0x32 , 0x01 ,
0x00 , 0x03 , 0x02 , 0x08 , 0x02 ,
0x10 , 0x00 , 0x01 , 0x83 ,
0x10 , 0x8f , 0x0c , 0x62 , 0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 ,
0x20 , 0x01 , 0x60 , 0x01 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x64 , 0x99 , 0xc0 , 0xe2 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x13 , 0x13 ,
0x10 , 0x03 , 0x01 , 0x06 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x64 , 0x99 , 0xc0 , 0xe2 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 ,
0x10 , 0x0b , 0x01 , 0x08 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1f ,
0x04 , 0x06 , 0x01 , 0xc3 ,
0x04 , 0x05 , 0x01 , 0x40 ,
0x04 , 0x04 , 0x01 , 0x40 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
/* et31x110 - pas106 - other Trust SpaceCam120 */
static const u8 spacecam2_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x44 ,
0x04 , 0x06 , 0x01 , 0x00 ,
0x00 , 0x00 , 0x40 , 0x14 , 0x83 , 0x00 , 0xba , 0x01 , 0x10 , 0x00 , 0x4f ,
0xef , 0x00 , 0x00 , 0x60 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x06 , 0x00 , 0xfc ,
0x01 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb8 , 0x48 , 0x0f , 0x04 , 0x88 , 0x14 , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x01 , 0x00 , 0x03 ,
0x00 , 0x24 , 0x01 , 0x01 , 0x00 , 0x16 , 0x00 , 0x04 ,
0x00 , 0x4b , 0x00 , 0x76 , 0x00 , 0x86 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x61 , 0x00 ,
0x05 , 0x00 , 0x06 , 0xe0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x06 , 0x00 , 0x1b , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x80 , 0x02 , 0x20 , 0x00 , 0x13 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1d , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x62 ,
0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 , 0x20 ,
0x01 , 0x60 , 0x01 , 0x00 , 0x00 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x04 , 0x04 , 0x01 , 0x40 ,
0x04 , 0x04 , 0x01 , 0x00 ,
I2C0 , 0x40 , 0x0c , 0x02 , 0x0c , 0x12 , 0x07 , 0x00 , 0x00 , 0x00 , 0x05 ,
0x00 , 0x00 , 0x05 , 0x05 ,
I2C0 , 0x40 , 0x02 , 0x11 , 0x06 ,
I2C0 , 0x40 , 0x02 , 0x14 , 0x00 ,
2011-03-22 05:16:11 -03:00
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 , /* i2c end */
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x11 , 0x48 , 0x58 , 0x9e , 0x48 , 0x58 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x84 , 0x36 , 0x05 , 0x01 , 0xf2 , 0x86 , 0x65 ,
0x40 ,
2011-03-22 05:16:11 -03:00
I2C0 , 0x40 , 0x02 , 0x02 , 0x0c , /* pixel clock */
2011-03-14 08:49:28 -03:00
I2C0 , 0x40 , 0x02 , 0x0f , 0x00 ,
2011-03-22 05:16:11 -03:00
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 , /* i2c end */
2011-03-14 08:49:28 -03:00
0x10 , 0x00 , 0x01 , 0x01 ,
0x10 , 0x8f , 0x0c , 0x62 , 0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 ,
0x20 , 0x01 , 0x60 , 0x01 ,
2011-03-22 05:16:11 -03:00
I2C0 , 0x40 , 0x02 , 0x05 , 0x0f , /* exposure */
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 , /* i2c end */
2011-03-14 08:49:28 -03:00
I2C0 , 0x40 , 0x07 , 0x09 , 0x0b , 0x0f , 0x05 , 0x05 , 0x0f , 0x00 ,
2011-03-22 05:16:11 -03:00
/* gains */
2011-03-14 08:49:28 -03:00
I2C0 , 0x40 , 0x03 , 0x12 , 0x04 , 0x01 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x17 , 0x3f , 0x69 , 0x7b , 0x8c , 0x9a , 0xa7 ,
0xb3 , 0xbf , 0xc9 , 0xd3 , 0xdd , 0xe6 , 0xef , 0xf7 ,
0xf9 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x13 , 0x13 ,
0x10 , 0x03 , 0x01 , 0x06 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x17 , 0x3f , 0x69 , 0x7b , 0x8c , 0x9a , 0xa7 ,
0xb3 , 0xbf , 0xc9 , 0xd3 , 0xdd , 0xe6 , 0xef , 0xf7 ,
0xf9 ,
0x10 , 0x0b , 0x01 , 0x11 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x14 ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x05 , 0x01 , 0x61 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
/* nw802 - Conceptronic Video Pro */
2011-03-22 05:16:11 -03:00
static const u8 cvideopro_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x54 , 0x96 , 0x98 , 0xf9 , 0x02 , 0x18 , 0x00 , 0x4c ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x0b , 0x00 , 0x1b , 0x00 , 0xc8 , 0x00 , 0xf4 ,
0x05 , 0xb4 , 0x00 , 0xcc , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa2 , 0x00 , 0xc6 , 0x00 , 0x60 , 0x00 , 0xc6 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0xae , 0x00 , 0xd2 , 0x00 , 0xae , 0x00 , 0xd2 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa8 , 0x00 , 0xc0 , 0x00 , 0x66 , 0x00 , 0xc0 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x0a , 0x00 , 0x54 , 0x00 , 0x0a , 0x00 , 0x54 ,
0x00 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf6 ,
0x00 , 0x5d , 0x00 , 0xc7 , 0x00 , 0x7e , 0x00 , 0x30 ,
0x00 , 0x80 , 0x1f , 0x98 , 0x43 , 0x3f , 0x0d , 0x88 , 0x20 , 0x80 , 0x3f ,
0x47 , 0xaf , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x0c , 0x00 , 0x1c , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x24 , 0x00 , 0x4a , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0xff , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa0 , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xe0 , 0x00 , 0x0c ,
0x00 , 0x52 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0f , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x8c , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x3f , 0x06 , 0xf2 , 0x8f , 0xf0 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x03 ,
0x10 , 0x00 , 0x01 , 0xac ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x3b , 0x01 ,
0x10 , 0x11 , 0x08 , 0x61 , 0x00 , 0xe0 , 0x00 , 0x49 , 0x00 , 0xa8 , 0x00 ,
0x10 , 0x1f , 0x06 , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x1d , 0x02 , 0x40 , 0x06 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x46 , 0x62 , 0x76 , 0x86 , 0x94 , 0xa0 ,
0xab , 0xb6 , 0xbf , 0xc8 , 0xcf , 0xd7 , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x12 , 0x12 ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x46 , 0x62 , 0x76 , 0x86 , 0x94 , 0xa0 ,
0xab , 0xb6 , 0xbf , 0xc8 , 0xcf , 0xd7 , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x0b , 0x01 , 0x09 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x2f ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
/* nw802 - D-link dru-350c cam */
2011-03-22 05:16:11 -03:00
static const u8 dlink_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x00 , 0x00 , 0x92 , 0x03 , 0x10 , 0x00 , 0x4d ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb4 , 0x6f , 0x3f , 0x0f , 0x88 , 0x20 , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x01 , 0x00 , 0x16 , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x10 , 0x00 , 0x36 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x21 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa1 , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xc0 , 0x00 , 0x14 ,
0x02 , 0x00 , 0x01 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0f , 0x01 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x10 , 0x02 , 0xf2 , 0x8f , 0x78 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x10 , 0x00 , 0x01 , 0xad ,
0x00 , 0x00 , 0x01 , 0x08 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x51 , 0x00 , 0xf0 , 0x00 , 0x3d , 0x00 , 0xb4 , 0x00 ,
0x10 , 0x1d , 0x08 , 0x40 , 0x06 , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x0e , 0x01 , 0x20 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x07 , 0x1e , 0x38 , 0x4d , 0x60 , 0x70 , 0x7f ,
0x8e , 0x9b , 0xa8 , 0xb4 , 0xbf , 0xca , 0xd5 , 0xdf ,
0xea ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x11 , 0x11 ,
0x10 , 0x03 , 0x01 , 0x10 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x07 , 0x1e , 0x38 , 0x4d , 0x60 , 0x70 , 0x7f ,
0x8e , 0x9b , 0xa8 , 0xb4 , 0xbf , 0xca , 0xd5 , 0xdf ,
0xea ,
0x10 , 0x0b , 0x01 , 0x19 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1e ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
/* 06a5:d001 - nw801 - Sony
* Plustek Opticam 500U or ProLink DS3303u ( Hitachi HD49322BF ) */
/*fixme: 320x240 only*/
static const u8 ds3303_start [ ] = {
2011-03-14 08:49:28 -03:00
0x05 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x16 , 0x00 , 0x00 , 0xf9 , 0x02 , 0x11 , 0x00 , 0x0e ,
0x01 , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x22 , 0xb4 , 0x6f , 0x3f , 0x0f , 0x88 , 0x20 , 0x08 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa9 , 0xa8 , 0x1f , 0x00 ,
0x0d , 0x02 , 0x07 , 0x00 , 0x01 , 0x00 , 0x19 , 0x00 ,
0xf2 , 0x00 , 0x18 , 0x06 , 0x10 , 0x06 , 0x10 , 0x00 ,
0x36 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x03 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0x50 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x05 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0xff , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x2f , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x1f , 0x10 , 0x08 , 0x0a ,
0x0a , 0x51 , 0x00 , 0xf1 , 0x00 , 0x3c , 0x00 , 0xb4 ,
0x00 , 0x01 , 0x15 , 0xfd , 0x07 , 0x3d , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x8c , 0x04 , 0x01 , 0x20 ,
0x02 , 0x00 , 0x03 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 ,
0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 , 0x03 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 , 0xf7 ,
0x10 , 0x40 , 0x40 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 , 0x80 ,
0x00 , 0x2d , 0x46 , 0x58 , 0x67 , 0x74 , 0x7f , 0x88 ,
0x94 , 0x9d , 0xa6 , 0xae , 0xb5 , 0xbd , 0xc4 , 0xcb ,
0xd1 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 , 0x64 ,
0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 , 0xe2 ,
0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x10 , 0x80 , 0x22 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x3f , 0x01 ,
0x00 , 0x00 , 0xef , 0x00 , 0x02 , 0x0a , 0x82 , 0x02 ,
0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 , 0x01 ,
0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x3f , 0x00 , 0xf2 , 0x8f , 0x81 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x15 ,
0x10 , 0x00 , 0x01 , 0x2f ,
0x10 , 0x8c , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x61 , 0x00 , 0xe0 , 0x00 , 0x49 , 0x00 , 0xa8 , 0x00 ,
0x10 , 0x26 , 0x06 , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x24 , 0x02 , 0x40 , 0x06 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x48 , 0x11 , 0x00 , 0x15 , 0x40 , 0x67 , 0x84 , 0x9d , 0xb2 , 0xc6 ,
0xd6 , 0xe7 , 0xf6 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x16 , 0x16 ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x48 , 0x11 , 0x00 , 0x15 , 0x40 , 0x67 , 0x84 , 0x9d , 0xb2 , 0xc6 ,
0xd6 , 0xe7 , 0xf6 , 0xf9 , 0xf9 , 0xf9 , 0xf9 , 0xf9 ,
0xf9 ,
0x10 , 0x0b , 0x01 , 0x26 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1c ,
0x05 , 0x06 , 0x01 , 0x03 ,
0x05 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
/* 06a5:d001 - nw802 - Panasonic
* GP - KR651US ( Philips TDA8786 ) */
static const u8 kr651_start_1 [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x44 , 0x96 , 0x98 , 0xf9 , 0x02 , 0x18 , 0x00 , 0x48 ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x0b , 0x00 , 0x1b , 0x00 , 0xc8 , 0x00 , 0xf4 ,
0x05 , 0xb4 , 0x00 , 0xcc , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa2 , 0x00 , 0xc6 , 0x00 , 0x60 , 0x00 , 0xc6 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0xae , 0x00 , 0xd2 , 0x00 , 0xae , 0x00 , 0xd2 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa8 , 0x00 , 0xc0 , 0x00 , 0x66 , 0x00 , 0xc0 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x0a , 0x00 , 0x54 , 0x00 , 0x0a , 0x00 , 0x54 ,
0x00 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf6 ,
0x00 , 0x5d , 0x00 , 0xc7 , 0x00 , 0x7e , 0x00 , 0x30 ,
0x00 , 0x80 , 0x1f , 0x18 , 0x43 , 0x3f , 0x0d , 0x88 , 0x20 , 0x80 , 0x3f ,
0x47 , 0xaf , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x0c , 0x00 , 0x1c , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x24 , 0x00 , 0x4a , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x02 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x21 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa0 , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xe0 , 0x00 , 0x0c ,
0x00 , 0x52 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0f , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
static const u8 kr651_start_qvga [ ] = {
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x10 , 0x02 , 0xf2 , 0x8f , 0x78 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x03 ,
0x10 , 0x00 , 0x01 , 0xac ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x29 , 0x00 , 0x18 , 0x01 , 0x1f , 0x00 , 0xd2 , 0x00 ,
0x10 , 0x1d , 0x06 , 0xe0 , 0x00 , 0x0c , 0x00 , 0x52 , 0x00 ,
0x10 , 0x1d , 0x02 , 0x28 , 0x01 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
static const u8 kr651_start_vga [ ] = {
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x11 , 0x78 , 0xa0 , 0x8c , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x30 , 0x03 , 0x01 , 0x82 , 0x82 , 0x98 ,
0x80 ,
0x10 , 0x1a , 0x01 , 0x03 ,
0x10 , 0x00 , 0x01 , 0xa0 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x7f , 0x02 , 0x00 , 0x00 , 0xdf , 0x01 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x51 , 0x00 , 0x30 , 0x02 , 0x3d , 0x00 , 0xa4 , 0x01 ,
0x10 , 0x1d , 0x06 , 0xe0 , 0x00 , 0x0c , 0x00 , 0x52 , 0x00 ,
0x10 , 0x1d , 0x02 , 0x68 , 0x00 ,
} ;
2011-03-22 05:16:11 -03:00
static const u8 kr651_start_2 [ ] = {
2011-03-14 08:49:28 -03:00
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x11 , 0x3c , 0x5c , 0x74 , 0x88 , 0x99 , 0xa8 ,
0xb7 , 0xc4 , 0xd0 , 0xdc , 0xdc , 0xdc , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x0c , 0x0c ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x41 , 0x11 , 0x00 , 0x11 , 0x3c , 0x5c , 0x74 , 0x88 , 0x99 , 0xa8 ,
0xb7 , 0xc4 , 0xd0 , 0xdc , 0xdc , 0xdc , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x0b , 0x01 , 0x10 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x2d ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
/* nw802 - iRez Kritter cam */
2011-03-22 05:16:11 -03:00
static const u8 kritter_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x06 ,
0x00 , 0x00 , 0x40 , 0x44 , 0x96 , 0x98 , 0x94 , 0x03 , 0x18 , 0x00 , 0x48 ,
0x0f , 0x1e , 0x00 , 0x0c , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x0b , 0x00 , 0x1b , 0x00 , 0x0a , 0x01 , 0x28 ,
0x07 , 0xb4 , 0x00 , 0xcc , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa2 , 0x00 , 0xc6 , 0x00 , 0x60 , 0x00 , 0xc6 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0xae , 0x00 , 0xd2 , 0x00 , 0xae , 0x00 , 0xd2 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa8 , 0x00 , 0xc0 , 0x00 , 0x66 , 0x00 , 0xc0 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x0a , 0x00 , 0x54 , 0x00 , 0x0a , 0x00 , 0x54 ,
0x00 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf6 ,
0x00 , 0x5d , 0x00 , 0x0e , 0x00 , 0x7e , 0x00 , 0x30 ,
0x00 , 0x80 , 0x1f , 0x18 , 0x43 , 0x3f , 0x0d , 0x88 , 0x20 , 0x80 , 0x3f ,
0x47 , 0xaf , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0b , 0x02 , 0x0c , 0x00 , 0x1c , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x24 , 0x00 , 0x4a , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x02 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0xff , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa0 , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xe0 , 0x00 , 0x0c ,
0x00 , 0x52 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x8c , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x3f , 0x06 , 0xf2 , 0x8f , 0xf0 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x03 ,
0x10 , 0x00 , 0x01 , 0xaf ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x3b , 0x01 ,
0x10 , 0x11 , 0x08 , 0x61 , 0x00 , 0xe0 , 0x00 , 0x49 , 0x00 , 0xa8 , 0x00 ,
0x10 , 0x1d , 0x06 , 0xe0 , 0x00 , 0x0c , 0x00 , 0x52 , 0x00 ,
0x10 , 0x1d , 0x02 , 0x00 , 0x00 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0d , 0x36 , 0x4e , 0x60 , 0x6f , 0x7b , 0x86 ,
0x90 , 0x98 , 0xa1 , 0xa9 , 0xb1 , 0xb7 , 0xbe , 0xc4 ,
0xcb ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x0d , 0x0d ,
0x10 , 0x03 , 0x01 , 0x02 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0d , 0x36 , 0x4e , 0x60 , 0x6f , 0x7b , 0x86 ,
0x90 , 0x98 , 0xa1 , 0xa9 , 0xb1 , 0xb7 , 0xbe , 0xc4 ,
0xcb ,
0x10 , 0x0b , 0x01 , 0x17 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1e ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
/* nw802 - Mustek Wcam 300 mini */
2011-03-22 05:16:11 -03:00
static const u8 mustek_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x00 , 0x00 , 0x92 , 0x03 , 0x10 , 0x00 , 0x4d ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb4 , 0x6f , 0x3f , 0x0f , 0x88 , 0x20 , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x01 , 0x00 , 0x16 , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0xfc , 0x05 , 0x0c , 0x06 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x21 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa1 , 0x02 , 0x80 , 0x00 , 0x13 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xc0 , 0x00 , 0x14 ,
0x02 , 0x00 , 0x01 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0e , 0x01 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x10 , 0x02 , 0xf2 , 0x8f , 0x78 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x00 ,
0x10 , 0x00 , 0x01 , 0xad ,
0x00 , 0x00 , 0x01 , 0x08 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1d , 0x08 , 0x00 , 0x20 , 0x00 , 0x20 , 0x00 , 0x20 , 0x00 , 0x20 ,
0x10 , 0x0e , 0x01 , 0x0f ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x29 , 0x4a , 0x64 , 0x7a , 0x8c , 0x9e ,
0xad , 0xba , 0xc7 , 0xd3 , 0xde , 0xe8 , 0xf1 , 0xf9 ,
0xff ,
0x10 , 0x0f , 0x02 , 0x11 , 0x11 ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x29 , 0x4a , 0x64 , 0x7a , 0x8c , 0x9e ,
0xad , 0xba , 0xc7 , 0xd3 , 0xde , 0xe8 , 0xf1 , 0xf9 ,
0xff ,
0x10 , 0x0b , 0x01 , 0x1c ,
0x10 , 0x0d , 0x01 , 0x1a ,
0x10 , 0x0c , 0x01 , 0x34 ,
0x04 , 0x05 , 0x01 , 0x61 ,
0x04 , 0x04 , 0x01 , 0x40 ,
0x04 , 0x06 , 0x01 , 0x03 ,
0 , 0 , 0
} ;
/* nw802 - Scope USB Microscope M2 (ProScope) (Hitachi HD49322BF) */
2011-03-22 05:46:24 -03:00
static const u8 proscope_init [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x05 , 0x01 , 0x21 ,
0x04 , 0x04 , 0x01 , 0x01 ,
2011-03-22 05:46:24 -03:00
0 , 0 , 0
} ;
static const u8 proscope_start_1 [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x04 ,
0x00 , 0x00 , 0x40 , 0x10 , 0x01 , 0x00 , 0xf9 , 0x02 , 0x10 , 0x00 , 0x04 ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x08 , 0x00 , 0x17 , 0x00 , 0xce , 0x00 , 0xf4 ,
0x05 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0xce , 0x00 , 0xf8 , 0x03 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0xb6 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xf6 , 0x03 , 0x34 , 0x04 , 0xf6 , 0x03 , 0x34 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xe8 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb4 , 0x6f , 0x1f , 0x0f , 0x08 , 0x20 , 0xa8 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x01 , 0x00 , 0x19 , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x10 , 0x00 , 0x36 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x21 , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xad , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x1f , 0x10 , 0x08 , 0x0a ,
0x0a , 0x51 , 0x00 , 0xf1 , 0x00 , 0x3c , 0x00 , 0xb4 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x8c , 0x04 , 0x01 ,
0x20 , 0x02 , 0x00 , 0x03 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x2d , 0x46 , 0x58 , 0x67 , 0x74 , 0x7f ,
0x88 , 0x94 , 0x9d , 0xa6 , 0xae , 0xb5 , 0xbd , 0xc4 ,
0xcb , 0xd1 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x3f ,
0x01 , 0x00 , 0x00 , 0xef , 0x00 , 0x09 , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
static const u8 proscope_start_qvga [ ] = {
2011-03-14 08:49:28 -03:00
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x9e , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x10 , 0x02 , 0xf2 , 0x8f , 0x78 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x06 ,
0x00 , 0x03 , 0x02 , 0xf9 , 0x02 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1d , 0x08 , 0xc0 , 0x0d , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x0e , 0x01 , 0x10 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
static const u8 proscope_start_vga [ ] = {
2011-03-14 08:49:28 -03:00
0x00 , 0x03 , 0x02 , 0xf9 , 0x02 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x7f , 0x02 , 0x00 , 0x00 , 0xdf , 0x01 ,
0x02 , 0x00 , 0x11 , 0x78 , 0xa0 , 0x8c , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x16 , 0x00 , 0x00 , 0x82 , 0x84 , 0x00 ,
0x80 ,
0x10 , 0x1a , 0x01 , 0x06 ,
0x10 , 0x00 , 0x01 , 0xa1 ,
0x10 , 0x1b , 0x02 , 0x00 , 0x00 ,
0x10 , 0x1d , 0x08 , 0xc0 , 0x0d , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x7f , 0x02 , 0x00 , 0x00 , 0xdf , 0x01 ,
0x10 , 0x0e , 0x01 , 0x10 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x10 , 0x51 , 0x6e , 0x83 , 0x93 , 0xa1 , 0xae ,
0xb9 , 0xc3 , 0xcc , 0xd4 , 0xdd , 0xe4 , 0xeb , 0xf2 ,
0xf9 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
static const u8 proscope_start_2 [ ] = {
2011-03-14 08:49:28 -03:00
0x10 , 0x0f , 0x02 , 0x0c , 0x0c ,
0x10 , 0x03 , 0x01 , 0x0c ,
0x10 , 0x41 , 0x11 , 0x00 , 0x10 , 0x51 , 0x6e , 0x83 , 0x93 , 0xa1 , 0xae ,
0xb9 , 0xc3 , 0xcc , 0xd4 , 0xdd , 0xe4 , 0xeb , 0xf2 ,
0xf9 ,
0x10 , 0x0b , 0x01 , 0x0b ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1b ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x05 , 0x01 , 0x21 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0 , 0 , 0
} ;
2011-03-22 05:16:11 -03:00
/* nw800 - hv7121b? (seems pas106) - Divio Chicony TwinkleCam */
static const u8 twinkle_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x44 ,
0x04 , 0x06 , 0x01 , 0x00 ,
0x00 , 0x00 , 0x40 , 0x14 , 0x83 , 0x00 , 0xba , 0x01 , 0x10 , 0x00 , 0x4f ,
0xef , 0x00 , 0x00 , 0x60 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x06 , 0x00 , 0xfc ,
0x01 , 0x3e , 0x00 , 0x86 , 0x00 , 0x3e , 0x00 , 0x86 ,
0x00 , 0x3e , 0x00 , 0x86 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x56 , 0x00 , 0x9e ,
0x00 , 0x56 , 0x00 , 0x9e , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x6e , 0x00 , 0x78 ,
0x04 , 0x6e , 0x00 , 0xb6 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xca , 0x03 , 0x46 , 0x04 , 0xca , 0x03 , 0x46 ,
0x04 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e , 0x00 , 0xf0 ,
0x00 , 0x3e , 0x00 , 0xaa , 0x00 , 0x88 , 0x00 , 0x2e ,
0x00 , 0x80 , 0x1f , 0xb8 , 0x48 , 0x0f , 0x04 , 0x88 , 0x14 , 0x68 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0xa8 , 0x01 , 0x00 , 0x03 ,
0x00 , 0x24 , 0x01 , 0x01 , 0x00 , 0x16 , 0x00 , 0x04 ,
0x00 , 0x4b , 0x00 , 0x76 , 0x00 , 0x86 , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0x61 , 0x00 ,
0x05 , 0x00 , 0x06 , 0xe0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x06 , 0x00 , 0x1b , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0x80 , 0x02 , 0x20 , 0x00 , 0x11 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x08 ,
0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x10 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x00 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1d , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x62 ,
0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 , 0x20 ,
0x01 , 0x60 , 0x01 , 0x00 , 0x00 ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
0x04 , 0x04 , 0x01 , 0x10 ,
0x04 , 0x04 , 0x01 , 0x00 ,
0x04 , 0x05 , 0x01 , 0x61 ,
0x04 , 0x04 , 0x01 , 0x01 ,
I2C0 , 0x40 , 0x0c , 0x02 , 0x0c , 0x12 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x0a ,
I2C0 , 0x40 , 0x02 , 0x11 , 0x06 ,
I2C0 , 0x40 , 0x02 , 0x14 , 0x00 ,
2011-03-22 05:16:11 -03:00
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 , /* i2c end */
2011-03-14 08:49:28 -03:00
I2C0 , 0x40 , 0x02 , 0x07 , 0x01 ,
0x02 , 0x00 , 0x11 , 0x48 , 0x58 , 0x9e , 0x48 , 0x58 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x84 , 0x36 , 0x05 , 0x01 , 0xf2 , 0x86 , 0x65 ,
0x40 ,
I2C0 , 0x40 , 0x02 , 0x02 , 0x0c ,
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 ,
0x10 , 0x00 , 0x01 , 0x01 ,
0x10 , 0x8f , 0x0c , 0x62 , 0x01 , 0x24 , 0x01 , 0x62 , 0x01 , 0x24 , 0x01 ,
0x20 , 0x01 , 0x60 , 0x01 ,
I2C0 , 0x40 , 0x02 , 0x05 , 0x0f ,
I2C0 , 0x40 , 0x02 , 0x13 , 0x01 ,
I2C0 , 0x40 , 0x08 , 0x08 , 0x04 , 0x0b , 0x01 , 0x01 , 0x02 , 0x00 , 0x17 ,
I2C0 , 0x40 , 0x03 , 0x12 , 0x00 , 0x01 ,
0x10 , 0x11 , 0x08 , 0x00 , 0x00 , 0x5f , 0x01 , 0x00 , 0x00 , 0x1f , 0x01 ,
I2C0 , 0x40 , 0x02 , 0x12 , 0x00 ,
I2C0 , 0x40 , 0x02 , 0x0e , 0x00 ,
I2C0 , 0x40 , 0x02 , 0x11 , 0x06 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x17 , 0x3f , 0x69 , 0x7b , 0x8c , 0x9a , 0xa7 ,
0xb3 , 0xbf , 0xc9 , 0xd3 , 0xdd , 0xe6 , 0xef , 0xf7 ,
0xf9 ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x0c , 0x0c ,
0x10 , 0x03 , 0x01 , 0x06 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x17 , 0x3f , 0x69 , 0x7b , 0x8c , 0x9a , 0xa7 ,
0xb3 , 0xbf , 0xc9 , 0xd3 , 0xdd , 0xe6 , 0xef , 0xf7 ,
0xf9 ,
0x10 , 0x0b , 0x01 , 0x19 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x0d ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x05 , 0x01 , 0x61 ,
0x04 , 0x04 , 0x01 , 0x41 ,
0 , 0 , 0
} ;
/* nw802 dvc-v6 */
2011-03-22 05:16:11 -03:00
static const u8 dvcv6_start [ ] = {
2011-03-14 08:49:28 -03:00
0x04 , 0x06 , 0x01 , 0x06 ,
0x00 , 0x00 , 0x40 , 0x54 , 0x96 , 0x98 , 0xf9 , 0x02 , 0x18 , 0x00 , 0x4c ,
0x0f , 0x1f , 0x00 , 0x0d , 0x02 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x01 , 0x00 , 0x19 , 0x00 , 0x01 , 0x00 , 0x19 ,
0x00 , 0x0b , 0x00 , 0x1b , 0x00 , 0xc8 , 0x00 , 0xf4 ,
0x05 , 0xb4 , 0x00 , 0xcc , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa2 , 0x00 , 0xc6 , 0x00 , 0x60 , 0x00 , 0xc6 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x40 , 0x40 , 0x00 , 0xae , 0x00 , 0xd2 , 0x00 , 0xae , 0x00 , 0xd2 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0xa8 , 0x00 , 0xc0 , 0x00 , 0x66 , 0x00 , 0xc0 ,
0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x00 , 0x0a , 0x00 , 0x54 , 0x00 , 0x0a , 0x00 , 0x54 ,
0x00 , 0x10 , 0x00 , 0x36 , 0x00 , 0xd2 , 0x00 , 0xee ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf6 ,
0x00 , 0x5d , 0x00 , 0xc7 , 0x00 , 0x7e , 0x00 , 0x30 ,
0x00 , 0x80 , 0x1f , 0x98 , 0x43 , 0x3f , 0x0d , 0x88 , 0x20 , 0x80 , 0x3f ,
0x47 , 0xaf , 0x00 , 0x00 , 0xa8 , 0x08 , 0x00 , 0x11 ,
0x00 , 0x0c , 0x02 , 0x0c , 0x00 , 0x1c , 0x00 , 0x94 ,
0x00 , 0x10 , 0x06 , 0x24 , 0x00 , 0x4a , 0x00 ,
0x02 , 0x00 , 0x12 , 0x78 , 0xa0 , 0x9e , 0x78 , 0xa0 , 0x00 , 0x00 , 0x00 ,
0x00 , 0xf0 , 0x18 , 0x0b , 0x06 , 0x62 , 0x82 , 0xa0 ,
0x40 , 0x20 ,
0x03 , 0x00 , 0x03 , 0x03 , 0x00 , 0x00 ,
0x04 , 0x00 , 0x07 , 0x01 , 0x10 , 0x00 , 0x00 , 0x00 , 0xff , 0x00 ,
0x06 , 0x00 , 0x02 , 0x09 , 0x99 ,
0x08 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x40 , 0xa0 , 0x02 , 0x80 , 0x00 , 0x12 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x10 , 0x10 , 0x10 , 0x08 , 0x0a ,
0x0a , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x49 , 0x13 , 0x00 , 0x00 , 0xe0 , 0x00 , 0x0c ,
0x00 , 0x52 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x08 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x10 , 0x06 ,
0xf7 , 0xee , 0x1c , 0x1c , 0xe9 , 0xfc , 0x10 , 0x80 ,
0x10 , 0x40 , 0x40 , 0x80 , 0x00 , 0x05 , 0x35 , 0x5e , 0x78 , 0x8b , 0x99 ,
0xa4 , 0xae , 0xb5 , 0xbc , 0xc1 , 0xc6 , 0xc9 , 0xcc ,
0xcf , 0xd0 , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 , 0x54 ,
0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 , 0xd2 ,
0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 , 0x43 ,
0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 , 0xc3 ,
0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x11 , 0x22 , 0x32 ,
0x43 , 0x54 , 0x64 , 0x74 , 0x84 , 0x94 , 0xa4 , 0xb3 ,
0x10 , 0x80 , 0x1b , 0xc3 , 0xd2 , 0xe2 , 0xf1 , 0xff , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0f , 0x05 , 0x82 ,
0x02 , 0xe4 , 0x01 , 0x40 , 0x01 , 0xf0 , 0x00 , 0x40 ,
0x01 , 0xf0 , 0x00 ,
0x00 , 0x03 , 0x02 , 0x94 , 0x03 ,
0x00 , 0x1d , 0x04 , 0x0a , 0x01 , 0x28 , 0x07 ,
0x00 , 0x7b , 0x02 , 0xe0 , 0x00 ,
0x10 , 0x8d , 0x01 , 0x00 ,
0x00 , 0x09 , 0x04 , 0x1e , 0x00 , 0x0c , 0x02 ,
0x00 , 0x91 , 0x02 , 0x0b , 0x02 ,
0x10 , 0x00 , 0x01 , 0xaf ,
0x02 , 0x00 , 0x11 , 0x3c , 0x50 , 0x8f , 0x3c , 0x50 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x78 , 0x3f , 0x3f , 0x06 , 0xf2 , 0x8f , 0xf0 ,
0x40 ,
0x10 , 0x1a , 0x01 , 0x02 ,
0x10 , 0x00 , 0x01 , 0xaf ,
0x10 , 0x85 , 0x08 , 0x00 , 0x00 , 0x3f , 0x01 , 0x00 , 0x00 , 0xef , 0x00 ,
0x10 , 0x1b , 0x02 , 0x07 , 0x01 ,
0x10 , 0x11 , 0x08 , 0x61 , 0x00 , 0xe0 , 0x00 , 0x49 , 0x00 , 0xa8 , 0x00 ,
0x10 , 0x1f , 0x06 , 0x01 , 0x20 , 0x02 , 0xe8 , 0x03 , 0x00 ,
0x10 , 0x1d , 0x02 , 0x40 , 0x06 ,
0x10 , 0x0e , 0x01 , 0x08 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x54 , 0x6f , 0x82 , 0x91 , 0x9f , 0xaa ,
0xb4 , 0xbd , 0xc5 , 0xcd , 0xd5 , 0xdb , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x03 , 0x01 , 0x00 ,
0x10 , 0x0f , 0x02 , 0x12 , 0x12 ,
0x10 , 0x03 , 0x01 , 0x11 ,
0x10 , 0x41 , 0x11 , 0x00 , 0x0f , 0x54 , 0x6f , 0x82 , 0x91 , 0x9f , 0xaa ,
0xb4 , 0xbd , 0xc5 , 0xcd , 0xd5 , 0xdb , 0xdc , 0xdc ,
0xdc ,
0x10 , 0x0b , 0x01 , 0x16 ,
0x10 , 0x0d , 0x01 , 0x10 ,
0x10 , 0x0c , 0x01 , 0x1a ,
0x04 , 0x06 , 0x01 , 0x03 ,
0x04 , 0x04 , 0x01 , 0x00 ,
} ;
2011-03-22 05:16:11 -03:00
static const u8 * webcam_start [ ] = {
2011-03-22 05:46:24 -03:00
[ Generic800 ] = nw800_start ,
[ SpaceCam ] = spacecam_start ,
2011-03-22 05:16:11 -03:00
[ SpaceCam2 ] = spacecam2_start ,
[ Cvideopro ] = cvideopro_start ,
[ Dlink350c ] = dlink_start ,
[ DS3303u ] = ds3303_start ,
[ Kr651us ] = kr651_start_1 ,
[ Kritter ] = kritter_start ,
[ Mustek300 ] = mustek_start ,
2011-03-22 05:46:24 -03:00
[ Proscope ] = proscope_start_1 ,
2011-03-22 05:16:11 -03:00
[ Twinkle ] = twinkle_start ,
[ DvcV6 ] = dvcv6_start ,
[ P35u ] = nw801_start_1 ,
[ Generic802 ] = nw802_start ,
2011-03-14 08:49:28 -03:00
} ;
/* -- write a register -- */
static void reg_w ( struct gspca_dev * gspca_dev ,
u16 index ,
const u8 * data ,
int len )
{
struct usb_device * dev = gspca_dev - > dev ;
int ret ;
if ( gspca_dev - > usb_err < 0 )
return ;
if ( len = = 1 )
PDEBUG ( D_USBO , " SET 00 0000 %04x %02x " , index , * data ) ;
else
PDEBUG ( D_USBO , " SET 00 0000 %04x %02x %02x ... " ,
index , * data , data [ 1 ] ) ;
memcpy ( gspca_dev - > usb_buf , data , len ) ;
ret = usb_control_msg ( dev , usb_sndctrlpipe ( dev , 0 ) ,
0x00 ,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE ,
0x00 , /* value */
index ,
gspca_dev - > usb_buf ,
len ,
500 ) ;
if ( ret < 0 ) {
err ( " reg_w err %d " , ret ) ;
gspca_dev - > usb_err = ret ;
}
}
/* -- read registers in usb_buf -- */
static void reg_r ( struct gspca_dev * gspca_dev ,
u16 index ,
int len )
{
struct usb_device * dev = gspca_dev - > dev ;
int ret ;
if ( gspca_dev - > usb_err < 0 )
return ;
ret = usb_control_msg ( dev , usb_rcvctrlpipe ( dev , 0 ) ,
0x00 ,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE ,
0x00 , index ,
gspca_dev - > usb_buf , len , 500 ) ;
if ( ret < 0 ) {
err ( " reg_r err %d " , ret ) ;
gspca_dev - > usb_err = ret ;
return ;
}
if ( len = = 1 )
PDEBUG ( D_USBI , " GET 00 0000 %04x %02x " ,
index , gspca_dev - > usb_buf [ 0 ] ) ;
else
PDEBUG ( D_USBI , " GET 00 0000 %04x %02x %02x .. " ,
index , gspca_dev - > usb_buf [ 0 ] ,
gspca_dev - > usb_buf [ 1 ] ) ;
}
static void i2c_w ( struct gspca_dev * gspca_dev ,
u8 i2c_addr ,
const u8 * data ,
int len )
{
u8 val [ 2 ] ;
int i ;
reg_w ( gspca_dev , 0x0600 , data + 1 , len - 1 ) ;
reg_w ( gspca_dev , 0x0600 , data , len ) ;
val [ 0 ] = len ;
val [ 1 ] = i2c_addr ;
reg_w ( gspca_dev , 0x0502 , val , 2 ) ;
val [ 0 ] = 0x01 ;
reg_w ( gspca_dev , 0x0501 , val , 1 ) ;
for ( i = 5 ; - - i > = 0 ; ) {
msleep ( 4 ) ;
reg_r ( gspca_dev , 0x0505 , 1 ) ;
if ( gspca_dev - > usb_err < 0 )
return ;
if ( gspca_dev - > usb_buf [ 0 ] = = 0 )
return ;
}
gspca_dev - > usb_err = - ETIME ;
}
static void reg_w_buf ( struct gspca_dev * gspca_dev ,
const u8 * cmd )
{
u16 reg ;
int len ;
for ( ; ; ) {
reg = * cmd + + < < 8 ;
reg + = * cmd + + ;
len = * cmd + + ;
if ( len = = 0 )
break ;
if ( cmd [ - 3 ] ! = I2C0 )
reg_w ( gspca_dev , reg , cmd , len ) ;
else
2011-03-22 05:16:11 -03:00
i2c_w ( gspca_dev , reg , cmd , len ) ;
2011-03-14 08:49:28 -03:00
cmd + = len ;
}
}
static int swap_6bits ( int v )
{
int r , i ;
r = 0 ;
for ( i = 0 ; i < 6 ; i + + ) {
r < < = 1 ;
if ( v & 1 )
r + + ;
v > > = 1 ;
}
return r ;
}
static void setgain ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
u8 val , v [ 2 ] ;
val = sd - > ctrls [ GAIN ] . val > > 1 ; /* 0 - 63 -> 0 - 31 */
reg_w ( gspca_dev , 0x100e , & val , 1 ) ; /* AE Y gain */
switch ( sd - > webcam ) {
case P35u :
/* Note the control goes from 0-255 not 0-127, but anything
above 127 just means amplifying noise */
val = sd - > ctrls [ GAIN ] . val < < 1 ; /* 0 - 63 -> 0 - 127 */
reg_w ( gspca_dev , 0x1026 , & val , 1 ) ;
break ;
case Kr651us :
/* 0 - 63 -> 0 - 0x37 */
val = ( sd - > ctrls [ GAIN ] . val * 0x37 ) / 63 ;
val = swap_6bits ( val ) ;
v [ 0 ] = val < < 3 ;
v [ 1 ] = val > > 5 ;
reg_w ( gspca_dev , 0x101d , v , 2 ) ; /* SIF reg0/1 (AGC) */
break ;
}
}
static void setexposure ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
u8 v [ 2 ] ;
switch ( sd - > webcam ) {
case P35u :
v [ 0 ] = ( sd - > ctrls [ EXPOSURE ] . val < < 3 ) | 0x01 ;
reg_w ( gspca_dev , 0x1019 , v , 1 ) ;
break ;
case Kr651us :
v [ 0 ] = sd - > ctrls [ EXPOSURE ] . val ;
v [ 1 ] = sd - > ctrls [ EXPOSURE ] . val > > 8 ;
reg_w ( gspca_dev , 0x101b , v , 2 ) ;
break ;
}
}
static void setautogain ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
int w , h ;
if ( gspca_dev - > ctrl_dis & ( 1 < < AUTOGAIN ) )
return ;
if ( ! sd - > ctrls [ AUTOGAIN ] . val ) {
sd - > ag_cnt = - 1 ;
return ;
}
sd - > ag_cnt = AG_CNT_START ;
reg_r ( gspca_dev , 0x1004 , 1 ) ;
if ( gspca_dev - > usb_buf [ 0 ] & 0x04 ) { /* if AE_FULL_FRM */
sd - > ae_res = gspca_dev - > width * gspca_dev - > height ;
} else { /* get the AE window size */
reg_r ( gspca_dev , 0x1011 , 8 ) ;
w = ( gspca_dev - > usb_buf [ 1 ] < < 8 ) + gspca_dev - > usb_buf [ 0 ]
- ( gspca_dev - > usb_buf [ 3 ] < < 8 ) - gspca_dev - > usb_buf [ 2 ] ;
h = ( gspca_dev - > usb_buf [ 5 ] < < 8 ) + gspca_dev - > usb_buf [ 4 ]
- ( gspca_dev - > usb_buf [ 7 ] < < 8 ) - gspca_dev - > usb_buf [ 6 ] ;
sd - > ae_res = h * w ;
if ( sd - > ae_res = = 0 )
sd - > ae_res = gspca_dev - > width * gspca_dev - > height ;
}
}
static int nw802_test_reg ( struct gspca_dev * gspca_dev ,
u16 index ,
u8 value )
{
/* write the value */
reg_w ( gspca_dev , index , & value , 1 ) ;
/* read it */
reg_r ( gspca_dev , index , 1 ) ;
return gspca_dev - > usb_buf [ 0 ] = = value ;
}
2011-03-22 05:46:24 -03:00
/* this function is called at probe time */
static int sd_config ( struct gspca_dev * gspca_dev ,
const struct usb_device_id * id )
2011-03-14 08:49:28 -03:00
{
struct sd * sd = ( struct sd * ) gspca_dev ;
2011-03-22 05:46:24 -03:00
if ( ( unsigned ) webcam > = NWEBCAMS )
webcam = 0 ;
sd - > webcam = webcam ;
gspca_dev - > cam . reverse_alts = 1 ;
gspca_dev - > cam . ctrls = sd - > ctrls ;
sd - > ag_cnt = - 1 ;
2011-03-14 08:49:28 -03:00
/*
* Autodetect sequence inspired from some log .
* We try to detect what registers exist or not .
* If 0x0500 does not exist = > NW802
* If it does , test 0x109b . If it doesn ' t exist ,
* then it ' s a NW801 . Else , a NW800
*/
if ( ! nw802_test_reg ( gspca_dev , 0x0500 , 0x55 ) ) {
sd - > bridge = BRIDGE_NW802 ;
if ( sd - > webcam = = Generic800 )
sd - > webcam = Generic802 ;
} else if ( ! nw802_test_reg ( gspca_dev , 0x109b , 0xaa ) ) {
sd - > bridge = BRIDGE_NW801 ;
if ( sd - > webcam = = Generic800 )
sd - > webcam = P35u ;
}
PDEBUG ( D_PROBE , " Bridge nw80%d " , sd - > bridge ) ;
if ( sd - > bridge = = BRIDGE_NW800 ) {
2011-03-22 05:16:11 -03:00
gspca_dev - > cam . cam_mode = cif_mode ;
gspca_dev - > cam . nmodes = ARRAY_SIZE ( cif_mode ) ;
2011-03-14 08:49:28 -03:00
} else {
gspca_dev - > cam . cam_mode = vga_mode ;
switch ( sd - > webcam ) {
case Generic802 :
case Kr651us :
case Proscope :
case P35u :
gspca_dev - > cam . nmodes = ARRAY_SIZE ( vga_mode ) ;
break ;
default :
gspca_dev - > cam . nmodes = 1 ; /* qvga only */
break ;
}
}
switch ( sd - > webcam ) {
case P35u :
2011-03-22 05:16:11 -03:00
/* sd->ctrls[EXPOSURE].max = 9;
2011-03-14 08:49:28 -03:00
* sd - > ctrls [ EXPOSURE ] . def = 1 ; */
break ;
case Kr651us :
sd - > ctrls [ EXPOSURE ] . max = 315 ;
sd - > ctrls [ EXPOSURE ] . def = 150 ;
break ;
default :
gspca_dev - > ctrl_dis = ~ ( 1 < < GAIN ) ;
break ;
}
2011-03-22 05:46:24 -03:00
return gspca_dev - > usb_err ;
}
2011-03-14 08:49:28 -03:00
2011-03-22 05:46:24 -03:00
/* this function is called at probe and resume time */
static int sd_init ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
switch ( sd - > bridge ) {
case BRIDGE_NW800 :
switch ( sd - > webcam ) {
case SpaceCam :
reg_w_buf ( gspca_dev , spacecam_init ) ;
break ;
default :
reg_w_buf ( gspca_dev , nw800_init ) ;
break ;
}
break ;
default :
switch ( sd - > webcam ) {
case Mustek300 :
case P35u :
case Proscope :
reg_w_buf ( gspca_dev , proscope_init ) ;
break ;
}
break ;
}
2011-03-14 08:49:28 -03:00
return gspca_dev - > usb_err ;
}
/* -- start the camera -- */
static int sd_start ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
const u8 * cmd ;
2011-03-22 05:16:11 -03:00
cmd = webcam_start [ sd - > webcam ] ;
2011-03-14 08:49:28 -03:00
reg_w_buf ( gspca_dev , cmd ) ;
switch ( sd - > webcam ) {
case P35u :
if ( gspca_dev - > width = = 320 )
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , nw801_start_qvga ) ;
2011-03-14 08:49:28 -03:00
else
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , nw801_start_vga ) ;
reg_w_buf ( gspca_dev , nw801_start_2 ) ;
2011-03-14 08:49:28 -03:00
break ;
case Kr651us :
if ( gspca_dev - > width = = 320 )
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , kr651_start_qvga ) ;
2011-03-14 08:49:28 -03:00
else
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , kr651_start_vga ) ;
reg_w_buf ( gspca_dev , kr651_start_2 ) ;
2011-03-14 08:49:28 -03:00
break ;
case Proscope :
if ( gspca_dev - > width = = 320 )
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , proscope_start_qvga ) ;
2011-03-14 08:49:28 -03:00
else
2011-03-22 05:16:11 -03:00
reg_w_buf ( gspca_dev , proscope_start_vga ) ;
reg_w_buf ( gspca_dev , proscope_start_2 ) ;
2011-03-14 08:49:28 -03:00
break ;
}
setgain ( gspca_dev ) ;
setexposure ( gspca_dev ) ;
setautogain ( gspca_dev ) ;
return gspca_dev - > usb_err ;
}
static void sd_stopN ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
u8 value ;
/* 'go' off */
if ( sd - > bridge ! = BRIDGE_NW801 ) {
value = 0x02 ;
reg_w ( gspca_dev , 0x0406 , & value , 1 ) ;
}
/* LED off */
switch ( sd - > webcam ) {
case Cvideopro :
case Kr651us :
case DvcV6 :
case Kritter :
value = 0xff ;
break ;
case Dlink350c :
value = 0x21 ;
break ;
case SpaceCam :
case SpaceCam2 :
case Proscope :
case Twinkle :
value = 0x01 ;
break ;
default :
return ;
}
reg_w ( gspca_dev , 0x0404 , & value , 1 ) ;
}
static void sd_pkt_scan ( struct gspca_dev * gspca_dev ,
u8 * data , /* isoc packet */
int len ) /* iso packet length */
{
/*
* frame header = ' 00 00 hh ww ss xx ff ff '
* with :
* - ' hh ' : height / 4
* - ' ww ' : width / 4
* - ' ss ' : frame sequence number c0 . . dd
*/
if ( data [ 0 ] = = 0x00 & & data [ 1 ] = = 0x00
& & data [ 6 ] = = 0xff & & data [ 7 ] = = 0xff ) {
gspca_frame_add ( gspca_dev , LAST_PACKET , NULL , 0 ) ;
gspca_frame_add ( gspca_dev , FIRST_PACKET , data + 8 , len - 8 ) ;
} else {
gspca_frame_add ( gspca_dev , INTER_PACKET , data , len ) ;
}
}
static int sd_setautogain ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > ctrls [ AUTOGAIN ] . val = val ;
if ( val )
gspca_dev - > ctrl_inac = ( 1 < < GAIN ) | ( 1 < < EXPOSURE ) ;
else
gspca_dev - > ctrl_inac = 0 ;
if ( gspca_dev - > streaming )
setautogain ( gspca_dev ) ;
return gspca_dev - > usb_err ;
}
static void do_autogain ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
int luma ;
int gain , shutter ;
if ( sd - > ag_cnt < 0 )
return ;
if ( - - sd - > ag_cnt > = 0 )
return ;
sd - > ag_cnt = AG_CNT_START ;
/* get the average luma */
reg_r ( gspca_dev , sd - > bridge = = BRIDGE_NW801 ? 0x080d : 0x080c , 4 ) ;
luma = ( gspca_dev - > usb_buf [ 3 ] < < 24 ) + ( gspca_dev - > usb_buf [ 2 ] < < 16 )
+ ( gspca_dev - > usb_buf [ 1 ] < < 8 ) + gspca_dev - > usb_buf [ 0 ] ;
luma / = sd - > ae_res ;
if ( sd - > webcam = = P35u ) {
u8 clock ;
if ( luma > 92 & & luma < 108 )
return ; /* fine */
clock = sd - > ctrls [ EXPOSURE ] . val ;
gain = sd - > ctrls [ GAIN ] . val ;
if ( luma < 100 ) {
if ( luma < 70 & & clock > 0 )
clock - - ;
if ( gain > 98 & & clock > 0 )
clock - - ;
if ( gain < = 50 )
gain + = 3 ;
} else {
if ( luma > 150 & & clock < 9 )
clock + + ;
if ( gain < 12 & & clock < 9 )
clock + + ;
if ( gain > = 5 )
gain - = 3 ;
}
if ( gain ! = sd - > ctrls [ GAIN ] . val ) {
sd - > ctrls [ GAIN ] . val = gain ;
setgain ( gspca_dev ) ;
}
if ( clock ! = sd - > ctrls [ EXPOSURE ] . val ) {
sd - > ctrls [ EXPOSURE ] . val = clock ;
setexposure ( gspca_dev ) ;
}
return ;
}
/* kr651us */
if ( luma > 95 & & luma < 105 )
return ; /* fine */
gain = sd - > ctrls [ GAIN ] . val ;
shutter = sd - > ctrls [ EXPOSURE ] . val ;
if ( luma < 100 ) {
if ( shutter > 0 ) {
if ( luma < 85 & & shutter > 50 )
shutter - = 50 ;
else
shutter - - ;
} else if ( gain < 63 ) {
if ( luma < 85 & & gain < 53 )
gain + = 10 ;
else
gain + + ;
}
} else {
if ( gain > 0 ) {
if ( luma > 115 & & gain > 10 )
gain - = 10 ;
else
gain - - ;
} else if ( shutter < 316 ) { /* max 0x13b */
if ( luma > 115 & & shutter < 266 )
shutter + = 50 ;
else
shutter + + ;
}
}
if ( gain ! = sd - > ctrls [ GAIN ] . val ) {
sd - > ctrls [ GAIN ] . val = gain ;
setgain ( gspca_dev ) ;
}
if ( shutter ! = sd - > ctrls [ EXPOSURE ] . val ) {
sd - > ctrls [ EXPOSURE ] . val = shutter ;
setexposure ( gspca_dev ) ;
}
}
/* V4L2 controls supported by the driver */
static const struct ctrl sd_ctrls [ NCTRLS ] = {
[ GAIN ] = {
{
. id = V4L2_CID_GAIN ,
. type = V4L2_CTRL_TYPE_INTEGER ,
. name = " Gain " ,
. minimum = 0 ,
. maximum = 63 ,
. step = 1 ,
. default_value = 16
} ,
. set_control = setgain
} ,
[ EXPOSURE ] = {
{
. id = V4L2_CID_EXPOSURE ,
. type = V4L2_CTRL_TYPE_INTEGER ,
. name = " Exposure " ,
. minimum = 0 ,
. maximum = 9 ,
. step = 1 ,
. default_value = 1
} ,
. set_control = setexposure
} ,
[ AUTOGAIN ] = {
{
. id = V4L2_CID_AUTOGAIN ,
. type = V4L2_CTRL_TYPE_BOOLEAN ,
. name = " Auto Gain " ,
. minimum = 0 ,
. maximum = 1 ,
. step = 1 ,
. default_value = 1 ,
. flags = V4L2_CTRL_FLAG_UPDATE
} ,
. set = sd_setautogain
} ,
} ;
/* sub-driver description */
static const struct sd_desc sd_desc = {
. name = MODULE_NAME ,
. ctrls = sd_ctrls ,
. nctrls = ARRAY_SIZE ( sd_ctrls ) ,
. config = sd_config ,
. init = sd_init ,
. start = sd_start ,
. stopN = sd_stopN ,
. pkt_scan = sd_pkt_scan ,
. dq_callback = do_autogain ,
} ;
/* -- module initialisation -- */
static const struct usb_device_id device_table [ ] = {
{ USB_DEVICE ( 0x046d , 0xd001 ) } ,
{ USB_DEVICE ( 0x0502 , 0xd001 ) } ,
{ USB_DEVICE ( 0x052b , 0xd001 ) } ,
{ USB_DEVICE ( 0x055f , 0xd001 ) } ,
{ USB_DEVICE ( 0x06a5 , 0x0000 ) } ,
{ USB_DEVICE ( 0x06a5 , 0xd001 ) } ,
{ USB_DEVICE ( 0x06a5 , 0xd800 ) } ,
{ USB_DEVICE ( 0x06be , 0xd001 ) } ,
{ USB_DEVICE ( 0x0728 , 0xd001 ) } ,
{ }
} ;
MODULE_DEVICE_TABLE ( usb , device_table ) ;
/* -- device connect -- */
static int sd_probe ( struct usb_interface * intf ,
const struct usb_device_id * id )
{
return gspca_dev_probe ( intf , id , & sd_desc , sizeof ( struct sd ) ,
THIS_MODULE ) ;
}
static struct usb_driver sd_driver = {
. name = MODULE_NAME ,
. id_table = device_table ,
. probe = sd_probe ,
. disconnect = gspca_disconnect ,
# ifdef CONFIG_PM
. suspend = gspca_suspend ,
. resume = gspca_resume ,
# endif
} ;
/* -- module insert / remove -- */
static int __init sd_mod_init ( void )
{
return usb_register ( & sd_driver ) ;
}
static void __exit sd_mod_exit ( void )
{
usb_deregister ( & sd_driver ) ;
}
module_init ( sd_mod_init ) ;
module_exit ( sd_mod_exit ) ;
module_param ( webcam , int , 0644 ) ;
MODULE_PARM_DESC ( webcam ,
" Webcam type \n "
" 0: generic \n "
" 1: Trust 120 SpaceCam \n "
" 2: other Trust 120 SpaceCam \n "
" 3: Conceptronic Video Pro \n "
" 4: D-link dru-350c \n "
" 5: Plustek Opticam 500U \n "
" 6: Panasonic GP-KR651US \n "
" 7: iRez Kritter \n "
" 8: Mustek Wcam 300 mini \n "
" 9: Scalar USB Microscope M2 (Proscope) \n "
" 10: Divio Chicony TwinkleCam \n "
2011-03-22 05:37:18 -03:00
" 11: DVC-V6 \n " ) ;