2008-06-12 10:58:58 -03:00
/*
* Z - Star / Vimicro zc301 / zc302p / vc30x library
* Copyright ( C ) 2004 2005 2006 Michel Xhaard
* mxhaard @ magic . fr
*
2008-06-30 15:50:11 -03:00
* V4L2 by Jean - Francois Moine < http : //moinejf.free.fr>
2008-06-12 10:58:58 -03:00
*
* 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 0213 9 , USA .
*/
# define MODULE_NAME "zc3xx"
# include "gspca.h"
2008-07-05 11:49:20 -03:00
# define DRIVER_VERSION_NUMBER KERNEL_VERSION(2, 1, 5)
static const char version [ ] = " 2.1.5 " ;
2008-06-12 10:58:58 -03:00
MODULE_AUTHOR ( " Michel Xhaard <mxhaard@users.sourceforge.net>, "
" Serge A. Suchkov <Serge.A.S@tochka.ru> " ) ;
MODULE_DESCRIPTION ( " GSPCA ZC03xx/VC3xx USB Camera Driver " ) ;
MODULE_LICENSE ( " GPL " ) ;
static int force_sensor = - 1 ;
# include "jpeg.h"
/* specific webcam descriptor */
struct sd {
struct gspca_dev gspca_dev ; /* !! must be the first item */
2008-06-30 15:50:11 -03:00
__u8 brightness ;
__u8 contrast ;
__u8 gamma ;
__u8 autogain ;
__u8 lightfreq ;
__u8 sharpness ;
2008-06-12 10:58:58 -03:00
char qindex ;
char sensor ; /* Type of image sensor chip */
/* !! values used in different tables */
# define SENSOR_CS2102 0
# define SENSOR_CS2102K 1
# define SENSOR_GC0305 2
# define SENSOR_HDCS2020 3
# define SENSOR_HDCS2020b 4
# define SENSOR_HV7131B 5
# define SENSOR_HV7131C 6
# define SENSOR_ICM105A 7
# define SENSOR_MC501CB 8
# define SENSOR_OV7620 9
/*#define SENSOR_OV7648 9 - same values */
# define SENSOR_OV7630C 10
2008-06-30 15:50:11 -03:00
# define SENSOR_PAS106 11
# define SENSOR_PB0330 12
# define SENSOR_PO2030 13
# define SENSOR_TAS5130CK 14
# define SENSOR_TAS5130CXX 15
# define SENSOR_TAS5130C_VF0250 16
# define SENSOR_MAX 17
2008-06-12 10:58:58 -03:00
unsigned short chip_revision ;
} ;
/* V4L2 controls supported by the driver */
static int sd_setbrightness ( struct gspca_dev * gspca_dev , __s32 val ) ;
static int sd_getbrightness ( struct gspca_dev * gspca_dev , __s32 * val ) ;
static int sd_setcontrast ( struct gspca_dev * gspca_dev , __s32 val ) ;
static int sd_getcontrast ( struct gspca_dev * gspca_dev , __s32 * val ) ;
static int sd_setautogain ( struct gspca_dev * gspca_dev , __s32 val ) ;
static int sd_getautogain ( struct gspca_dev * gspca_dev , __s32 * val ) ;
2008-06-30 15:50:11 -03:00
static int sd_setgamma ( struct gspca_dev * gspca_dev , __s32 val ) ;
2008-06-12 10:58:58 -03:00
static int sd_getgamma ( struct gspca_dev * gspca_dev , __s32 * val ) ;
2008-06-30 15:50:11 -03:00
static int sd_setfreq ( struct gspca_dev * gspca_dev , __s32 val ) ;
static int sd_getfreq ( struct gspca_dev * gspca_dev , __s32 * val ) ;
static int sd_setsharpness ( struct gspca_dev * gspca_dev , __s32 val ) ;
static int sd_getsharpness ( struct gspca_dev * gspca_dev , __s32 * val ) ;
2008-06-12 10:58:58 -03:00
static struct ctrl sd_ctrls [ ] = {
# define SD_BRIGHTNESS 0
{
{
. id = V4L2_CID_BRIGHTNESS ,
. type = V4L2_CTRL_TYPE_INTEGER ,
. name = " Brightness " ,
. minimum = 0 ,
. maximum = 255 ,
. step = 1 ,
. default_value = 128 ,
} ,
. set = sd_setbrightness ,
. get = sd_getbrightness ,
} ,
# define SD_CONTRAST 1
{
{
. id = V4L2_CID_CONTRAST ,
. type = V4L2_CTRL_TYPE_INTEGER ,
. name = " Contrast " ,
. minimum = 0 ,
. maximum = 256 ,
. step = 1 ,
. default_value = 128 ,
} ,
. set = sd_setcontrast ,
. get = sd_getcontrast ,
} ,
2008-06-30 15:50:11 -03:00
# define SD_GAMMA 2
{
{
. id = V4L2_CID_GAMMA ,
. type = V4L2_CTRL_TYPE_INTEGER ,
. name = " Gamma " ,
. minimum = 1 ,
. maximum = 6 ,
. step = 1 ,
. default_value = 4 ,
} ,
. set = sd_setgamma ,
. get = sd_getgamma ,
} ,
# define SD_AUTOGAIN 3
2008-06-12 10:58:58 -03:00
{
{
. id = V4L2_CID_AUTOGAIN ,
. type = V4L2_CTRL_TYPE_BOOLEAN ,
. name = " Auto Gain " ,
. minimum = 0 ,
. maximum = 1 ,
. step = 1 ,
. default_value = 1 ,
} ,
. set = sd_setautogain ,
. get = sd_getautogain ,
} ,
2008-06-30 15:50:11 -03:00
# define SD_FREQ 4
2008-06-12 10:58:58 -03:00
{
{
2008-06-30 15:50:11 -03:00
. id = V4L2_CID_POWER_LINE_FREQUENCY ,
. type = V4L2_CTRL_TYPE_MENU ,
. name = " Light frequency filter " ,
. minimum = 0 ,
. maximum = 2 , /* 0: 0, 1: 50Hz, 2:60Hz */
. step = 1 ,
. default_value = 1 ,
} ,
. set = sd_setfreq ,
. get = sd_getfreq ,
} ,
# define SD_SHARPNESS 5
{
{
. id = V4L2_CID_SHARPNESS ,
2008-06-12 10:58:58 -03:00
. type = V4L2_CTRL_TYPE_INTEGER ,
2008-06-30 15:50:11 -03:00
. name = " Sharpness " ,
. minimum = 0 ,
. maximum = 3 ,
2008-06-12 10:58:58 -03:00
. step = 1 ,
2008-06-30 15:50:11 -03:00
. default_value = 2 ,
2008-06-12 10:58:58 -03:00
} ,
2008-06-30 15:50:11 -03:00
. set = sd_setsharpness ,
. get = sd_getsharpness ,
2008-06-12 10:58:58 -03:00
} ,
} ;
2008-07-05 11:49:20 -03:00
static struct v4l2_pix_format vga_mode [ ] = {
{ 320 , 240 , V4L2_PIX_FMT_JPEG , V4L2_FIELD_NONE ,
. bytesperline = 320 ,
. sizeimage = 320 * 240 * 3 / 8 + 590 ,
. colorspace = V4L2_COLORSPACE_JPEG ,
. priv = 1 } ,
{ 640 , 480 , V4L2_PIX_FMT_JPEG , V4L2_FIELD_NONE ,
. bytesperline = 640 ,
. sizeimage = 640 * 480 * 3 / 8 + 590 ,
. colorspace = V4L2_COLORSPACE_JPEG ,
. priv = 0 } ,
2008-06-12 10:58:58 -03:00
} ;
2008-07-05 11:49:20 -03:00
static struct v4l2_pix_format sif_mode [ ] = {
{ 176 , 144 , V4L2_PIX_FMT_JPEG , V4L2_FIELD_NONE ,
. bytesperline = 176 ,
. sizeimage = 176 * 144 * 3 / 8 + 590 ,
. colorspace = V4L2_COLORSPACE_JPEG ,
. priv = 1 } ,
{ 352 , 288 , V4L2_PIX_FMT_JPEG , V4L2_FIELD_NONE ,
. bytesperline = 352 ,
. sizeimage = 352 * 288 * 3 / 8 + 590 ,
. colorspace = V4L2_COLORSPACE_JPEG ,
. priv = 0 } ,
2008-06-12 10:58:58 -03:00
} ;
/* usb exchanges */
struct usb_action {
__u8 req ;
__u8 val ;
__u16 idx ;
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x20 , 0x0080 } ,
{ 0xa0 , 0x21 , 0x0081 } ,
{ 0xa0 , 0x30 , 0x0083 } ,
{ 0xa0 , 0x31 , 0x0084 } ,
{ 0xa0 , 0x32 , 0x0085 } ,
{ 0xa0 , 0x23 , 0x0086 } ,
{ 0xa0 , 0x24 , 0x0087 } ,
{ 0xa0 , 0x25 , 0x0088 } ,
{ 0xa0 , 0xb3 , 0x008b } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xaa , 0x02 , 0x0008 } ,
{ 0xaa , 0x03 , 0x0000 } ,
{ 0xaa , 0x11 , 0x0000 } ,
{ 0xaa , 0x12 , 0x0089 } ,
{ 0xaa , 0x13 , 0x0000 } ,
{ 0xaa , 0x14 , 0x00e9 } ,
{ 0xaa , 0x20 , 0x0000 } ,
{ 0xaa , 0x22 , 0x0000 } ,
{ 0xaa , 0x0b , 0x0004 } ,
{ 0xaa , 0x30 , 0x0030 } ,
{ 0xaa , 0x31 , 0x0030 } ,
{ 0xaa , 0x32 , 0x0030 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x10 , 0x01ae } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x68 , 0x018d } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x24 , 0x0120 } , /* gamma 5 */
{ 0xa0 , 0x44 , 0x0121 } ,
{ 0xa0 , 0x64 , 0x0122 } ,
{ 0xa0 , 0x84 , 0x0123 } ,
{ 0xa0 , 0x9d , 0x0124 } ,
{ 0xa0 , 0xb2 , 0x0125 } ,
{ 0xa0 , 0xc4 , 0x0126 } ,
{ 0xa0 , 0xd3 , 0x0127 } ,
{ 0xa0 , 0xe0 , 0x0128 } ,
{ 0xa0 , 0xeb , 0x0129 } ,
{ 0xa0 , 0xf4 , 0x012a } ,
{ 0xa0 , 0xfb , 0x012b } ,
{ 0xa0 , 0xff , 0x012c } ,
{ 0xa0 , 0xff , 0x012d } ,
{ 0xa0 , 0xff , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x18 , 0x0130 } ,
{ 0xa0 , 0x20 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0e , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x00 , 0x013c } ,
{ 0xa0 , 0x00 , 0x013d } ,
{ 0xa0 , 0x00 , 0x013e } ,
{ 0xa0 , 0x01 , 0x013f } ,
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x23 , 0x0001 } ,
{ 0xaa , 0x24 , 0x0055 } ,
{ 0xaa , 0x25 , 0x00cc } ,
{ 0xaa , 0x21 , 0x003f } ,
{ 0xa0 , 0x02 , 0x0190 } ,
{ 0xa0 , 0xab , 0x0191 } ,
{ 0xa0 , 0x98 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x30 , 0x0196 } ,
{ 0xa0 , 0xd4 , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x39 , 0x001d } ,
{ 0xa0 , 0x70 , 0x001e } ,
{ 0xa0 , 0xb0 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x20 , 0x0080 } ,
{ 0xa0 , 0x21 , 0x0081 } ,
{ 0xa0 , 0x30 , 0x0083 } ,
{ 0xa0 , 0x31 , 0x0084 } ,
{ 0xa0 , 0x32 , 0x0085 } ,
{ 0xa0 , 0x23 , 0x0086 } ,
{ 0xa0 , 0x24 , 0x0087 } ,
{ 0xa0 , 0x25 , 0x0088 } ,
{ 0xa0 , 0xb3 , 0x008b } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xaa , 0x02 , 0x0008 } ,
{ 0xaa , 0x03 , 0x0000 } ,
{ 0xaa , 0x11 , 0x0001 } ,
{ 0xaa , 0x12 , 0x0087 } ,
{ 0xaa , 0x13 , 0x0001 } ,
{ 0xaa , 0x14 , 0x00e7 } ,
{ 0xaa , 0x20 , 0x0000 } ,
{ 0xaa , 0x22 , 0x0000 } ,
{ 0xaa , 0x0b , 0x0004 } ,
{ 0xaa , 0x30 , 0x0030 } ,
{ 0xaa , 0x31 , 0x0030 } ,
{ 0xaa , 0x32 , 0x0030 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x68 , 0x018d } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x24 , 0x0120 } , /* gamma 5 */
{ 0xa0 , 0x44 , 0x0121 } ,
{ 0xa0 , 0x64 , 0x0122 } ,
{ 0xa0 , 0x84 , 0x0123 } ,
{ 0xa0 , 0x9d , 0x0124 } ,
{ 0xa0 , 0xb2 , 0x0125 } ,
{ 0xa0 , 0xc4 , 0x0126 } ,
{ 0xa0 , 0xd3 , 0x0127 } ,
{ 0xa0 , 0xe0 , 0x0128 } ,
{ 0xa0 , 0xeb , 0x0129 } ,
{ 0xa0 , 0xf4 , 0x012a } ,
{ 0xa0 , 0xfb , 0x012b } ,
{ 0xa0 , 0xff , 0x012c } ,
{ 0xa0 , 0xff , 0x012d } ,
{ 0xa0 , 0xff , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x18 , 0x0130 } ,
{ 0xa0 , 0x20 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0e , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x00 , 0x013c } ,
{ 0xa0 , 0x00 , 0x013d } ,
{ 0xa0 , 0x00 , 0x013e } ,
{ 0xa0 , 0x01 , 0x013f } ,
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x23 , 0x0000 } ,
{ 0xaa , 0x24 , 0x00aa } ,
{ 0xaa , 0x25 , 0x00e6 } ,
{ 0xaa , 0x21 , 0x003f } ,
{ 0xa0 , 0x01 , 0x0190 } ,
{ 0xa0 , 0x55 , 0x0191 } ,
{ 0xa0 , 0xcc , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x18 , 0x0196 } ,
{ 0xa0 , 0x6a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x3f , 0x001d } ,
{ 0xa0 , 0xa5 , 0x001e } ,
{ 0xa0 , 0xf0 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x008c } , /* 00,0f,8c,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x00ac } , /* 00,04,ac,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x00ac } , /* 00,11,ac,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x00ac } , /* 00,1d,ac,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x42 , 0x0197 } , /* 01,97,42,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0x8c , 0x001d } , /* 00,1d,8c,cc */
{ 0xa0 , 0xb0 , 0x001e } , /* 00,1e,b0,cc */
{ 0xa0 , 0xd0 , 0x001f } , /* 00,1f,d0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x0093 } , /* 00,0f,93,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x00a1 } , /* 00,04,a1,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x00a1 } , /* 00,11,a1,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x00a1 } , /* 00,1d,a1,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xf7 , 0x0192 } , /* 01,92,f7,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x83 , 0x0197 } , /* 01,97,83,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0x93 , 0x001d } , /* 00,1d,93,cc */
{ 0xa0 , 0xb0 , 0x001e } , /* 00,1e,b0,cc */
{ 0xa0 , 0xd0 , 0x001f } , /* 00,1f,d0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x005d } , /* 00,0f,5d,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x00aa } , /* 00,04,aa,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x00aa } , /* 00,11,aa,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x00aa } , /* 00,1d,aa,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xe4 , 0x0192 } , /* 01,92,e4,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x3a , 0x0197 } , /* 01,97,3a,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0x5d , 0x001d } , /* 00,1d,5d,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xd0 , 0x00c8 } , /* 00,c8,d0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x00b7 } , /* 00,0f,b7,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x00be } , /* 00,04,be,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x00be } , /* 00,11,be,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x00be } , /* 00,1d,be,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xfc , 0x0192 } , /* 01,92,fc,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x69 , 0x0197 } , /* 01,97,69,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0xb7 , 0x001d } , /* 00,1d,b7,cc */
{ 0xa0 , 0xd0 , 0x001e } , /* 00,1e,d0,cc */
{ 0xa0 , 0xe8 , 0x001f } , /* 00,1f,e8,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x0059 } , /* 00,0f,59,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x0080 } , /* 00,04,80,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x0080 } , /* 00,11,80,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x0080 } , /* 00,1d,80,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0x59 , 0x001d } , /* 00,1d,59,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0f , 0x0059 } , /* 00,0f,59,aa */
{ 0xaa , 0x03 , 0x0005 } , /* 00,03,05,aa */
{ 0xaa , 0x04 , 0x0080 } , /* 00,04,80,aa */
{ 0xaa , 0x10 , 0x0005 } , /* 00,10,05,aa */
{ 0xaa , 0x11 , 0x0080 } , /* 00,11,80,aa */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa */
{ 0xaa , 0x1c , 0x0005 } , /* 00,1c,05,aa */
{ 0xaa , 0x1d , 0x0080 } , /* 00,1d,80,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x3f , 0x0191 } , /* 01,91,3f,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0x59 , 0x001d } , /* 00,1d,59,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* CS2102_KOCOM */
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102K_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x11 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x08 , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x55 , 0x008b } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0a , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0b , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0c , 0x0092 } ,
{ 0xa0 , 0x7c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0d , 0x0092 } ,
{ 0xa0 , 0xa3 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x03 , 0x0092 } ,
{ 0xa0 , 0xfb , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x05 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x06 , 0x0092 } ,
{ 0xa0 , 0x03 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x09 , 0x0092 } ,
{ 0xa0 , 0x08 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0e , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0f , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x10 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x11 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x12 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x15 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x16 , 0x0092 } ,
{ 0xa0 , 0x0c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x17 , 0x0092 } ,
{ 0xa0 , 0x0c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0xb7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x20 , 0x0087 } ,
{ 0xa0 , 0x21 , 0x0088 } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x01 , 0x01b1 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x01 , 0x00a3 } ,
{ 0xa0 , 0x22 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xee , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x3a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x0c , 0x01a9 } ,
{ 0xa0 , 0x28 , 0x01aa } ,
{ 0xa0 , 0x04 , 0x001d } ,
{ 0xa0 , 0x0f , 0x001e } ,
{ 0xa0 , 0x19 , 0x001f } ,
{ 0xa0 , 0x1f , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x5c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x5c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x96 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x96 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action cs2102K_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x11 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x08 , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x55 , 0x008b } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0a , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0b , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0c , 0x0092 } ,
{ 0xa0 , 0x7b , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0d , 0x0092 } ,
{ 0xa0 , 0xa3 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x03 , 0x0092 } ,
{ 0xa0 , 0xfb , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x05 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x06 , 0x0092 } ,
{ 0xa0 , 0x03 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x09 , 0x0092 } ,
{ 0xa0 , 0x08 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0e , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0f , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x10 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x11 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x12 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x15 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x16 , 0x0092 } ,
{ 0xa0 , 0x0c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x17 , 0x0092 } ,
{ 0xa0 , 0x0c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0xf7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x20 , 0x0087 } ,
{ 0xa0 , 0x21 , 0x0088 } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x01 , 0x01b1 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x01 , 0x00a3 } ,
{ 0xa0 , 0x22 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xee , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x3a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x0c , 0x01a9 } ,
{ 0xa0 , 0x28 , 0x01aa } ,
{ 0xa0 , 0x04 , 0x001d } ,
{ 0xa0 , 0x0f , 0x001e } ,
{ 0xa0 , 0x19 , 0x001f } ,
{ 0xa0 , 0x1f , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x08 , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x55 , 0x008b } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0A , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0B , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0C , 0x0092 } ,
{ 0xa0 , 0x7b , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0D , 0x0092 } ,
{ 0xa0 , 0xA3 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x03 , 0x0092 } ,
{ 0xa0 , 0xfb , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x05 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x06 , 0x0092 } ,
{ 0xa0 , 0x03 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x09 , 0x0092 } ,
{ 0xa0 , 0x08 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0E , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x0f , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x10 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x11 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x12 , 0x0092 } ,
{ 0xa0 , 0x18 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x15 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x16 , 0x0092 } ,
{ 0xa0 , 0x0c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x17 , 0x0092 } ,
{ 0xa0 , 0x0C , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0xf7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x20 , 0x0087 } ,
{ 0xa0 , 0x21 , 0x0088 } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x01 , 0x01b1 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x22 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x01 , 0x00a3 } ,
{ 0xa0 , 0x22 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xee , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x3a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x0c , 0x01a9 } ,
{ 0xa0 , 0x28 , 0x01aa } ,
{ 0xa0 , 0x04 , 0x001d } ,
{ 0xa0 , 0x0f , 0x001e } ,
{ 0xa0 , 0x19 , 0x001f } ,
{ 0xa0 , 0x1f , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x4c , 0x0118 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x5c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x5c , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x96 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x96 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0xd0 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0xd0 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x02 , 0x0008 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x0a , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x0a , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x44 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x44 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x21 , 0x0092 } ,
{ 0xa0 , 0x7e , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x13 , 0x0092 } ,
{ 0xa0 , 0x7e , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x14 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x18 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action gc0305_Initial [ ] = { /* 640x480 */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x04 , 0x0002 } , /* 00,02,04,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xe6 , 0x009c } , /* 00,9c,e6,cc */
{ 0xa0 , 0x86 , 0x009e } , /* 00,9e,86,cc */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc */
{ 0xaa , 0x13 , 0x0002 } , /* 00,13,02,aa */
{ 0xaa , 0x15 , 0x0003 } , /* 00,15,03,aa */
{ 0xaa , 0x01 , 0x0000 } , /* 00,01,00,aa */
{ 0xaa , 0x02 , 0x0000 } , /* 00,02,00,aa */
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa */
{ 0xaa , 0x1c , 0x0017 } , /* 00,1c,17,aa */
{ 0xaa , 0x1d , 0x0080 } , /* 00,1d,80,aa */
{ 0xaa , 0x1f , 0x0008 } , /* 00,1f,08,aa */
{ 0xaa , 0x21 , 0x0012 } , /* 00,21,12,aa */
{ 0xa0 , 0x82 , 0x0086 } , /* 00,86,82,cc */
{ 0xa0 , 0x83 , 0x0087 } , /* 00,87,83,cc */
{ 0xa0 , 0x84 , 0x0088 } , /* 00,88,84,cc */
{ 0xaa , 0x05 , 0x0000 } , /* 00,05,00,aa */
{ 0xaa , 0x0a , 0x0000 } , /* 00,0a,00,aa */
{ 0xaa , 0x0b , 0x00b0 } , /* 00,0b,b0,aa */
{ 0xaa , 0x0c , 0x0000 } , /* 00,0c,00,aa */
{ 0xaa , 0x0d , 0x00b0 } , /* 00,0d,b0,aa */
{ 0xaa , 0x0e , 0x0000 } , /* 00,0e,00,aa */
{ 0xaa , 0x0f , 0x00b0 } , /* 00,0f,b0,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x11 , 0x00b0 } , /* 00,11,b0,aa */
{ 0xaa , 0x16 , 0x0001 } , /* 00,16,01,aa */
{ 0xaa , 0x17 , 0x00e6 } , /* 00,17,e6,aa */
{ 0xaa , 0x18 , 0x0002 } , /* 00,18,02,aa */
{ 0xaa , 0x19 , 0x0086 } , /* 00,19,86,aa */
{ 0xaa , 0x20 , 0x0000 } , /* 00,20,00,aa */
{ 0xaa , 0x1b , 0x0020 } , /* 00,1b,20,aa */
{ 0xa0 , 0xb7 , 0x0101 } , /* 01,01,b7,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x76 , 0x0189 } , /* 01,89,76,cc */
{ 0xa0 , 0x09 , 0x01ad } , /* 01,ad,09,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc */
{ 0xa0 , 0x85 , 0x018d } , /* 01,8d,85,cc */
{ 0xa0 , 0x00 , 0x011e } , /* 01,1e,00,cc */
{ 0xa0 , 0x52 , 0x0116 } , /* 01,16,52,cc */
{ 0xa0 , 0x40 , 0x0117 } , /* 01,17,40,cc */
{ 0xa0 , 0x52 , 0x0118 } , /* 01,18,52,cc */
{ 0xa0 , 0x03 , 0x0113 } , /* 01,13,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action gc0305_InitialScale [ ] = { /* 320x240 */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x10 , 0x0002 } , /* 00,02,10,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xe8 , 0x009c } , /* 00,9c,e8,cc */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,88,cc */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc */
{ 0xaa , 0x13 , 0x0000 } , /* 00,13,00,aa */
{ 0xaa , 0x15 , 0x0001 } , /* 00,15,01,aa */
{ 0xaa , 0x01 , 0x0000 } , /* 00,01,00,aa */
{ 0xaa , 0x02 , 0x0000 } , /* 00,02,00,aa */
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa */
{ 0xaa , 0x1c , 0x0017 } , /* 00,1c,17,aa */
{ 0xaa , 0x1d , 0x0080 } , /* 00,1d,80,aa */
{ 0xaa , 0x1f , 0x0008 } , /* 00,1f,08,aa */
{ 0xaa , 0x21 , 0x0012 } , /* 00,21,12,aa */
{ 0xa0 , 0x82 , 0x0086 } , /* 00,86,82,cc */
{ 0xa0 , 0x83 , 0x0087 } , /* 00,87,83,cc */
{ 0xa0 , 0x84 , 0x0088 } , /* 00,88,84,cc */
{ 0xaa , 0x05 , 0x0000 } , /* 00,05,00,aa */
{ 0xaa , 0x0a , 0x0000 } , /* 00,0a,00,aa */
{ 0xaa , 0x0b , 0x00b0 } , /* 00,0b,b0,aa */
{ 0xaa , 0x0c , 0x0000 } , /* 00,0c,00,aa */
{ 0xaa , 0x0d , 0x00b0 } , /* 00,0d,b0,aa */
{ 0xaa , 0x0e , 0x0000 } , /* 00,0e,00,aa */
{ 0xaa , 0x0f , 0x00b0 } , /* 00,0f,b0,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x11 , 0x00b0 } , /* 00,11,b0,aa */
{ 0xaa , 0x16 , 0x0001 } , /* 00,16,01,aa */
{ 0xaa , 0x17 , 0x00e8 } , /* 00,17,e8,aa */
{ 0xaa , 0x18 , 0x0002 } , /* 00,18,02,aa */
{ 0xaa , 0x19 , 0x0088 } , /* 00,19,88,aa */
{ 0xaa , 0x20 , 0x0000 } , /* 00,20,00,aa */
{ 0xaa , 0x1b , 0x0020 } , /* 00,1b,20,aa */
{ 0xa0 , 0xb7 , 0x0101 } , /* 01,01,b7,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x76 , 0x0189 } , /* 01,89,76,cc */
{ 0xa0 , 0x09 , 0x01ad } , /* 01,ad,09,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc */
{ 0xa0 , 0x00 , 0x011e } , /* 01,1e,00,cc */
{ 0xa0 , 0x52 , 0x0116 } , /* 01,16,52,cc */
{ 0xa0 , 0x40 , 0x0117 } , /* 01,17,40,cc */
{ 0xa0 , 0x52 , 0x0118 } , /* 01,18,52,cc */
{ 0xa0 , 0x03 , 0x0113 } , /* 01,13,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action gc0305_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0002 } , /* 00,83,02,aa */
{ 0xaa , 0x84 , 0x0038 } , /* 00,84,38,aa */ /* win: 00,84,ec */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x0b , 0x0191 } , /* 01,91,0b,cc */
{ 0xa0 , 0x18 , 0x0192 } , /* 01,92,18,cc */ /* win: 01,92,10 */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x8e , 0x0197 } , /* 01,97,8e,cc */ /* win: 01,97,ec */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x60 , 0x011d } , /* 01,1d,60,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
/* {0xa0, 0x85, 0x018d}, * 01,8d,85,cc * * if 640x480 */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action gc0305_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0000 } , /* 00,83,00,aa */
{ 0xaa , 0x84 , 0x00ec } , /* 00,84,ec,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x0b , 0x0191 } , /* 01,91,0b,cc */
{ 0xa0 , 0x10 , 0x0192 } , /* 01,92,10,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0xec , 0x0197 } , /* 01,97,ec,cc */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x60 , 0x011d } , /* 01,1d,60,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
{ 0xa0 , 0x80 , 0x018d } , /* 01,8d,80,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action gc0305_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x0c , 0x0100 } , /* 01,00,0c,cc */
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0000 } , /* 00,83,00,aa */
{ 0xaa , 0x84 , 0x0020 } , /* 00,84,20,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x00 , 0x0191 } , /* 01,91,00,cc */
{ 0xa0 , 0x48 , 0x0192 } , /* 01,92,48,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x60 , 0x011d } , /* 01,1d,60,cc */
{ 0xa0 , 0x03 , 0x0180 } , /* 01,80,03,cc */
{ 0xa0 , 0x80 , 0x018d } , /* 01,8d,80,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* play poker with registers at your own risk !! */
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020xx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0e , 0x0010 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xd0 , 0x0006 } , /* D0 ?? E0 did not start */
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x08 , 0x008d } ,
{ 0xa0 , 0x08 , 0x0098 } ,
{ 0xa0 , 0x02 , 0x009a } ,
{ 0xa0 , 0x08 , 0x011a } ,
{ 0xa0 , 0x02 , 0x011c } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xd8 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xaa , 0x02 , 0x0002 } ,
{ 0xaa , 0x07 , 0x0006 } ,
{ 0xaa , 0x08 , 0x0002 } ,
{ 0xaa , 0x09 , 0x0006 } ,
{ 0xaa , 0x0a , 0x0001 } ,
{ 0xaa , 0x0b , 0x0001 } ,
{ 0xaa , 0x0c , 0x0008 } ,
{ 0xaa , 0x0d , 0x0000 } ,
{ 0xaa , 0x10 , 0x0000 } ,
{ 0xaa , 0x12 , 0x0005 } ,
{ 0xaa , 0x13 , 0x0063 } ,
{ 0xaa , 0x15 , 0x0070 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x70 , 0x018d } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x04 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x07 , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x11 , 0x0120 } , /* gamma ~4 */
{ 0xa0 , 0x37 , 0x0121 } ,
{ 0xa0 , 0x58 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x91 , 0x0124 } ,
{ 0xa0 , 0xa6 , 0x0125 } ,
{ 0xa0 , 0xb8 , 0x0126 } ,
{ 0xa0 , 0xc7 , 0x0127 } ,
{ 0xa0 , 0xd3 , 0x0128 } ,
{ 0xa0 , 0xde , 0x0129 } ,
{ 0xa0 , 0xe6 , 0x012a } ,
{ 0xa0 , 0xed , 0x012b } ,
{ 0xa0 , 0xf3 , 0x012c } ,
{ 0xa0 , 0xf8 , 0x012d } ,
{ 0xa0 , 0xfb , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x23 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x4c , 0x010a } , /* matrix */
{ 0xa0 , 0xf5 , 0x010b } ,
{ 0xa0 , 0xff , 0x010c } ,
{ 0xa0 , 0xf9 , 0x010d } ,
{ 0xa0 , 0x51 , 0x010e } ,
{ 0xa0 , 0xf5 , 0x010f } ,
{ 0xa0 , 0xfb , 0x0110 } ,
{ 0xa0 , 0xed , 0x0111 } ,
{ 0xa0 , 0x5f , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x20 , 0x0087 } ,
{ 0xa0 , 0x21 , 0x0088 } ,
{ 0xaa , 0x20 , 0x0004 } ,
{ 0xaa , 0x21 , 0x003d } ,
{ 0xaa , 0x03 , 0x0041 } ,
{ 0xaa , 0x04 , 0x0010 } ,
{ 0xaa , 0x05 , 0x003d } ,
{ 0xaa , 0x0e , 0x0001 } ,
{ 0xaa , 0x0f , 0x0000 } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x04 , 0x0191 } ,
{ 0xa0 , 0x3d , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x9b , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x41 , 0x001d } ,
{ 0xa0 , 0x6f , 0x001e } ,
{ 0xa0 , 0xad , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x0f , 0x0087 } ,
{ 0xa0 , 0x0e , 0x0088 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0195 } ,
{ 0xa1 , 0x01 , 0x0196 } ,
{ 0xa1 , 0x01 , 0x0197 } ,
{ 0xa0 , 0x3d , 0x0192 } ,
{ 0xa0 , 0x04 , 0x0191 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x1d , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x85 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0116 } ,
{ 0xa1 , 0x01 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x1d , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x85 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0116 } ,
{ 0xa1 , 0x01 , 0x0118 } ,
/* {0xa0, 0x02, 0x0008}, */
{ 0xa0 , 0x00 , 0x0007 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020xx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0e , 0x0010 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x08 , 0x008d } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x03 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x03 , 0x011c } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xe6 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x86 , 0x009e } ,
{ 0xaa , 0x02 , 0x0002 } ,
{ 0xaa , 0x07 , 0x0006 } ,
{ 0xaa , 0x08 , 0x0002 } ,
{ 0xaa , 0x09 , 0x0006 } ,
{ 0xaa , 0x0a , 0x0001 } ,
{ 0xaa , 0x0b , 0x0001 } ,
{ 0xaa , 0x0c , 0x0008 } ,
{ 0xaa , 0x0d , 0x0000 } ,
{ 0xaa , 0x10 , 0x0000 } ,
{ 0xaa , 0x12 , 0x0005 } ,
{ 0xaa , 0x13 , 0x0063 } ,
{ 0xaa , 0x15 , 0x0070 } ,
{ 0xa0 , 0xb7 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x70 , 0x018d } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x04 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x07 , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x11 , 0x0120 } , /* gamma ~4*/
{ 0xa0 , 0x37 , 0x0121 } ,
{ 0xa0 , 0x58 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x91 , 0x0124 } ,
{ 0xa0 , 0xa6 , 0x0125 } ,
{ 0xa0 , 0xb8 , 0x0126 } ,
{ 0xa0 , 0xc7 , 0x0127 } ,
{ 0xa0 , 0xd3 , 0x0128 } ,
{ 0xa0 , 0xde , 0x0129 } ,
{ 0xa0 , 0xe6 , 0x012a } ,
{ 0xa0 , 0xed , 0x012b } ,
{ 0xa0 , 0xf3 , 0x012c } ,
{ 0xa0 , 0xf8 , 0x012d } ,
{ 0xa0 , 0xfb , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x23 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x60 , 0x010a } , /* matrix */
{ 0xa0 , 0xff , 0x010b } ,
{ 0xa0 , 0xff , 0x010c } ,
{ 0xa0 , 0xff , 0x010d } ,
{ 0xa0 , 0x60 , 0x010e } ,
{ 0xa0 , 0xff , 0x010f } ,
{ 0xa0 , 0xff , 0x0110 } ,
{ 0xa0 , 0xff , 0x0111 } ,
{ 0xa0 , 0x60 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x20 , 0x0087 } ,
{ 0xa0 , 0x21 , 0x0088 } ,
{ 0xaa , 0x20 , 0x0002 } ,
{ 0xaa , 0x21 , 0x001b } ,
{ 0xaa , 0x03 , 0x0044 } ,
{ 0xaa , 0x04 , 0x0008 } ,
{ 0xaa , 0x05 , 0x001b } ,
{ 0xaa , 0x0e , 0x0001 } ,
{ 0xaa , 0x0f , 0x0000 } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x02 , 0x0191 } ,
{ 0xa0 , 0x1b , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x4d , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x44 , 0x001d } ,
{ 0xa0 , 0x6f , 0x001e } ,
{ 0xa0 , 0xad , 0x001f } ,
{ 0xa0 , 0xeb , 0x0020 } ,
{ 0xa0 , 0x0f , 0x0087 } ,
{ 0xa0 , 0x0e , 0x0088 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0195 } ,
{ 0xa1 , 0x01 , 0x0196 } ,
{ 0xa1 , 0x01 , 0x0197 } ,
{ 0xa0 , 0x1b , 0x0192 } ,
{ 0xa0 , 0x02 , 0x0191 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x1d , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x99 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0116 } ,
{ 0xa1 , 0x01 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x1d , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x99 , 0x0118 } ,
/* {0xa0, 0x02, 0x0008}, */
{ 0xa0 , 0x00 , 0x0007 } ,
/* {0xa0, 0x18, 0x00fe}, */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020xb_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x11 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* qtable 0x05 */
{ 0xa0 , 0x08 , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xaa , 0x1c , 0x0000 } ,
{ 0xaa , 0x0a , 0x0001 } ,
{ 0xaa , 0x0b , 0x0006 } ,
{ 0xaa , 0x0c , 0x007b } ,
{ 0xaa , 0x0d , 0x00a7 } ,
{ 0xaa , 0x03 , 0x00fb } ,
{ 0xaa , 0x05 , 0x0000 } ,
{ 0xaa , 0x06 , 0x0003 } ,
{ 0xaa , 0x09 , 0x0008 } ,
{ 0xaa , 0x0f , 0x0018 } , /* set sensor gain */
{ 0xaa , 0x10 , 0x0018 } ,
{ 0xaa , 0x11 , 0x0018 } ,
{ 0xaa , 0x12 , 0x0018 } ,
{ 0xaa , 0x15 , 0x004e } ,
{ 0xaa , 0x1c , 0x0004 } ,
{ 0xa0 , 0xb7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x70 , 0x018d } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x66 , 0x010a } , /* matrix */
{ 0xa0 , 0xed , 0x010b } ,
{ 0xa0 , 0xed , 0x010c } ,
{ 0xa0 , 0xed , 0x010d } ,
{ 0xa0 , 0x66 , 0x010e } ,
{ 0xa0 , 0xed , 0x010f } ,
{ 0xa0 , 0xed , 0x0110 } ,
{ 0xa0 , 0xed , 0x0111 } ,
{ 0xa0 , 0x66 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x13 , 0x0031 } ,
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x0e , 0x0004 } ,
{ 0xaa , 0x19 , 0x00cd } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x02 , 0x0191 } ,
{ 0xa0 , 0x62 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x3d , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x0c , 0x01a9 } , /* 0x14 */
{ 0xa0 , 0x28 , 0x01aa } ,
{ 0xa0 , 0x04 , 0x001d } ,
{ 0xa0 , 0x18 , 0x001e } ,
{ 0xa0 , 0x2c , 0x001f } ,
{ 0xa0 , 0x41 , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020xb_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x08 , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xaa , 0x1c , 0x0000 } ,
{ 0xaa , 0x0a , 0x0001 } ,
{ 0xaa , 0x0b , 0x0006 } ,
{ 0xaa , 0x0c , 0x007a } ,
{ 0xaa , 0x0d , 0x00a7 } ,
{ 0xaa , 0x03 , 0x00fb } ,
{ 0xaa , 0x05 , 0x0000 } ,
{ 0xaa , 0x06 , 0x0003 } ,
{ 0xaa , 0x09 , 0x0008 } ,
{ 0xaa , 0x0f , 0x0018 } , /* original setting */
{ 0xaa , 0x10 , 0x0018 } ,
{ 0xaa , 0x11 , 0x0018 } ,
{ 0xaa , 0x12 , 0x0018 } ,
{ 0xaa , 0x15 , 0x004e } ,
{ 0xaa , 0x1c , 0x0004 } ,
{ 0xa0 , 0xf7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x70 , 0x018d } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x66 , 0x010a } , /* matrix */
{ 0xa0 , 0xed , 0x010b } ,
{ 0xa0 , 0xed , 0x010c } ,
{ 0xa0 , 0xed , 0x010d } ,
{ 0xa0 , 0x66 , 0x010e } ,
{ 0xa0 , 0xed , 0x010f } ,
{ 0xa0 , 0xed , 0x0110 } ,
{ 0xa0 , 0xed , 0x0111 } ,
{ 0xa0 , 0x66 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
/**** set exposure ***/
{ 0xaa , 0x13 , 0x0031 } ,
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x0e , 0x0004 } ,
{ 0xaa , 0x19 , 0x00cd } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x02 , 0x0191 } ,
{ 0xa0 , 0x62 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x3d , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x0c , 0x01a9 } ,
{ 0xa0 , 0x28 , 0x01aa } ,
{ 0xa0 , 0x04 , 0x001d } ,
{ 0xa0 , 0x18 , 0x001e } ,
{ 0xa0 , 0x2c , 0x001f } ,
{ 0xa0 , 0x41 , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020b_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x13 , 0x0018 } , /* 00,13,18,aa */
{ 0xaa , 0x14 , 0x0001 } , /* 00,14,01,aa */
{ 0xaa , 0x0e , 0x0005 } , /* 00,0e,05,aa */
{ 0xaa , 0x19 , 0x001f } , /* 00,19,1f,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x02 , 0x0191 } , /* 01,91,02,cc */
{ 0xa0 , 0x76 , 0x0192 } , /* 01,92,76,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x46 , 0x0197 } , /* 01,97,46,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x28 , 0x01aa } , /* 01,aa,28,cc */
{ 0xa0 , 0x05 , 0x001d } , /* 00,1d,05,cc */
{ 0xa0 , 0x1a , 0x001e } , /* 00,1e,1a,cc */
{ 0xa0 , 0x2f , 0x001f } , /* 00,1f,2f,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020b_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x13 , 0x0031 } , /* 00,13,31,aa */
{ 0xaa , 0x14 , 0x0001 } , /* 00,14,01,aa */
{ 0xaa , 0x0e , 0x0004 } , /* 00,0e,04,aa */
{ 0xaa , 0x19 , 0x00cd } , /* 00,19,cd,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x02 , 0x0191 } , /* 01,91,02,cc */
{ 0xa0 , 0x62 , 0x0192 } , /* 01,92,62,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x3d , 0x0197 } , /* 01,97,3d,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x28 , 0x01aa } , /* 01,aa,28,cc */
{ 0xa0 , 0x04 , 0x001d } , /* 00,1d,04,cc */
{ 0xa0 , 0x18 , 0x001e } , /* 00,1e,18,cc */
{ 0xa0 , 0x2c , 0x001f } , /* 00,1f,2c,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hdcs2020b_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x13 , 0x0010 } , /* 00,13,10,aa */
{ 0xaa , 0x14 , 0x0001 } , /* 00,14,01,aa */
{ 0xaa , 0x0e , 0x0004 } , /* 00,0e,04,aa */
{ 0xaa , 0x19 , 0x0000 } , /* 00,19,00,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x02 , 0x0191 } , /* 01,91,02,cc */
{ 0xa0 , 0x70 , 0x0192 } , /* 01,92,70,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0x04 , 0x001d } , /* 00,1d,04,cc */
{ 0xa0 , 0x17 , 0x001e } , /* 00,1e,17,cc */
{ 0xa0 , 0x2a , 0x001f } , /* 00,1f,2a,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hv7131bxx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xaa , 0x30 , 0x002d } ,
{ 0xaa , 0x01 , 0x0005 } ,
{ 0xaa , 0x11 , 0x0000 } ,
{ 0xaa , 0x13 , 0x0001 } , /* {0xaa, 0x13, 0x0000}, */
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x15 , 0x00e8 } ,
{ 0xaa , 0x16 , 0x0002 } ,
{ 0xaa , 0x17 , 0x0086 } ,
{ 0xaa , 0x31 , 0x0038 } ,
{ 0xaa , 0x32 , 0x0038 } ,
{ 0xaa , 0x33 , 0x0038 } ,
{ 0xaa , 0x5b , 0x0001 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x68 , 0x018d } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0xc0 , 0x019b } ,
{ 0xa0 , 0xa0 , 0x019c } ,
{ 0xa0 , 0x02 , 0x0188 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xaa , 0x02 , 0x0080 } , /* {0xaa, 0x02, 0x0090}; */
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x25 , 0x0007 } ,
{ 0xaa , 0x26 , 0x00a1 } ,
{ 0xaa , 0x27 , 0x0020 } ,
{ 0xaa , 0x20 , 0x0000 } ,
{ 0xaa , 0x21 , 0x00a0 } ,
{ 0xaa , 0x22 , 0x0016 } ,
{ 0xaa , 0x23 , 0x0040 } ,
{ 0xa0 , 0x10 , 0x0190 } , /* 2F */
{ 0xa0 , 0x04 , 0x0191 } , /* 4d */
{ 0xa0 , 0x60 , 0x0192 } ,
{ 0xa0 , 0x01 , 0x0195 } ,
{ 0xa0 , 0x86 , 0x0196 } ,
{ 0xa0 , 0xa0 , 0x0197 } ,
{ 0xa0 , 0x07 , 0x018c } ,
{ 0xa0 , 0x0f , 0x018f } ,
{ 0xa0 , 0x18 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x00 , 0x001d } ,
{ 0xa0 , 0xa0 , 0x001e } ,
{ 0xa0 , 0x16 , 0x001f } ,
{ 0xa0 , 0x40 , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa1 , 0x01 , 0x001d } ,
{ 0xa1 , 0x01 , 0x001e } ,
{ 0xa1 , 0x01 , 0x001f } ,
{ 0xa1 , 0x01 , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
/* {0xa0, 0x02, 0x0008}, */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hv7131bxx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xaa , 0x30 , 0x002d } ,
{ 0xaa , 0x01 , 0x0005 } ,
{ 0xaa , 0x11 , 0x0001 } ,
{ 0xaa , 0x13 , 0x0000 } , /* {0xaa, 0x13, 0x0001}; */
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x15 , 0x00e6 } ,
{ 0xaa , 0x16 , 0x0002 } ,
{ 0xaa , 0x17 , 0x0086 } ,
{ 0xaa , 0x31 , 0x0038 } ,
{ 0xaa , 0x32 , 0x0038 } ,
{ 0xaa , 0x33 , 0x0038 } ,
{ 0xaa , 0x5b , 0x0001 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x70 , 0x018d } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0xc0 , 0x019b } ,
{ 0xa0 , 0xa0 , 0x019c } ,
{ 0xa0 , 0x02 , 0x0188 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xaa , 0x02 , 0x0090 } , /* {0xaa, 0x02, 0x0080}, */
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x25 , 0x0007 } ,
{ 0xaa , 0x26 , 0x00a1 } ,
{ 0xaa , 0x27 , 0x0020 } ,
{ 0xaa , 0x20 , 0x0000 } ,
{ 0xaa , 0x21 , 0x0040 } ,
{ 0xaa , 0x22 , 0x0013 } ,
{ 0xaa , 0x23 , 0x004c } ,
{ 0xa0 , 0x10 , 0x0190 } , /* 2f */
{ 0xa0 , 0x04 , 0x0191 } , /* 4d */
{ 0xa0 , 0x60 , 0x0192 } , /* 60 */
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0xc3 , 0x0196 } ,
{ 0xa0 , 0x50 , 0x0197 } ,
{ 0xa0 , 0x0c , 0x018c } ,
{ 0xa0 , 0x18 , 0x018f } ,
{ 0xa0 , 0x18 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0x00 , 0x001d } ,
{ 0xa0 , 0x40 , 0x001e } ,
{ 0xa0 , 0x13 , 0x001f } ,
{ 0xa0 , 0x4c , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa1 , 0x01 , 0x001d } ,
{ 0xa1 , 0x01 , 0x001e } ,
{ 0xa1 , 0x01 , 0x001f } ,
{ 0xa1 , 0x01 , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
/* {0xa0, 0x02, 0x0008}, */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hv7131cxx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x01 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xaa , 0x01 , 0x000c } ,
{ 0xaa , 0x11 , 0x0000 } ,
{ 0xaa , 0x13 , 0x0000 } ,
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x15 , 0x00e8 } ,
{ 0xaa , 0x16 , 0x0002 } ,
{ 0xaa , 0x17 , 0x0088 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x89 , 0x018d } ,
{ 0xa0 , 0x50 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0xc0 , 0x019b } ,
{ 0xa0 , 0xa0 , 0x019c } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x60 , 0x010a } , /* matrix */
{ 0xa0 , 0xf0 , 0x010b } ,
{ 0xa0 , 0xf0 , 0x010c } ,
{ 0xa0 , 0xf0 , 0x010d } ,
{ 0xa0 , 0x60 , 0x010e } ,
{ 0xa0 , 0xf0 , 0x010f } ,
{ 0xa0 , 0xf0 , 0x0110 } ,
{ 0xa0 , 0xf0 , 0x0111 } ,
{ 0xa0 , 0x60 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x25 , 0x0007 } ,
{ 0xaa , 0x26 , 0x0053 } ,
{ 0xaa , 0x27 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0190 } , /* 2f */
{ 0xa0 , 0x04 , 0x0191 } , /* 9b */
{ 0xa0 , 0x60 , 0x0192 } , /* 80 */
{ 0xa0 , 0x01 , 0x0195 } ,
{ 0xa0 , 0xd4 , 0x0196 } ,
{ 0xa0 , 0xc0 , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x13 , 0x01aa } ,
{ 0xa1 , 0x01 , 0x001d } ,
{ 0xa1 , 0x01 , 0x001e } ,
{ 0xa1 , 0x01 , 0x001f } ,
{ 0xa1 , 0x01 , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action hv7131cxx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } , /* diff */
{ 0xa0 , 0x01 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } , /* 1e0 */
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xaa , 0x01 , 0x000c } ,
{ 0xaa , 0x11 , 0x0000 } ,
{ 0xaa , 0x13 , 0x0000 } ,
{ 0xaa , 0x14 , 0x0001 } ,
{ 0xaa , 0x15 , 0x00e8 } ,
{ 0xaa , 0x16 , 0x0002 } ,
{ 0xaa , 0x17 , 0x0088 } ,
{ 0xa0 , 0x00 , 0x0019 } , /* 00 */
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x89 , 0x018d } ,
{ 0xa0 , 0x50 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0xc0 , 0x019b } ,
{ 0xa0 , 0xa0 , 0x019c } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x00 , 0x0092 } , /* read the i2c chips ident */
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x60 , 0x010a } , /* matrix */
{ 0xa0 , 0xf0 , 0x010b } ,
{ 0xa0 , 0xf0 , 0x010c } ,
{ 0xa0 , 0xf0 , 0x010d } ,
{ 0xa0 , 0x60 , 0x010e } ,
{ 0xa0 , 0xf0 , 0x010f } ,
{ 0xa0 , 0xf0 , 0x0110 } ,
{ 0xa0 , 0xf0 , 0x0111 } ,
{ 0xa0 , 0x60 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x25 , 0x0007 } ,
{ 0xaa , 0x26 , 0x0053 } ,
{ 0xaa , 0x27 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0190 } , /* 2f */
{ 0xa0 , 0x04 , 0x0191 } , /* 9b */
{ 0xa0 , 0x60 , 0x0192 } , /* 80 */
{ 0xa0 , 0x01 , 0x0195 } ,
{ 0xa0 , 0xd4 , 0x0196 } ,
{ 0xa0 , 0xc0 , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x13 , 0x01aa } ,
{ 0xa1 , 0x01 , 0x001d } ,
{ 0xa1 , 0x01 , 0x001e } ,
{ 0xa1 , 0x01 , 0x001f } ,
{ 0xa1 , 0x01 , 0x0020 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105axx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0c , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0xa1 , 0x008b } ,
{ 0xa0 , 0x00 , 0x0097 } ,
{ 0xa0 , 0x01 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x0099 } ,
{ 0xa0 , 0x01 , 0x009a } ,
{ 0xa0 , 0x01 , 0x011a } ,
{ 0xa0 , 0x01 , 0x011c } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xaa , 0x01 , 0x0010 } ,
{ 0xaa , 0x03 , 0x0000 } ,
{ 0xaa , 0x04 , 0x0001 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0001 } ,
{ 0xaa , 0x04 , 0x0011 } ,
{ 0xaa , 0x05 , 0x00a0 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0002 } ,
{ 0xaa , 0x04 , 0x0013 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0003 } ,
{ 0xaa , 0x04 , 0x0015 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0004 } ,
{ 0xaa , 0x04 , 0x0017 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x000d } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0005 } ,
{ 0xaa , 0x04 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0006 } ,
{ 0xaa , 0x04 , 0x0017 } ,
{ 0xaa , 0x05 , 0x0026 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0007 } ,
{ 0xaa , 0x04 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0022 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0008 } ,
{ 0xaa , 0x04 , 0x0021 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0009 } ,
{ 0xaa , 0x04 , 0x0023 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x000d } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000a } ,
{ 0xaa , 0x04 , 0x0025 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000b } ,
{ 0xaa , 0x04 , 0x00ec } ,
{ 0xaa , 0x05 , 0x002e } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000c } ,
{ 0xaa , 0x04 , 0x00fa } ,
{ 0xaa , 0x05 , 0x002a } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x07 , 0x000d } ,
{ 0xaa , 0x01 , 0x0005 } ,
{ 0xaa , 0x94 , 0x0002 } ,
{ 0xaa , 0x90 , 0x0000 } ,
{ 0xaa , 0x91 , 0x001f } ,
{ 0xaa , 0x10 , 0x0064 } ,
{ 0xaa , 0x9b , 0x00f0 } ,
{ 0xaa , 0x9c , 0x0002 } ,
{ 0xaa , 0x14 , 0x001a } ,
{ 0xaa , 0x20 , 0x0080 } ,
{ 0xaa , 0x22 , 0x0080 } ,
{ 0xaa , 0x24 , 0x0080 } ,
{ 0xaa , 0x26 , 0x0080 } ,
{ 0xaa , 0x00 , 0x0084 } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xaa , 0xa8 , 0x00c0 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x52 , 0x010a } , /* matrix */
{ 0xa0 , 0xf7 , 0x010b } ,
{ 0xa0 , 0xf7 , 0x010c } ,
{ 0xa0 , 0xf7 , 0x010d } ,
{ 0xa0 , 0x52 , 0x010e } ,
{ 0xa0 , 0xf7 , 0x010f } ,
{ 0xa0 , 0xf7 , 0x0110 } ,
{ 0xa0 , 0xf7 , 0x0111 } ,
{ 0xa0 , 0x52 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x0d , 0x0003 } ,
{ 0xaa , 0x0c , 0x008c } ,
{ 0xaa , 0x0e , 0x0095 } ,
{ 0xaa , 0x0f , 0x0002 } ,
{ 0xaa , 0x1c , 0x0094 } ,
{ 0xaa , 0x1d , 0x0002 } ,
{ 0xaa , 0x20 , 0x0080 } ,
{ 0xaa , 0x22 , 0x0080 } ,
{ 0xaa , 0x24 , 0x0080 } ,
{ 0xaa , 0x26 , 0x0080 } ,
{ 0xaa , 0x00 , 0x0084 } ,
{ 0xa0 , 0x02 , 0x00a3 } ,
{ 0xa0 , 0x94 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x04 , 0x0191 } ,
{ 0xa0 , 0x20 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x84 , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x12 , 0x01aa } ,
{ 0xa0 , 0xe3 , 0x001d } ,
{ 0xa0 , 0xec , 0x001e } ,
{ 0xa0 , 0xf5 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0xc0 , 0x01a8 } ,
{ 0xa0 , 0xc0 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105axx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0c , 0x0010 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0xa1 , 0x008b } ,
{ 0xa0 , 0x00 , 0x0097 } ,
{ 0xa0 , 0x02 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x0099 } ,
{ 0xa0 , 0x02 , 0x009a } ,
{ 0xa0 , 0x02 , 0x011a } ,
{ 0xa0 , 0x02 , 0x011c } ,
{ 0xa0 , 0x01 , 0x009b } ,
{ 0xa0 , 0xe6 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x86 , 0x009e } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xaa , 0x01 , 0x0010 } ,
{ 0xaa , 0x03 , 0x0000 } ,
{ 0xaa , 0x04 , 0x0001 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0001 } ,
{ 0xaa , 0x04 , 0x0011 } ,
{ 0xaa , 0x05 , 0x00a0 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0002 } ,
{ 0xaa , 0x04 , 0x0013 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0001 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0003 } ,
{ 0xaa , 0x04 , 0x0015 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0004 } ,
{ 0xaa , 0x04 , 0x0017 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x000d } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0005 } ,
{ 0xa0 , 0x04 , 0x0092 } ,
{ 0xa0 , 0x19 , 0x0093 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xaa , 0x05 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0006 } ,
{ 0xaa , 0x04 , 0x0017 } ,
{ 0xaa , 0x05 , 0x0026 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0007 } ,
{ 0xaa , 0x04 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0022 } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0008 } ,
{ 0xaa , 0x04 , 0x0021 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x0009 } ,
{ 0xaa , 0x04 , 0x0023 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x000d } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000a } ,
{ 0xaa , 0x04 , 0x0025 } ,
{ 0xaa , 0x05 , 0x00aa } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000b } ,
{ 0xaa , 0x04 , 0x00ec } ,
{ 0xaa , 0x05 , 0x002e } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x03 , 0x000c } ,
{ 0xaa , 0x04 , 0x00fa } ,
{ 0xaa , 0x05 , 0x002a } ,
{ 0xaa , 0x06 , 0x0005 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x07 , 0x000d } ,
{ 0xaa , 0x01 , 0x0005 } ,
{ 0xaa , 0x94 , 0x0002 } ,
{ 0xaa , 0x90 , 0x0000 } ,
{ 0xaa , 0x91 , 0x0010 } ,
{ 0xaa , 0x10 , 0x0064 } ,
{ 0xaa , 0x9b , 0x00f0 } ,
{ 0xaa , 0x9c , 0x0002 } ,
{ 0xaa , 0x14 , 0x001a } ,
{ 0xaa , 0x20 , 0x0080 } ,
{ 0xaa , 0x22 , 0x0080 } ,
{ 0xaa , 0x24 , 0x0080 } ,
{ 0xaa , 0x26 , 0x0080 } ,
{ 0xaa , 0x00 , 0x0084 } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xaa , 0xa8 , 0x0080 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x52 , 0x010a } , /* matrix */
{ 0xa0 , 0xf7 , 0x010b } ,
{ 0xa0 , 0xf7 , 0x010c } ,
{ 0xa0 , 0xf7 , 0x010d } ,
{ 0xa0 , 0x52 , 0x010e } ,
{ 0xa0 , 0xf7 , 0x010f } ,
{ 0xa0 , 0xf7 , 0x0110 } ,
{ 0xa0 , 0xf7 , 0x0111 } ,
{ 0xa0 , 0x52 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x0d , 0x0003 } ,
{ 0xaa , 0x0c , 0x0020 } ,
{ 0xaa , 0x0e , 0x000e } ,
{ 0xaa , 0x0f , 0x0002 } ,
{ 0xaa , 0x1c , 0x000d } ,
{ 0xaa , 0x1d , 0x0002 } ,
{ 0xaa , 0x20 , 0x0080 } ,
{ 0xaa , 0x22 , 0x0080 } ,
{ 0xaa , 0x24 , 0x0080 } ,
{ 0xaa , 0x26 , 0x0080 } ,
{ 0xaa , 0x00 , 0x0084 } ,
{ 0xa0 , 0x02 , 0x00a3 } ,
{ 0xa0 , 0x0d , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x04 , 0x0191 } ,
{ 0xa0 , 0x1a , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x4b , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x12 , 0x01aa } ,
{ 0xa0 , 0xc8 , 0x001d } ,
{ 0xa0 , 0xd8 , 0x001e } ,
{ 0xa0 , 0xea , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x00 , 0x01a7 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0116 } ,
{ 0xa0 , 0x40 , 0x0117 } ,
{ 0xa0 , 0x40 , 0x0118 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x0020 } , /* 00,0c,20,aa */
{ 0xaa , 0x0e , 0x000e } , /* 00,0e,0e,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x000d } , /* 00,1c,0d,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x0d , 0x00a4 } , /* 00,a4,0d,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x1a , 0x0192 } , /* 01,92,1a,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x4b , 0x0197 } , /* 01,97,4b,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x12 , 0x01aa } , /* 01,aa,12,cc */
{ 0xa0 , 0xc8 , 0x001d } , /* 00,1d,c8,cc */
{ 0xa0 , 0xd8 , 0x001e } , /* 00,1e,d8,cc */
{ 0xa0 , 0xea , 0x001f } , /* 00,1f,ea,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x008c } , /* 00,0c,8c,aa */
{ 0xaa , 0x0e , 0x0095 } , /* 00,0e,95,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x0094 } , /* 00,1c,94,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x94 , 0x00a4 } , /* 00,a4,94,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x20 , 0x0192 } , /* 01,92,20,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x84 , 0x0197 } , /* 01,97,84,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x12 , 0x01aa } , /* 01,aa,12,cc */
{ 0xa0 , 0xe3 , 0x001d } , /* 00,1d,e3,cc */
{ 0xa0 , 0xec , 0x001e } , /* 00,1e,ec,cc */
{ 0xa0 , 0xf5 , 0x001f } , /* 00,1f,f5,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x00 , 0x01a7 } , /* 01,a7,00,cc */
{ 0xa0 , 0xc0 , 0x01a8 } , /* 01,a8,c0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x0004 } , /* 00,0c,04,aa */
{ 0xaa , 0x0e , 0x000d } , /* 00,0e,0d,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x0008 } , /* 00,1c,08,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x08 , 0x00a4 } , /* 00,a4,08,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x10 , 0x0192 } , /* 01,92,10,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x41 , 0x0197 } , /* 01,97,41,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x12 , 0x01aa } , /* 01,aa,12,cc */
{ 0xa0 , 0xc1 , 0x001d } , /* 00,1d,c1,cc */
{ 0xa0 , 0xd4 , 0x001e } , /* 00,1e,d4,cc */
{ 0xa0 , 0xe8 , 0x001f } , /* 00,1f,e8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x0008 } , /* 00,0c,08,aa */
{ 0xaa , 0x0e , 0x0086 } , /* 00,0e,86,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x0085 } , /* 00,1c,85,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x85 , 0x00a4 } , /* 00,a4,85,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x08 , 0x0192 } , /* 01,92,08,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x81 , 0x0197 } , /* 01,97,81,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x12 , 0x01aa } , /* 01,aa,12,cc */
{ 0xa0 , 0xc2 , 0x001d } , /* 00,1d,c2,cc */
{ 0xa0 , 0xd6 , 0x001e } , /* 00,1e,d6,cc */
{ 0xa0 , 0xea , 0x001f } , /* 00,1f,ea,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x00 , 0x01a7 } , /* 01,a7,00,cc */
{ 0xa0 , 0xc0 , 0x01a8 } , /* 01,a8,c0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x0004 } , /* 00,0c,04,aa */
{ 0xaa , 0x0e , 0x000d } , /* 00,0e,0d,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x0000 } , /* 00,1c,00,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x00 , 0x00a4 } , /* 00,a4,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x20 , 0x0192 } , /* 01,92,20,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0xc1 , 0x001d } , /* 00,1d,c1,cc */
{ 0xa0 , 0xd4 , 0x001e } , /* 00,1e,d4,cc */
{ 0xa0 , 0xe8 , 0x001f } , /* 00,1f,e8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action icm105a_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0x0d , 0x0003 } , /* 00,0d,03,aa */
{ 0xaa , 0x0c , 0x0004 } , /* 00,0c,04,aa */
{ 0xaa , 0x0e , 0x0081 } , /* 00,0e,81,aa */
{ 0xaa , 0x0f , 0x0002 } , /* 00,0f,02,aa */
{ 0xaa , 0x1c , 0x0080 } , /* 00,1c,80,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x20 , 0x0080 } , /* 00,20,80,aa */
{ 0xaa , 0x22 , 0x0080 } , /* 00,22,80,aa */
{ 0xaa , 0x24 , 0x0080 } , /* 00,24,80,aa */
{ 0xaa , 0x26 , 0x0080 } , /* 00,26,80,aa */
{ 0xaa , 0x00 , 0x0084 } , /* 00,00,84,aa */
{ 0xa0 , 0x02 , 0x00a3 } , /* 00,a3,02,cc */
{ 0xa0 , 0x80 , 0x00a4 } , /* 00,a4,80,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x20 , 0x0192 } , /* 01,92,20,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0xc1 , 0x001d } , /* 00,1d,c1,cc */
{ 0xa0 , 0xd4 , 0x001e } , /* 00,1e,d4,cc */
{ 0xa0 , 0xe8 , 0x001f } , /* 00,1f,e8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x00 , 0x01a7 } , /* 01,a7,00,cc */
{ 0xa0 , 0xc0 , 0x01a8 } , /* 01,a8,c0,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x00 , 0x0002 } , /* 00,02,00,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xd8 , 0x0006 } , /* 00,06,d8,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0x01 , 0x009b } , /* 00,9b,01,cc */
{ 0xa0 , 0xde , 0x009c } , /* 00,9c,de,cc */
{ 0xa0 , 0x02 , 0x009d } , /* 00,9d,02,cc */
{ 0xa0 , 0x86 , 0x009e } , /* 00,9e,86,cc */
{ 0xa0 , 0x33 , 0x0086 } , /* 00,86,33,cc */
{ 0xa0 , 0x34 , 0x0087 } , /* 00,87,34,cc */
{ 0xa0 , 0x35 , 0x0088 } , /* 00,88,35,cc */
{ 0xa0 , 0xb0 , 0x008b } , /* 00,8b,b0,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xaa , 0x01 , 0x0001 } , /* 00,01,01,aa */
{ 0xaa , 0x01 , 0x0003 } , /* 00,01,03,aa */
{ 0xaa , 0x01 , 0x0001 } , /* 00,01,01,aa */
{ 0xaa , 0x03 , 0x0000 } , /* 00,03,00,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x11 , 0x0080 } , /* 00,11,80,aa */
{ 0xaa , 0x12 , 0x0000 } , /* 00,12,00,aa */
{ 0xaa , 0x13 , 0x0000 } , /* 00,13,00,aa */
{ 0xaa , 0x14 , 0x0000 } , /* 00,14,00,aa */
{ 0xaa , 0x15 , 0x0000 } , /* 00,15,00,aa */
{ 0xaa , 0x16 , 0x0000 } , /* 00,16,00,aa */
{ 0xaa , 0x17 , 0x0001 } , /* 00,17,01,aa */
{ 0xaa , 0x18 , 0x00de } , /* 00,18,de,aa */
{ 0xaa , 0x19 , 0x0002 } , /* 00,19,02,aa */
{ 0xaa , 0x1a , 0x0086 } , /* 00,1a,86,aa */
{ 0xaa , 0x20 , 0x00a8 } , /* 00,20,a8,aa */
{ 0xaa , 0x22 , 0x0000 } , /* 00,22,00,aa */
{ 0xaa , 0x23 , 0x0000 } , /* 00,23,00,aa */
{ 0xaa , 0x24 , 0x0000 } , /* 00,24,00,aa */
{ 0xaa , 0x40 , 0x0033 } , /* 00,40,33,aa */
{ 0xaa , 0x41 , 0x0077 } , /* 00,41,77,aa */
{ 0xaa , 0x42 , 0x0053 } , /* 00,42,53,aa */
{ 0xaa , 0x43 , 0x00b0 } , /* 00,43,b0,aa */
{ 0xaa , 0x4b , 0x0001 } , /* 00,4b,01,aa */
{ 0xaa , 0x72 , 0x0020 } , /* 00,72,20,aa */
{ 0xaa , 0x73 , 0x0000 } , /* 00,73,00,aa */
{ 0xaa , 0x80 , 0x0000 } , /* 00,80,00,aa */
{ 0xaa , 0x85 , 0x0050 } , /* 00,85,50,aa */
{ 0xaa , 0x91 , 0x0070 } , /* 00,91,70,aa */
{ 0xaa , 0x92 , 0x0072 } , /* 00,92,72,aa */
{ 0xaa , 0x03 , 0x0001 } , /* 00,03,01,aa */
{ 0xaa , 0x10 , 0x00a0 } , /* 00,10,a0,aa */
{ 0xaa , 0x11 , 0x0001 } , /* 00,11,01,aa */
{ 0xaa , 0x30 , 0x0000 } , /* 00,30,00,aa */
{ 0xaa , 0x60 , 0x0000 } , /* 00,60,00,aa */
{ 0xaa , 0xa0 , 0x001a } , /* 00,a0,1a,aa */
{ 0xaa , 0xa1 , 0x0000 } , /* 00,a1,00,aa */
{ 0xaa , 0xa2 , 0x003f } , /* 00,a2,3f,aa */
{ 0xaa , 0xa3 , 0x0028 } , /* 00,a3,28,aa */
{ 0xaa , 0xa4 , 0x0010 } , /* 00,a4,10,aa */
{ 0xaa , 0xa5 , 0x0020 } , /* 00,a5,20,aa */
{ 0xaa , 0xb1 , 0x0044 } , /* 00,b1,44,aa */
{ 0xaa , 0xd0 , 0x0001 } , /* 00,d0,01,aa */
{ 0xaa , 0xd1 , 0x0085 } , /* 00,d1,85,aa */
{ 0xaa , 0xd2 , 0x0080 } , /* 00,d2,80,aa */
{ 0xaa , 0xd3 , 0x0080 } , /* 00,d3,80,aa */
{ 0xaa , 0xd4 , 0x0080 } , /* 00,d4,80,aa */
{ 0xaa , 0xd5 , 0x0080 } , /* 00,d5,80,aa */
{ 0xaa , 0xc0 , 0x00c3 } , /* 00,c0,c3,aa */
{ 0xaa , 0xc2 , 0x0044 } , /* 00,c2,44,aa */
{ 0xaa , 0xc4 , 0x0040 } , /* 00,c4,40,aa */
{ 0xaa , 0xc5 , 0x0020 } , /* 00,c5,20,aa */
{ 0xaa , 0xc6 , 0x0008 } , /* 00,c6,08,aa */
{ 0xaa , 0x03 , 0x0004 } , /* 00,03,04,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x40 , 0x0030 } , /* 00,40,30,aa */
{ 0xaa , 0x41 , 0x0020 } , /* 00,41,20,aa */
{ 0xaa , 0x42 , 0x002d } , /* 00,42,2d,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x1c , 0x0050 } , /* 00,1C,50,aa */
{ 0xaa , 0x11 , 0x0081 } , /* 00,11,81,aa */
{ 0xaa , 0x3b , 0x001d } , /* 00,3b,1D,aa */
{ 0xaa , 0x3c , 0x004c } , /* 00,3c,4C,aa */
{ 0xaa , 0x3d , 0x0018 } , /* 00,3d,18,aa */
{ 0xaa , 0x3e , 0x006a } , /* 00,3e,6A,aa */
{ 0xaa , 0x01 , 0x0000 } , /* 00,01,00,aa */
{ 0xaa , 0x52 , 0x00ff } , /* 00,52,FF,aa */
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x37 , 0x0101 } , /* 01,01,37,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x02 , 0x0180 } , /* 01,80,02,cc */
{ 0xaa , 0x03 , 0x0002 } , /* 00,03,02,aa */
{ 0xaa , 0x51 , 0x0027 } , /* 00,51,27,aa */
{ 0xaa , 0x52 , 0x0020 } , /* 00,52,20,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x50 , 0x0010 } , /* 00,50,10,aa */
{ 0xaa , 0x51 , 0x0010 } , /* 00,51,10,aa */
{ 0xaa , 0x54 , 0x0010 } , /* 00,54,10,aa */
{ 0xaa , 0x55 , 0x0010 } , /* 00,55,10,aa */
{ 0xa0 , 0xf0 , 0x0199 } , /* 01,99,F0,cc */
{ 0xa0 , 0x80 , 0x019a } , /* 01,9A,80,cc */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x001d } , /* 00,36,1D,aa */
{ 0xaa , 0x37 , 0x004c } , /* 00,37,4C,aa */
{ 0xaa , 0x3b , 0x001d } , /* 00,3B,1D,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_Initial [ ] = { /* 320x240 */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x10 , 0x0002 } , /* 00,02,10,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xd0 , 0x0006 } , /* 00,06,d0,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0x01 , 0x009b } , /* 00,9b,01,cc */
{ 0xa0 , 0xd8 , 0x009c } , /* 00,9c,d8,cc */
{ 0xa0 , 0x02 , 0x009d } , /* 00,9d,02,cc */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,88,cc */
{ 0xa0 , 0x33 , 0x0086 } , /* 00,86,33,cc */
{ 0xa0 , 0x34 , 0x0087 } , /* 00,87,34,cc */
{ 0xa0 , 0x35 , 0x0088 } , /* 00,88,35,cc */
{ 0xa0 , 0xb0 , 0x008b } , /* 00,8b,b0,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xaa , 0x01 , 0x0001 } , /* 00,01,01,aa */
{ 0xaa , 0x01 , 0x0003 } , /* 00,01,03,aa */
{ 0xaa , 0x01 , 0x0001 } , /* 00,01,01,aa */
{ 0xaa , 0x03 , 0x0000 } , /* 00,03,00,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x11 , 0x0080 } , /* 00,11,80,aa */
{ 0xaa , 0x12 , 0x0000 } , /* 00,12,00,aa */
{ 0xaa , 0x13 , 0x0000 } , /* 00,13,00,aa */
{ 0xaa , 0x14 , 0x0000 } , /* 00,14,00,aa */
{ 0xaa , 0x15 , 0x0000 } , /* 00,15,00,aa */
{ 0xaa , 0x16 , 0x0000 } , /* 00,16,00,aa */
{ 0xaa , 0x17 , 0x0001 } , /* 00,17,01,aa */
{ 0xaa , 0x18 , 0x00d8 } , /* 00,18,d8,aa */
{ 0xaa , 0x19 , 0x0002 } , /* 00,19,02,aa */
{ 0xaa , 0x1a , 0x0088 } , /* 00,1a,88,aa */
{ 0xaa , 0x20 , 0x00a8 } , /* 00,20,a8,aa */
{ 0xaa , 0x22 , 0x0000 } , /* 00,22,00,aa */
{ 0xaa , 0x23 , 0x0000 } , /* 00,23,00,aa */
{ 0xaa , 0x24 , 0x0000 } , /* 00,24,00,aa */
{ 0xaa , 0x40 , 0x0033 } , /* 00,40,33,aa */
{ 0xaa , 0x41 , 0x0077 } , /* 00,41,77,aa */
{ 0xaa , 0x42 , 0x0053 } , /* 00,42,53,aa */
{ 0xaa , 0x43 , 0x00b0 } , /* 00,43,b0,aa */
{ 0xaa , 0x4b , 0x0001 } , /* 00,4b,01,aa */
{ 0xaa , 0x72 , 0x0020 } , /* 00,72,20,aa */
{ 0xaa , 0x73 , 0x0000 } , /* 00,73,00,aa */
{ 0xaa , 0x80 , 0x0000 } , /* 00,80,00,aa */
{ 0xaa , 0x85 , 0x0050 } , /* 00,85,50,aa */
{ 0xaa , 0x91 , 0x0070 } , /* 00,91,70,aa */
{ 0xaa , 0x92 , 0x0072 } , /* 00,92,72,aa */
{ 0xaa , 0x03 , 0x0001 } , /* 00,03,01,aa */
{ 0xaa , 0x10 , 0x00a0 } , /* 00,10,a0,aa */
{ 0xaa , 0x11 , 0x0001 } , /* 00,11,01,aa */
{ 0xaa , 0x30 , 0x0000 } , /* 00,30,00,aa */
{ 0xaa , 0x60 , 0x0000 } , /* 00,60,00,aa */
{ 0xaa , 0xa0 , 0x001a } , /* 00,a0,1a,aa */
{ 0xaa , 0xa1 , 0x0000 } , /* 00,a1,00,aa */
{ 0xaa , 0xa2 , 0x003f } , /* 00,a2,3f,aa */
{ 0xaa , 0xa3 , 0x0028 } , /* 00,a3,28,aa */
{ 0xaa , 0xa4 , 0x0010 } , /* 00,a4,10,aa */
{ 0xaa , 0xa5 , 0x0020 } , /* 00,a5,20,aa */
{ 0xaa , 0xb1 , 0x0044 } , /* 00,b1,44,aa */
{ 0xaa , 0xd0 , 0x0001 } , /* 00,d0,01,aa */
{ 0xaa , 0xd1 , 0x0085 } , /* 00,d1,85,aa */
{ 0xaa , 0xd2 , 0x0080 } , /* 00,d2,80,aa */
{ 0xaa , 0xd3 , 0x0080 } , /* 00,d3,80,aa */
{ 0xaa , 0xd4 , 0x0080 } , /* 00,d4,80,aa */
{ 0xaa , 0xd5 , 0x0080 } , /* 00,d5,80,aa */
{ 0xaa , 0xc0 , 0x00c3 } , /* 00,c0,c3,aa */
{ 0xaa , 0xc2 , 0x0044 } , /* 00,c2,44,aa */
{ 0xaa , 0xc4 , 0x0040 } , /* 00,c4,40,aa */
{ 0xaa , 0xc5 , 0x0020 } , /* 00,c5,20,aa */
{ 0xaa , 0xc6 , 0x0008 } , /* 00,c6,08,aa */
{ 0xaa , 0x03 , 0x0004 } , /* 00,03,04,aa */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa */
{ 0xaa , 0x40 , 0x0030 } , /* 00,40,30,aa */
{ 0xaa , 0x41 , 0x0020 } , /* 00,41,20,aa */
{ 0xaa , 0x42 , 0x002d } , /* 00,42,2d,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x1c , 0x0050 } , /* 00,1c,50,aa */
{ 0xaa , 0x11 , 0x0081 } , /* 00,11,81,aa */
{ 0xaa , 0x3b , 0x003a } , /* 00,3b,3A,aa */
{ 0xaa , 0x3c , 0x0098 } , /* 00,3c,98,aa */
{ 0xaa , 0x3d , 0x0030 } , /* 00,3d,30,aa */
{ 0xaa , 0x3e , 0x00d4 } , /* 00,3E,D4,aa */
{ 0xaa , 0x01 , 0x0000 } , /* 00,01,00,aa */
{ 0xaa , 0x52 , 0x00ff } , /* 00,52,FF,aa */
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x37 , 0x0101 } , /* 01,01,37,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x02 , 0x0180 } , /* 01,80,02,cc */
{ 0xaa , 0x03 , 0x0002 } , /* 00,03,02,aa */
{ 0xaa , 0x51 , 0x004e } , /* 00,51,4E,aa */
{ 0xaa , 0x52 , 0x0041 } , /* 00,52,41,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x50 , 0x0010 } , /* 00,50,10,aa */
{ 0xaa , 0x51 , 0x0010 } , /* 00,51,10,aa */
{ 0xaa , 0x54 , 0x0010 } , /* 00,54,10,aa */
{ 0xaa , 0x55 , 0x0010 } , /* 00,55,10,aa */
{ 0xa0 , 0xf0 , 0x0199 } , /* 01,99,F0,cc */
{ 0xa0 , 0x80 , 0x019a } , /* 01,9A,80,cc */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x001d } , /* 00,36,1D,aa */
{ 0xaa , 0x37 , 0x004c } , /* 00,37,4C,aa */
{ 0xaa , 0x3b , 0x001d } , /* 00,3B,1D,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x001d } , /* 00,36,1D,aa */
{ 0xaa , 0x37 , 0x004c } , /* 00,37,4C,aa */
{ 0xaa , 0x3b , 0x001d } , /* 00,3B,1D,aa */
{ 0xaa , 0x3c , 0x004c } , /* 00,3C,4C,aa */
{ 0xaa , 0x3d , 0x001d } , /* 00,3D,1D,aa */
{ 0xaa , 0x3e , 0x004c } , /* 00,3E,4C,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x003a } , /* 00,36,3A,aa */
{ 0xaa , 0x37 , 0x0098 } , /* 00,37,98,aa */
{ 0xaa , 0x3b , 0x003a } , /* 00,3B,3A,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x003a } , /* 00,36,3A,aa */
{ 0xaa , 0x37 , 0x0098 } , /* 00,37,98,aa */
{ 0xaa , 0x3b , 0x003a } , /* 00,3B,3A,aa */
{ 0xaa , 0x3c , 0x0098 } , /* 00,3C,98,aa */
{ 0xaa , 0x3d , 0x003a } , /* 00,3D,3A,aa */
{ 0xaa , 0x3e , 0x0098 } , /* 00,3E,98,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0018 } , /* 00,36,18,aa */
{ 0xaa , 0x37 , 0x006a } , /* 00,37,6A,aa */
{ 0xaa , 0x3d , 0x0018 } , /* 00,3D,18,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0018 } , /* 00,36,18,aa */
{ 0xaa , 0x37 , 0x006a } , /* 00,37,6A,aa */
{ 0xaa , 0x3d , 0x0018 } , /* 00,3D,18,aa */
{ 0xaa , 0x3e , 0x006a } , /* 00,3E,6A,aa */
{ 0xaa , 0x3b , 0x0018 } , /* 00,3B,18,aa */
{ 0xaa , 0x3c , 0x006a } , /* 00,3C,6A,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0030 } , /* 00,36,30,aa */
{ 0xaa , 0x37 , 0x00d4 } , /* 00,37,D4,aa */
{ 0xaa , 0x3d , 0x0030 } , /* 00,3D,30,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0030 } , /* 00,36,30,aa */
{ 0xaa , 0x37 , 0x00d4 } , /* 00,37,D4,aa */
{ 0xaa , 0x3d , 0x0030 } , /* 00,3D,30,aa */
{ 0xaa , 0x3e , 0x00d4 } , /* 00,3E,D4,aa */
{ 0xaa , 0x3b , 0x0030 } , /* 00,3B,30,aa */
{ 0xaa , 0x3c , 0x00d4 } , /* 00,3C,D4,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0018 } , /* 00,36,18,aa */
{ 0xaa , 0x37 , 0x006a } , /* 00,37,6A,aa */
{ 0xaa , 0x3d , 0x0018 } , /* 00,3D,18,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0018 } , /* 00,36,18,aa */
{ 0xaa , 0x37 , 0x006a } , /* 00,37,6A,aa */
{ 0xaa , 0x3d , 0x0018 } , /* 00,3D,18,aa */
{ 0xaa , 0x3e , 0x006a } , /* 00,3E,6A,aa */
{ 0xaa , 0x3b , 0x0018 } , /* 00,3B,18,aa */
{ 0xaa , 0x3c , 0x006a } , /* 00,3C,6A,aa */
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0030 } , /* 00,36,30,aa */
{ 0xaa , 0x37 , 0x00d4 } , /* 00,37,D4,aa */
{ 0xaa , 0x3d , 0x0030 } , /* 00,3D,30,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action MC501CB_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x03 , 0x0003 } , /* 00,03,03,aa */
{ 0xaa , 0x10 , 0x00fc } , /* 00,10,fc,aa */
{ 0xaa , 0x36 , 0x0030 } , /* 00,36,30,aa */
{ 0xaa , 0x37 , 0x00d4 } , /* 00,37,D4,aa */
{ 0xaa , 0x3d , 0x0030 } , /* 00,3D,30,aa */
{ 0xaa , 0x3e , 0x00d4 } , /* 00,3E,D4,aa */
{ 0xaa , 0x3b , 0x0030 } , /* 00,3B,30,aa */
{ 0xaa , 0x3c , 0x00d4 } , /* 00,3C,D4,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from zs211.inf - HKR,%OV7620%,Initial - 640x480 */
2008-07-04 11:16:16 -03:00
static const struct usb_action OV7620_mode0 [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x40 , 0x0002 } , /* 00,02,40,cc */
{ 0xa0 , 0x00 , 0x0008 } , /* 00,08,00,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x06 , 0x0010 } , /* 00,10,06,cc */
{ 0xa0 , 0x02 , 0x0083 } , /* 00,83,02,cc */
{ 0xa0 , 0x01 , 0x0085 } , /* 00,85,01,cc */
{ 0xa0 , 0x80 , 0x0086 } , /* 00,86,80,cc */
{ 0xa0 , 0x81 , 0x0087 } , /* 00,87,81,cc */
{ 0xa0 , 0x10 , 0x0088 } , /* 00,88,10,cc */
{ 0xa0 , 0xa1 , 0x008b } , /* 00,8b,a1,cc */
{ 0xa0 , 0x08 , 0x008d } , /* 00,8d,08,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xd8 , 0x0006 } , /* 00,06,d8,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xde , 0x009c } , /* 00,9c,de,cc */
{ 0xa0 , 0x86 , 0x009e } , /* 00,9e,86,cc */
{ 0xaa , 0x12 , 0x0088 } , /* 00,12,88,aa */
{ 0xaa , 0x12 , 0x0048 } , /* 00,12,48,aa */
{ 0xaa , 0x75 , 0x008a } , /* 00,75,8a,aa */
{ 0xaa , 0x13 , 0x00a3 } , /* 00,13,a3,aa */
{ 0xaa , 0x04 , 0x0000 } , /* 00,04,00,aa */
{ 0xaa , 0x05 , 0x0000 } , /* 00,05,00,aa */
{ 0xaa , 0x14 , 0x0000 } , /* 00,14,00,aa */
{ 0xaa , 0x15 , 0x0004 } , /* 00,15,04,aa */
{ 0xaa , 0x17 , 0x0018 } , /* 00,17,18,aa */
{ 0xaa , 0x18 , 0x00ba } , /* 00,18,ba,aa */
{ 0xaa , 0x19 , 0x0002 } , /* 00,19,02,aa */
{ 0xaa , 0x1a , 0x00f1 } , /* 00,1a,f1,aa */
{ 0xaa , 0x20 , 0x0040 } , /* 00,20,40,aa */
{ 0xaa , 0x24 , 0x0088 } , /* 00,24,88,aa */
{ 0xaa , 0x25 , 0x0078 } , /* 00,25,78,aa */
{ 0xaa , 0x27 , 0x00f6 } , /* 00,27,f6,aa */
{ 0xaa , 0x28 , 0x00a0 } , /* 00,28,a0,aa */
{ 0xaa , 0x21 , 0x0000 } , /* 00,21,00,aa */
{ 0xaa , 0x2a , 0x0083 } , /* 00,2a,83,aa */
{ 0xaa , 0x2b , 0x0096 } , /* 00,2b,96,aa */
{ 0xaa , 0x2d , 0x0005 } , /* 00,2d,05,aa */
{ 0xaa , 0x74 , 0x0020 } , /* 00,74,20,aa */
{ 0xaa , 0x61 , 0x0068 } , /* 00,61,68,aa */
{ 0xaa , 0x64 , 0x0088 } , /* 00,64,88,aa */
{ 0xaa , 0x00 , 0x0000 } , /* 00,00,00,aa */
{ 0xaa , 0x06 , 0x0080 } , /* 00,06,80,aa */
{ 0xaa , 0x01 , 0x0090 } , /* 00,01,90,aa */
{ 0xaa , 0x02 , 0x0030 } , /* 00,02,30,aa */
{ 0xa0 , 0x77 , 0x0101 } , /* 01,01,77,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x00 , 0x01ad } , /* 01,ad,00,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x68 , 0x0116 } , /* 01,16,68,cc */
{ 0xa0 , 0x52 , 0x0118 } , /* 01,18,52,cc */
{ 0xa0 , 0x40 , 0x011d } , /* 01,1d,40,cc */
{ 0xa0 , 0x02 , 0x0180 } , /* 01,80,02,cc */
{ 0xa0 , 0x50 , 0x01a8 } , /* 01,a8,50,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from zs211.inf - HKR,%OV7620%,InitialScale - 320x240 */
2008-07-04 11:16:16 -03:00
static const struct usb_action OV7620_mode1 [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x50 , 0x0002 } , /* 00,02,50,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,00,cc */ /* mx change? */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x06 , 0x0010 } , /* 00,10,06,cc */
{ 0xa0 , 0x02 , 0x0083 } , /* 00,83,02,cc */
{ 0xa0 , 0x01 , 0x0085 } , /* 00,85,01,cc */
{ 0xa0 , 0x80 , 0x0086 } , /* 00,86,80,cc */
{ 0xa0 , 0x81 , 0x0087 } , /* 00,87,81,cc */
{ 0xa0 , 0x10 , 0x0088 } , /* 00,88,10,cc */
{ 0xa0 , 0xa1 , 0x008b } , /* 00,8b,a1,cc */
{ 0xa0 , 0x08 , 0x008d } , /* 00,8d,08,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xd0 , 0x0006 } , /* 00,06,d0,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xd6 , 0x009c } , /* 00,9c,d6,cc */ /* OV7648 00,9c,d8,cc */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,88,cc */
{ 0xaa , 0x12 , 0x0088 } , /* 00,12,88,aa */
{ 0xaa , 0x12 , 0x0048 } , /* 00,12,48,aa */
{ 0xaa , 0x75 , 0x008a } , /* 00,75,8a,aa */
{ 0xaa , 0x13 , 0x00a3 } , /* 00,13,a3,aa */
{ 0xaa , 0x04 , 0x0000 } , /* 00,04,00,aa */
{ 0xaa , 0x05 , 0x0000 } , /* 00,05,00,aa */
{ 0xaa , 0x14 , 0x0000 } , /* 00,14,00,aa */
{ 0xaa , 0x15 , 0x0004 } , /* 00,15,04,aa */
{ 0xaa , 0x24 , 0x0088 } , /* 00,24,88,aa */
{ 0xaa , 0x25 , 0x0078 } , /* 00,25,78,aa */
{ 0xaa , 0x17 , 0x0018 } , /* 00,17,18,aa */
{ 0xaa , 0x18 , 0x00ba } , /* 00,18,ba,aa */
{ 0xaa , 0x19 , 0x0002 } , /* 00,19,02,aa */
{ 0xaa , 0x1a , 0x00f2 } , /* 00,1a,f2,aa */
{ 0xaa , 0x20 , 0x0040 } , /* 00,20,40,aa */
{ 0xaa , 0x27 , 0x00f6 } , /* 00,27,f6,aa */
{ 0xaa , 0x28 , 0x00a0 } , /* 00,28,a0,aa */
{ 0xaa , 0x21 , 0x0000 } , /* 00,21,00,aa */
{ 0xaa , 0x2a , 0x0083 } , /* 00,2a,83,aa */
{ 0xaa , 0x2b , 0x0096 } , /* 00,2b,96,aa */
{ 0xaa , 0x2d , 0x0005 } , /* 00,2d,05,aa */
{ 0xaa , 0x74 , 0x0020 } , /* 00,74,20,aa */
{ 0xaa , 0x61 , 0x0068 } , /* 00,61,68,aa */
{ 0xaa , 0x64 , 0x0088 } , /* 00,64,88,aa */
{ 0xaa , 0x00 , 0x0000 } , /* 00,00,00,aa */
{ 0xaa , 0x06 , 0x0080 } , /* 00,06,80,aa */
{ 0xaa , 0x01 , 0x0090 } , /* 00,01,90,aa */
{ 0xaa , 0x02 , 0x0030 } , /* 00,02,30,aa */
{ 0xa0 , 0x77 , 0x0101 } , /* 01,01,77,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x00 , 0x01ad } , /* 01,ad,00,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x68 , 0x0116 } , /* 01,16,68,cc */
{ 0xa0 , 0x52 , 0x0118 } , /* 01,18,52,cc */
{ 0xa0 , 0x50 , 0x011d } , /* 01,1d,50,cc */
{ 0xa0 , 0x02 , 0x0180 } , /* 01,80,02,cc */
{ 0xa0 , 0x50 , 0x01a8 } , /* 01,a8,50,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from zs211.inf - HKR,%OV7620%\AE,50HZ */
2008-07-04 11:16:16 -03:00
static const struct usb_action OV7620_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x13 , 0x00a3 } , /* 00,13,a3,aa */
{ 0xdd , 0x00 , 0x0100 } , /* 00,01,00,dd */
{ 0xaa , 0x2b , 0x0096 } , /* 00,2b,96,aa */
{ 0xaa , 0x75 , 0x008a } , /* 00,75,8a,aa */
{ 0xaa , 0x2d , 0x0005 } , /* 00,2d,05,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x18 , 0x0192 } , /* 01,92,18,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x83 , 0x0197 } , /* 01,97,83,cc */
{ 0xaa , 0x10 , 0x0082 } , /* 00,10,82,aa */
{ 0xaa , 0x76 , 0x0003 } , /* 00,76,03,aa */
/* {0xa0, 0x40, 0x0002}, * 00,02,40,cc - if mode0 (640x480) */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from zs211.inf - HKR,%OV7620%\AE,60HZ */
2008-07-04 11:16:16 -03:00
static const struct usb_action OV7620_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x13 , 0x00a3 } , /* 00,13,a3,aa */ /* (bug in zs211.inf) */
{ 0xdd , 0x00 , 0x0100 } , /* 00,01,00,dd */
{ 0xaa , 0x2b , 0x0000 } , /* 00,2b,00,aa */
{ 0xaa , 0x75 , 0x008a } , /* 00,75,8a,aa */
{ 0xaa , 0x2d , 0x0005 } , /* 00,2d,05,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x18 , 0x0192 } , /* 01,92,18,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x83 , 0x0197 } , /* 01,97,83,cc */
{ 0xaa , 0x10 , 0x0020 } , /* 00,10,20,aa */
{ 0xaa , 0x76 , 0x0003 } , /* 00,76,03,aa */
/* {0xa0, 0x40, 0x0002}, * 00,02,40,cc - if mode0 (640x480) */
/* ?? in gspca v1, it was
{ 0xa0 , 0x00 , 0x0039 } , * 00 , 00 , 00 , dd *
{ 0xa1 , 0x01 , 0x0037 } , */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from zs211.inf - HKR,%OV7620%\AE,NoFliker */
2008-07-04 11:16:16 -03:00
static const struct usb_action OV7620_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x13 , 0x00a3 } , /* 00,13,a3,aa */ /* (bug in zs211.inf) */
{ 0xdd , 0x00 , 0x0100 } , /* 00,01,00,dd */
{ 0xaa , 0x2b , 0x0000 } , /* 00,2b,00,aa */
{ 0xaa , 0x75 , 0x008e } , /* 00,75,8e,aa */
{ 0xaa , 0x2d , 0x0001 } , /* 00,2d,01,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x04 , 0x0191 } , /* 01,91,04,cc */
{ 0xa0 , 0x18 , 0x0192 } , /* 01,92,18,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x01 , 0x0197 } , /* 01,97,01,cc */
/* {0xa0, 0x44, 0x0002}, * 00,02,44,cc - if mode1 (320x240) */
/* ?? was
{ 0xa0 , 0x00 , 0x0039 } , * 00 , 00 , 00 , dd *
{ 0xa1 , 0x01 , 0x0037 } , */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action ov7630c_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x06 , 0x0010 } ,
{ 0xa0 , 0xa1 , 0x008b } ,
{ 0xa0 , 0x08 , 0x008d } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xaa , 0x12 , 0x0080 } ,
{ 0xa0 , 0x02 , 0x0083 } ,
{ 0xa0 , 0x01 , 0x0085 } ,
{ 0xa0 , 0x90 , 0x0086 } ,
{ 0xa0 , 0x91 , 0x0087 } ,
{ 0xa0 , 0x10 , 0x0088 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xd8 , 0x009c } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xaa , 0x12 , 0x0069 } ,
{ 0xaa , 0x04 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0050 } ,
{ 0xaa , 0x13 , 0x0083 } ,
{ 0xaa , 0x14 , 0x0000 } ,
{ 0xaa , 0x15 , 0x0024 } ,
{ 0xaa , 0x17 , 0x0018 } ,
{ 0xaa , 0x18 , 0x00ba } ,
{ 0xaa , 0x19 , 0x0002 } ,
{ 0xaa , 0x1a , 0x00f6 } ,
{ 0xaa , 0x1b , 0x0002 } ,
{ 0xaa , 0x20 , 0x00c2 } ,
{ 0xaa , 0x24 , 0x0060 } ,
{ 0xaa , 0x25 , 0x0040 } ,
{ 0xaa , 0x26 , 0x0030 } ,
{ 0xaa , 0x27 , 0x00ea } ,
{ 0xaa , 0x28 , 0x00a0 } ,
{ 0xaa , 0x21 , 0x0000 } ,
{ 0xaa , 0x2a , 0x0081 } ,
{ 0xaa , 0x2b , 0x0096 } ,
{ 0xaa , 0x2d , 0x0094 } ,
{ 0xaa , 0x2f , 0x003d } ,
{ 0xaa , 0x30 , 0x0024 } ,
{ 0xaa , 0x60 , 0x0000 } ,
{ 0xaa , 0x61 , 0x0040 } ,
{ 0xaa , 0x68 , 0x007c } ,
{ 0xaa , 0x6f , 0x0015 } ,
{ 0xaa , 0x75 , 0x0088 } ,
{ 0xaa , 0x77 , 0x00b5 } ,
{ 0xaa , 0x01 , 0x0060 } ,
{ 0xaa , 0x02 , 0x0060 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x46 , 0x0118 } ,
{ 0xa0 , 0x04 , 0x0113 } ,
/* 0x10, */
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
/* 0x03, */
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0120 } , /* gamma 2 ?*/
{ 0xa0 , 0x0c , 0x0121 } ,
{ 0xa0 , 0x1f , 0x0122 } ,
{ 0xa0 , 0x3a , 0x0123 } ,
{ 0xa0 , 0x53 , 0x0124 } ,
{ 0xa0 , 0x6d , 0x0125 } ,
{ 0xa0 , 0x85 , 0x0126 } ,
{ 0xa0 , 0x9c , 0x0127 } ,
{ 0xa0 , 0xb0 , 0x0128 } ,
{ 0xa0 , 0xc2 , 0x0129 } ,
{ 0xa0 , 0xd1 , 0x012a } ,
{ 0xa0 , 0xde , 0x012b } ,
{ 0xa0 , 0xe9 , 0x012c } ,
{ 0xa0 , 0xf2 , 0x012d } ,
{ 0xa0 , 0xf9 , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x05 , 0x0130 } ,
{ 0xa0 , 0x0f , 0x0131 } ,
{ 0xa0 , 0x16 , 0x0132 } ,
{ 0xa0 , 0x1a , 0x0133 } ,
{ 0xa0 , 0x19 , 0x0134 } ,
{ 0xa0 , 0x19 , 0x0135 } ,
{ 0xa0 , 0x17 , 0x0136 } ,
{ 0xa0 , 0x15 , 0x0137 } ,
{ 0xa0 , 0x12 , 0x0138 } ,
{ 0xa0 , 0x10 , 0x0139 } ,
{ 0xa0 , 0x0e , 0x013a } ,
{ 0xa0 , 0x0b , 0x013b } ,
{ 0xa0 , 0x09 , 0x013c } ,
{ 0xa0 , 0x08 , 0x013d } ,
{ 0xa0 , 0x06 , 0x013e } ,
{ 0xa0 , 0x03 , 0x013f } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xaa , 0x10 , 0x001b } ,
{ 0xaa , 0x76 , 0x0002 } ,
{ 0xaa , 0x2a , 0x0081 } ,
{ 0xaa , 0x2b , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x01 , 0x0191 } ,
{ 0xa0 , 0xb8 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x37 , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x26 , 0x01aa } ,
{ 0xa0 , 0x50 , 0x011d } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xaa , 0x13 , 0x0083 } , /* 40 */
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action ov7630c_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x06 , 0x0010 } ,
{ 0xa0 , 0xa1 , 0x008b } ,
{ 0xa0 , 0x08 , 0x008d } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xaa , 0x12 , 0x0080 } ,
{ 0xa0 , 0x02 , 0x0083 } ,
{ 0xa0 , 0x01 , 0x0085 } ,
{ 0xa0 , 0x90 , 0x0086 } ,
{ 0xa0 , 0x91 , 0x0087 } ,
{ 0xa0 , 0x10 , 0x0088 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xe6 , 0x009c } ,
{ 0xa0 , 0x86 , 0x009e } ,
{ 0xaa , 0x12 , 0x0069 } , /* i2c */
{ 0xaa , 0x04 , 0x0020 } ,
{ 0xaa , 0x06 , 0x0050 } ,
{ 0xaa , 0x13 , 0x00c3 } ,
{ 0xaa , 0x14 , 0x0000 } ,
{ 0xaa , 0x15 , 0x0024 } ,
{ 0xaa , 0x19 , 0x0003 } ,
{ 0xaa , 0x1a , 0x00f6 } ,
{ 0xaa , 0x1b , 0x0002 } ,
{ 0xaa , 0x20 , 0x00c2 } ,
{ 0xaa , 0x24 , 0x0060 } ,
{ 0xaa , 0x25 , 0x0040 } ,
{ 0xaa , 0x26 , 0x0030 } ,
{ 0xaa , 0x27 , 0x00ea } ,
{ 0xaa , 0x28 , 0x00a0 } ,
{ 0xaa , 0x21 , 0x0000 } ,
{ 0xaa , 0x2a , 0x0081 } ,
{ 0xaa , 0x2b , 0x0096 } ,
{ 0xaa , 0x2d , 0x0084 } ,
{ 0xaa , 0x2f , 0x003d } ,
{ 0xaa , 0x30 , 0x0024 } ,
{ 0xaa , 0x60 , 0x0000 } ,
{ 0xaa , 0x61 , 0x0040 } ,
{ 0xaa , 0x68 , 0x007c } ,
{ 0xaa , 0x6f , 0x0015 } ,
{ 0xaa , 0x75 , 0x0088 } ,
{ 0xaa , 0x77 , 0x00b5 } ,
{ 0xaa , 0x01 , 0x0060 } ,
{ 0xaa , 0x02 , 0x0060 } ,
{ 0xaa , 0x17 , 0x0018 } ,
{ 0xaa , 0x18 , 0x00ba } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x77 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x04 , 0x01a7 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x0116 } ,
{ 0xa0 , 0x46 , 0x0118 } ,
{ 0xa0 , 0x04 , 0x0113 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x4e , 0x010a } , /* matrix */
{ 0xa0 , 0xfe , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf7 , 0x010d } ,
{ 0xa0 , 0x4d , 0x010e } ,
{ 0xa0 , 0xfc , 0x010f } ,
{ 0xa0 , 0x00 , 0x0110 } ,
{ 0xa0 , 0xf6 , 0x0111 } ,
{ 0xa0 , 0x4a , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x16 , 0x0120 } , /* gamma ~4 */
{ 0xa0 , 0x3a , 0x0121 } ,
{ 0xa0 , 0x5b , 0x0122 } ,
{ 0xa0 , 0x7c , 0x0123 } ,
{ 0xa0 , 0x94 , 0x0124 } ,
{ 0xa0 , 0xa9 , 0x0125 } ,
{ 0xa0 , 0xbb , 0x0126 } ,
{ 0xa0 , 0xca , 0x0127 } ,
{ 0xa0 , 0xd7 , 0x0128 } ,
{ 0xa0 , 0xe1 , 0x0129 } ,
{ 0xa0 , 0xea , 0x012a } ,
{ 0xa0 , 0xf1 , 0x012b } ,
{ 0xa0 , 0xf7 , 0x012c } ,
{ 0xa0 , 0xfc , 0x012d } ,
{ 0xa0 , 0xff , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x20 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x00 , 0x013e } ,
{ 0xa0 , 0x01 , 0x013f } ,
{ 0xa0 , 0x4e , 0x010a } , /* matrix */
{ 0xa0 , 0xfe , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf7 , 0x010d } ,
{ 0xa0 , 0x4d , 0x010e } ,
{ 0xa0 , 0xfc , 0x010f } ,
{ 0xa0 , 0x00 , 0x0110 } ,
{ 0xa0 , 0xf6 , 0x0111 } ,
{ 0xa0 , 0x4a , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xaa , 0x10 , 0x000d } ,
{ 0xaa , 0x76 , 0x0002 } ,
{ 0xaa , 0x2a , 0x0081 } ,
{ 0xaa , 0x2b , 0x0000 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x00 , 0x0191 } ,
{ 0xa0 , 0xd8 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x1b , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x10 , 0x01a9 } ,
{ 0xa0 , 0x26 , 0x01aa } ,
{ 0xa0 , 0x50 , 0x011d } ,
{ 0xa0 , 0x02 , 0x0180 } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xaa , 0x13 , 0x00c3 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_Initial_com [ ] = {
2008-06-12 10:58:58 -03:00
/* Sream and Sensor specific */
{ 0xa1 , 0x01 , 0x0010 } , /* CMOSSensorSelect */
/* System */
{ 0xa0 , 0x01 , 0x0000 } , /* SystemControl */
{ 0xa0 , 0x01 , 0x0000 } , /* SystemControl */
/* Picture size */
{ 0xa0 , 0x00 , 0x0002 } , /* ClockSelect */
{ 0xa0 , 0x03 , 0x003a } ,
{ 0xa0 , 0x0c , 0x003b } ,
{ 0xa0 , 0x04 , 0x0038 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_Initial [ ] = { /* 176x144 */
2008-06-12 10:58:58 -03:00
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
/* Sream and Sensor specific */
{ 0xa0 , 0x0f , 0x0010 } , /* CMOSSensorSelect */
/* Picture size */
{ 0xa0 , 0x00 , 0x0003 } , /* FrameWidthHigh 00 */
{ 0xa0 , 0xb0 , 0x0004 } , /* FrameWidthLow B0 */
{ 0xa0 , 0x00 , 0x0005 } , /* FrameHeightHigh 00 */
{ 0xa0 , 0x90 , 0x0006 } , /* FrameHightLow 90 */
/* System */
{ 0xa0 , 0x01 , 0x0001 } , /* SystemOperating */
/* Sream and Sensor specific */
{ 0xa0 , 0x03 , 0x0012 } , /* VideoControlFunction */
{ 0xa0 , 0x01 , 0x0012 } , /* VideoControlFunction */
/* Sensor Interface */
{ 0xa0 , 0x08 , 0x008d } , /* Compatibily Mode */
/* Window inside sensor array */
{ 0xa0 , 0x03 , 0x009a } , /* WinXStartLow */
{ 0xa0 , 0x00 , 0x011a } , /* FirstYLow */
{ 0xa0 , 0x03 , 0x011c } , /* FirstxLow */
{ 0xa0 , 0x28 , 0x009c } , /* WinHeightLow */
{ 0xa0 , 0x68 , 0x009e } , /* WinWidthLow */
/* Init the sensor */
{ 0xaa , 0x02 , 0x0004 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x09 , 0x0005 } ,
{ 0xaa , 0x0a , 0x0002 } ,
{ 0xaa , 0x0b , 0x0002 } ,
{ 0xaa , 0x0c , 0x0005 } ,
{ 0xaa , 0x0d , 0x0000 } ,
{ 0xaa , 0x0e , 0x0002 } ,
{ 0xaa , 0x14 , 0x0081 } ,
/* Other registors */
{ 0xa0 , 0x37 , 0x0101 } , /* SensorCorrection */
/* Frame retreiving */
{ 0xa0 , 0x00 , 0x0019 } , /* AutoAdjustFPS */
/* Gains */
{ 0xa0 , 0xa0 , 0x01a8 } , /* DigitalGain */
/* Unknown */
{ 0xa0 , 0x00 , 0x01ad } ,
/* Sharpness */
{ 0xa0 , 0x03 , 0x01c5 } , /* SharpnessMode */
{ 0xa0 , 0x13 , 0x01cb } , /* Sharpness05 */
/* Other registors */
{ 0xa0 , 0x0d , 0x0100 } , /* OperationMode */
/* Auto exposure and white balance */
{ 0xa0 , 0x06 , 0x0189 } , /* AWBStatus */
/*Dead pixels */
{ 0xa0 , 0x08 , 0x0250 } , /* DeadPixelsMode */
/* EEPROM */
{ 0xa0 , 0x08 , 0x0301 } , /* EEPROMAccess */
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
/* Other registers */
{ 0xa0 , 0x0d , 0x0100 } , /* OperationMode */
/* Auto exposure and white balance */
{ 0xa0 , 0x06 , 0x0189 } , /* AWBStatus */
/*Dead pixels */
{ 0xa0 , 0x08 , 0x0250 } , /* DeadPixelsMode */
/* EEPROM */
{ 0xa0 , 0x08 , 0x0301 } , /* EEPROMAccess */
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
/* Auto correction */
{ 0xa0 , 0x03 , 0x0181 } , /* WinXstart */
{ 0xa0 , 0x08 , 0x0182 } , /* WinXWidth */
{ 0xa0 , 0x16 , 0x0183 } , /* WinXCenter */
{ 0xa0 , 0x03 , 0x0184 } , /* WinYStart */
{ 0xa0 , 0x05 , 0x0185 } , /* WinYWidth */
{ 0xa0 , 0x14 , 0x0186 } , /* WinYCenter */
{ 0xa0 , 0x00 , 0x0180 } , /* AutoCorrectEnable */
/* Auto exposure and white balance */
{ 0xa0 , 0x00 , 0x0190 } , /* ExposureLimitHigh */
{ 0xa0 , 0x03 , 0x0191 } , /* ExposureLimitMid */
{ 0xa0 , 0xb1 , 0x0192 } , /* ExposureLimitLow */
{ 0xa0 , 0x00 , 0x0195 } , /* AntiFlickerHigh */
{ 0xa0 , 0x00 , 0x0196 } , /* AntiFlickerLow */
{ 0xa0 , 0x87 , 0x0197 } , /* AntiFlickerLow */
{ 0xa0 , 0x0c , 0x018c } , /* AEBFreeze */
{ 0xa0 , 0x18 , 0x018f } , /* AEBUnfreeze */
/* sensor on */
{ 0xaa , 0x07 , 0x00b1 } ,
{ 0xaa , 0x05 , 0x0003 } ,
{ 0xaa , 0x04 , 0x0001 } ,
{ 0xaa , 0x03 , 0x003b } ,
/* Gains */
{ 0xa0 , 0x20 , 0x01a9 } , /* DigitalLimitDiff */
{ 0xa0 , 0x26 , 0x01aa } , /* DigitalGainStep */
{ 0xa0 , 0xa0 , 0x011d } , /* GlobalGain */
{ 0xa0 , 0x60 , 0x011d } , /* GlobalGain */
/* Auto correction */
{ 0xa0 , 0x40 , 0x0180 } , /* AutoCorrectEnable */
{ 0xa1 , 0x01 , 0x0180 } , /* AutoCorrectEnable */
{ 0xa0 , 0x42 , 0x0180 } , /* AutoCorrectEnable */
/* Gains */
{ 0xa0 , 0x40 , 0x0116 } , /* RGain */
{ 0xa0 , 0x40 , 0x0117 } , /* GGain */
{ 0xa0 , 0x40 , 0x0118 } , /* BGain */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_InitialScale [ ] = { /* 352x288 */
2008-06-12 10:58:58 -03:00
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
/* Sream and Sensor specific */
{ 0xa0 , 0x0f , 0x0010 } , /* CMOSSensorSelect */
/* Picture size */
{ 0xa0 , 0x01 , 0x0003 } , /* FrameWidthHigh */
{ 0xa0 , 0x60 , 0x0004 } , /* FrameWidthLow */
{ 0xa0 , 0x01 , 0x0005 } , /* FrameHeightHigh */
{ 0xa0 , 0x20 , 0x0006 } , /* FrameHightLow */
/* System */
{ 0xa0 , 0x01 , 0x0001 } , /* SystemOperating */
/* Sream and Sensor specific */
{ 0xa0 , 0x03 , 0x0012 } , /* VideoControlFunction */
{ 0xa0 , 0x01 , 0x0012 } , /* VideoControlFunction */
/* Sensor Interface */
{ 0xa0 , 0x08 , 0x008d } , /* Compatibily Mode */
/* Window inside sensor array */
{ 0xa0 , 0x03 , 0x009a } , /* WinXStartLow */
{ 0xa0 , 0x00 , 0x011a } , /* FirstYLow */
{ 0xa0 , 0x03 , 0x011c } , /* FirstxLow */
{ 0xa0 , 0x28 , 0x009c } , /* WinHeightLow */
{ 0xa0 , 0x68 , 0x009e } , /* WinWidthLow */
/* Init the sensor */
{ 0xaa , 0x02 , 0x0004 } ,
{ 0xaa , 0x08 , 0x0000 } ,
{ 0xaa , 0x09 , 0x0005 } ,
{ 0xaa , 0x0a , 0x0002 } ,
{ 0xaa , 0x0b , 0x0002 } ,
{ 0xaa , 0x0c , 0x0005 } ,
{ 0xaa , 0x0d , 0x0000 } ,
{ 0xaa , 0x0e , 0x0002 } ,
{ 0xaa , 0x14 , 0x0081 } ,
/* Other registors */
{ 0xa0 , 0x37 , 0x0101 } , /* SensorCorrection */
/* Frame retreiving */
{ 0xa0 , 0x00 , 0x0019 } , /* AutoAdjustFPS */
/* Gains */
{ 0xa0 , 0xa0 , 0x01a8 } , /* DigitalGain */
/* Unknown */
{ 0xa0 , 0x00 , 0x01ad } ,
/* Sharpness */
{ 0xa0 , 0x03 , 0x01c5 } , /* SharpnessMode */
{ 0xa0 , 0x13 , 0x01cb } , /* Sharpness05 */
/* Other registors */
{ 0xa0 , 0x0d , 0x0100 } , /* OperationMode */
/* Auto exposure and white balance */
{ 0xa0 , 0x06 , 0x0189 } , /* AWBStatus */
{ 0xa0 , 0x80 , 0x018d } , /* ????????? */
/*Dead pixels */
{ 0xa0 , 0x08 , 0x0250 } , /* DeadPixelsMode */
/* EEPROM */
{ 0xa0 , 0x08 , 0x0301 } , /* EEPROMAccess */
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
/* Other registers */
{ 0xa0 , 0x0d , 0x0100 } , /* OperationMode */
/* Auto exposure and white balance */
{ 0xa0 , 0x06 , 0x0189 } , /* AWBStatus */
/*Dead pixels */
{ 0xa0 , 0x08 , 0x0250 } , /* DeadPixelsMode */
/* EEPROM */
{ 0xa0 , 0x08 , 0x0301 } , /* EEPROMAccess */
/* JPEG control */
{ 0xa0 , 0x03 , 0x0008 } , /* ClockSetting */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x58 , 0x010a } , /* matrix */
{ 0xa0 , 0xf4 , 0x010b } ,
{ 0xa0 , 0xf4 , 0x010c } ,
{ 0xa0 , 0xf4 , 0x010d } ,
{ 0xa0 , 0x58 , 0x010e } ,
{ 0xa0 , 0xf4 , 0x010f } ,
{ 0xa0 , 0xf4 , 0x0110 } ,
{ 0xa0 , 0xf4 , 0x0111 } ,
{ 0xa0 , 0x58 , 0x0112 } ,
/* Auto correction */
{ 0xa0 , 0x03 , 0x0181 } , /* WinXstart */
{ 0xa0 , 0x08 , 0x0182 } , /* WinXWidth */
{ 0xa0 , 0x16 , 0x0183 } , /* WinXCenter */
{ 0xa0 , 0x03 , 0x0184 } , /* WinYStart */
{ 0xa0 , 0x05 , 0x0185 } , /* WinYWidth */
{ 0xa0 , 0x14 , 0x0186 } , /* WinYCenter */
{ 0xa0 , 0x00 , 0x0180 } , /* AutoCorrectEnable */
/* Auto exposure and white balance */
{ 0xa0 , 0x00 , 0x0190 } , /* ExposureLimitHigh 0 */
{ 0xa0 , 0x03 , 0x0191 } , /* ExposureLimitMid */
{ 0xa0 , 0xb1 , 0x0192 } , /* ExposureLimitLow 0xb1 */
{ 0xa0 , 0x00 , 0x0195 } , /* AntiFlickerHigh 0x00 */
{ 0xa0 , 0x00 , 0x0196 } , /* AntiFlickerLow 0x00 */
{ 0xa0 , 0x87 , 0x0197 } , /* AntiFlickerLow 0x87 */
{ 0xa0 , 0x10 , 0x018c } , /* AEBFreeze 0x10 0x0c */
{ 0xa0 , 0x20 , 0x018f } , /* AEBUnfreeze 0x30 0x18 */
/* sensor on */
{ 0xaa , 0x07 , 0x00b1 } ,
{ 0xaa , 0x05 , 0x0003 } ,
{ 0xaa , 0x04 , 0x0001 } ,
{ 0xaa , 0x03 , 0x003b } ,
/* Gains */
{ 0xa0 , 0x20 , 0x01a9 } , /* DigitalLimitDiff */
{ 0xa0 , 0x26 , 0x01aa } , /* DigitalGainStep */
{ 0xa0 , 0xa0 , 0x011d } , /* GlobalGain */
{ 0xa0 , 0x60 , 0x011d } , /* GlobalGain */
/* Auto correction */
{ 0xa0 , 0x40 , 0x0180 } , /* AutoCorrectEnable */
{ 0xa1 , 0x01 , 0x0180 } , /* AutoCorrectEnable */
{ 0xa0 , 0x42 , 0x0180 } , /* AutoCorrectEnable */
/* Gains */
{ 0xa0 , 0x40 , 0x0116 } , /* RGain */
{ 0xa0 , 0x40 , 0x0117 } , /* GGain */
{ 0xa0 , 0x40 , 0x0118 } , /* BGain */
{ 0xa0 , 0x00 , 0x0007 } , /* AutoCorrectEnable */
{ 0xa0 , 0xff , 0x0018 } , /* Frame adjust */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x06 , 0x0191 } , /* 01,91,06,cc */
{ 0xa0 , 0x54 , 0x0192 } , /* 01,92,54,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x87 , 0x0197 } , /* 01,97,87,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x30 , 0x018f } , /* 01,8f,30,cc */
{ 0xaa , 0x03 , 0x0021 } , /* 00,03,21,aa */
{ 0xaa , 0x04 , 0x000c } , /* 00,04,0c,aa */
{ 0xaa , 0x05 , 0x0002 } , /* 00,05,02,aa */
{ 0xaa , 0x07 , 0x001c } , /* 00,07,1c,aa */
{ 0xa0 , 0x04 , 0x01a9 } , /* 01,a9,04,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x06 , 0x0191 } , /* 01,91,06,cc */
{ 0xa0 , 0x2e , 0x0192 } , /* 01,92,2e,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x71 , 0x0197 } , /* 01,97,71,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x30 , 0x018f } , /* 01,8f,30,cc */
{ 0xaa , 0x03 , 0x001c } , /* 00,03,1c,aa */
{ 0xaa , 0x04 , 0x0004 } , /* 00,04,04,aa */
{ 0xaa , 0x05 , 0x0001 } , /* 00,05,01,aa */
{ 0xaa , 0x07 , 0x00c4 } , /* 00,07,c4,aa */
{ 0xa0 , 0x04 , 0x01a9 } , /* 01,a9,04,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pas106b_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x06 , 0x0191 } , /* 01,91,06,cc */
{ 0xa0 , 0x50 , 0x0192 } , /* 01,92,50,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xaa , 0x03 , 0x0013 } , /* 00,03,13,aa */
{ 0xaa , 0x04 , 0x0000 } , /* 00,04,00,aa */
{ 0xaa , 0x05 , 0x0001 } , /* 00,05,01,aa */
{ 0xaa , 0x07 , 0x0030 } , /* 00,07,30,aa */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb03303x_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0xdc , 0x008b } , /* 8b -> dc */
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xaa , 0x01 , 0x0001 } ,
{ 0xaa , 0x06 , 0x0000 } ,
{ 0xaa , 0x08 , 0x0483 } ,
{ 0xaa , 0x01 , 0x0004 } ,
{ 0xaa , 0x08 , 0x0006 } ,
{ 0xaa , 0x02 , 0x0011 } ,
{ 0xaa , 0x03 , 0x01e7 } ,
{ 0xaa , 0x04 , 0x0287 } ,
{ 0xaa , 0x07 , 0x3002 } ,
{ 0xaa , 0x20 , 0x1100 } ,
{ 0xaa , 0x35 , 0x0050 } ,
{ 0xaa , 0x30 , 0x0005 } ,
{ 0xaa , 0x31 , 0x0000 } ,
{ 0xaa , 0x58 , 0x0078 } ,
{ 0xaa , 0x62 , 0x0411 } ,
{ 0xaa , 0x2b , 0x0028 } ,
{ 0xaa , 0x2c , 0x0030 } ,
{ 0xaa , 0x2d , 0x0030 } ,
{ 0xaa , 0x2e , 0x0028 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa0 , 0x61 , 0x0116 } ,
{ 0xa0 , 0x65 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x0d , 0x003a } ,
{ 0xa0 , 0x02 , 0x003b } ,
{ 0xa0 , 0x00 , 0x0038 } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0009 } ,
{ 0xaa , 0x09 , 0x0134 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xec , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x9c , 0x0197 } ,
{ 0xa0 , 0x0e , 0x018c } ,
{ 0xa0 , 0x1c , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0xd7 , 0x001d } ,
{ 0xa0 , 0xf4 , 0x001e } ,
{ 0xa0 , 0xf9 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb03303x_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0xdc , 0x008b } , /* 8b -> dc */
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x03 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xaa , 0x01 , 0x0001 } ,
{ 0xaa , 0x06 , 0x0000 } ,
{ 0xaa , 0x08 , 0x0483 } ,
{ 0xaa , 0x01 , 0x0004 } ,
{ 0xaa , 0x08 , 0x0006 } ,
{ 0xaa , 0x02 , 0x0011 } ,
{ 0xaa , 0x03 , 0x01e7 } ,
{ 0xaa , 0x04 , 0x0287 } ,
{ 0xaa , 0x07 , 0x3002 } ,
{ 0xaa , 0x20 , 0x1100 } ,
{ 0xaa , 0x35 , 0x0050 } ,
{ 0xaa , 0x30 , 0x0005 } ,
{ 0xaa , 0x31 , 0x0000 } ,
{ 0xaa , 0x58 , 0x0078 } ,
{ 0xaa , 0x62 , 0x0411 } ,
{ 0xaa , 0x2b , 0x0028 } ,
{ 0xaa , 0x2c , 0x0030 } ,
{ 0xaa , 0x2d , 0x0030 } ,
{ 0xaa , 0x2e , 0x0028 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x78 , 0x018d } ,
{ 0xa0 , 0x61 , 0x0116 } ,
{ 0xa0 , 0x65 , 0x0118 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x0d , 0x003a } ,
{ 0xa0 , 0x02 , 0x003b } ,
{ 0xa0 , 0x00 , 0x0038 } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x13 , 0x0120 } , /* gamma 4 */
{ 0xa0 , 0x38 , 0x0121 } ,
{ 0xa0 , 0x59 , 0x0122 } ,
{ 0xa0 , 0x79 , 0x0123 } ,
{ 0xa0 , 0x92 , 0x0124 } ,
{ 0xa0 , 0xa7 , 0x0125 } ,
{ 0xa0 , 0xb9 , 0x0126 } ,
{ 0xa0 , 0xc8 , 0x0127 } ,
{ 0xa0 , 0xd4 , 0x0128 } ,
{ 0xa0 , 0xdf , 0x0129 } ,
{ 0xa0 , 0xe7 , 0x012a } ,
{ 0xa0 , 0xee , 0x012b } ,
{ 0xa0 , 0xf4 , 0x012c } ,
{ 0xa0 , 0xf9 , 0x012d } ,
{ 0xa0 , 0xfc , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x26 , 0x0130 } ,
{ 0xa0 , 0x22 , 0x0131 } ,
{ 0xa0 , 0x20 , 0x0132 } ,
{ 0xa0 , 0x1c , 0x0133 } ,
{ 0xa0 , 0x16 , 0x0134 } ,
{ 0xa0 , 0x13 , 0x0135 } ,
{ 0xa0 , 0x10 , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x06 , 0x013b } ,
{ 0xa0 , 0x05 , 0x013c } ,
{ 0xa0 , 0x04 , 0x013d } ,
{ 0xa0 , 0x03 , 0x013e } ,
{ 0xa0 , 0x02 , 0x013f } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0009 } ,
{ 0xaa , 0x09 , 0x0134 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xec , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x9c , 0x0197 } ,
{ 0xa0 , 0x0e , 0x018c } ,
{ 0xa0 , 0x1c , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0xd7 , 0x001d } ,
{ 0xa0 , 0xf4 , 0x001e } ,
{ 0xa0 , 0xf9 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330xx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xaa , 0x01 , 0x0006 } ,
{ 0xaa , 0x02 , 0x0011 } ,
{ 0xaa , 0x03 , 0x01e7 } ,
{ 0xaa , 0x04 , 0x0287 } ,
{ 0xaa , 0x06 , 0x0003 } ,
{ 0xaa , 0x07 , 0x3002 } ,
{ 0xaa , 0x20 , 0x1100 } ,
{ 0xaa , 0x2f , 0xf7b0 } ,
{ 0xaa , 0x30 , 0x0005 } ,
{ 0xaa , 0x31 , 0x0000 } ,
{ 0xaa , 0x34 , 0x0100 } ,
{ 0xaa , 0x35 , 0x0060 } ,
{ 0xaa , 0x3d , 0x068f } ,
{ 0xaa , 0x40 , 0x01e0 } ,
{ 0xaa , 0x58 , 0x0078 } ,
{ 0xaa , 0x62 , 0x0411 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x6c , 0x018d } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x00 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0066 } ,
{ 0xaa , 0x09 , 0x02b2 } ,
{ 0xaa , 0x10 , 0x0002 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0x8c , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x8a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0xd7 , 0x001d } ,
{ 0xa0 , 0xf0 , 0x001e } ,
{ 0xa0 , 0xf8 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0007 } ,
/* {0xa0, 0x30, 0x0007}, */
/* {0xa0, 0x00, 0x0007}, */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330xx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* 00 */
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x00 , 0x0002 } , /* 10 */
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xaa , 0x01 , 0x0006 } ,
{ 0xaa , 0x02 , 0x0011 } ,
{ 0xaa , 0x03 , 0x01e7 } ,
{ 0xaa , 0x04 , 0x0287 } ,
{ 0xaa , 0x06 , 0x0003 } ,
{ 0xaa , 0x07 , 0x3002 } ,
{ 0xaa , 0x20 , 0x1100 } ,
{ 0xaa , 0x2f , 0xf7b0 } ,
{ 0xaa , 0x30 , 0x0005 } ,
{ 0xaa , 0x31 , 0x0000 } ,
{ 0xaa , 0x34 , 0x0100 } ,
{ 0xaa , 0x35 , 0x0060 } ,
{ 0xaa , 0x3d , 0x068f } ,
{ 0xaa , 0x40 , 0x01e0 } ,
{ 0xaa , 0x58 , 0x0078 } ,
{ 0xaa , 0x62 , 0x0411 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x6c , 0x018d } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x00 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0090 } ,
{ 0xa1 , 0x01 , 0x0091 } ,
{ 0xa1 , 0x01 , 0x0095 } ,
{ 0xa1 , 0x01 , 0x0096 } ,
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x50 , 0x010a } , /* matrix */
{ 0xa0 , 0xf8 , 0x010b } ,
{ 0xa0 , 0xf8 , 0x010c } ,
{ 0xa0 , 0xf8 , 0x010d } ,
{ 0xa0 , 0x50 , 0x010e } ,
{ 0xa0 , 0xf8 , 0x010f } ,
{ 0xa0 , 0xf8 , 0x0110 } ,
{ 0xa0 , 0xf8 , 0x0111 } ,
{ 0xa0 , 0x50 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0x05 , 0x0066 } ,
{ 0xaa , 0x09 , 0x02b2 } ,
{ 0xaa , 0x10 , 0x0002 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0x8c , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x8a , 0x0197 } ,
{ 0xa0 , 0x10 , 0x018c } ,
{ 0xa0 , 0x20 , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0xd7 , 0x001d } ,
{ 0xa0 , 0xf0 , 0x001e } ,
{ 0xa0 , 0xf8 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0007 } ,
/* {0xa0, 0x30, 0x0007}, */
/* {0xa0, 0x00, 0x0007}, */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xee , 0x0192 } , /* 01,92,ee,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x46 , 0x0197 } , /* 01,97,46,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0x68 , 0x001d } , /* 00,1d,68,cc */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xa0 , 0x0192 } , /* 01,92,a0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x7a , 0x0197 } , /* 01,97,7a,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0xe5 , 0x001d } , /* 00,1d,e5,cc */
{ 0xa0 , 0xf0 , 0x001e } , /* 00,1e,f0,cc */
{ 0xa0 , 0xf8 , 0x001f } , /* 00,1f,f8,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xdd , 0x0192 } , /* 01,92,dd,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x3d , 0x0197 } , /* 01,97,3d,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0x43 , 0x001d } , /* 00,1d,43,cc */
{ 0xa0 , 0x50 , 0x001e } , /* 00,1e,50,cc */
{ 0xa0 , 0x90 , 0x001f } , /* 00,1f,90,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xa0 , 0x0192 } , /* 01,92,a0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x7a , 0x0197 } , /* 01,97,7a,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0x41 , 0x001d } , /* 00,1d,41,cc */
{ 0xa0 , 0x50 , 0x001e } , /* 00,1e,50,cc */
{ 0xa0 , 0x90 , 0x001f } , /* 00,1f,90,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0x09 , 0x001d } , /* 00,1d,09,cc */
{ 0xa0 , 0x40 , 0x001e } , /* 00,1e,40,cc */
{ 0xa0 , 0x90 , 0x001f } , /* 00,1f,90,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action pb0330_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x07 , 0x0191 } , /* 01,91,07,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0x09 , 0x001d } , /* 00,1d,09,cc */
{ 0xa0 , 0x40 , 0x001e } , /* 00,1e,40,cc */
{ 0xa0 , 0x90 , 0x001f } , /* 00,1f,90,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from oem9.inf - HKR,%PO2030%,Initial - 640x480 - (close to CS2102) */
2008-07-04 11:16:16 -03:00
static const struct usb_action PO2030_mode0 [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x04 , 0x0002 } , /* 00,02,04,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x04 , 0x0080 } , /* 00,80,04,cc */
{ 0xa0 , 0x05 , 0x0081 } , /* 00,81,05,cc */
{ 0xa0 , 0x16 , 0x0083 } , /* 00,83,16,cc */
{ 0xa0 , 0x18 , 0x0085 } , /* 00,85,18,cc */
{ 0xa0 , 0x1a , 0x0086 } , /* 00,86,1a,cc */
{ 0xa0 , 0x1b , 0x0087 } , /* 00,87,1b,cc */
{ 0xa0 , 0x1c , 0x0088 } , /* 00,88,1c,cc */
{ 0xa0 , 0xee , 0x008b } , /* 00,8b,ee,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
{ 0xaa , 0x8d , 0x0008 } , /* 00,8d,08,aa */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xe6 , 0x009c } , /* 00,9c,e6,cc */
{ 0xa0 , 0x86 , 0x009e } , /* 00,9e,86,cc */
{ 0xaa , 0x09 , 0x00ce } , /* 00,09,ce,aa */
{ 0xaa , 0x0b , 0x0005 } , /* 00,0b,05,aa */
{ 0xaa , 0x0d , 0x0054 } , /* 00,0d,54,aa */
{ 0xaa , 0x0f , 0x00eb } , /* 00,0f,eb,aa */
{ 0xaa , 0x87 , 0x0000 } , /* 00,87,00,aa */
{ 0xaa , 0x88 , 0x0004 } , /* 00,88,04,aa */
{ 0xaa , 0x89 , 0x0000 } , /* 00,89,00,aa */
{ 0xaa , 0x8a , 0x0005 } , /* 00,8a,05,aa */
{ 0xaa , 0x13 , 0x0003 } , /* 00,13,03,aa */
{ 0xaa , 0x16 , 0x0040 } , /* 00,16,40,aa */
{ 0xaa , 0x18 , 0x0040 } , /* 00,18,40,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x29 , 0x00e8 } , /* 00,29,e8,aa */
{ 0xaa , 0x45 , 0x0045 } , /* 00,45,45,aa */
{ 0xaa , 0x50 , 0x00ed } , /* 00,50,ed,aa */
{ 0xaa , 0x51 , 0x0025 } , /* 00,51,25,aa */
{ 0xaa , 0x52 , 0x0042 } , /* 00,52,42,aa */
{ 0xaa , 0x53 , 0x002f } , /* 00,53,2f,aa */
{ 0xaa , 0x79 , 0x0025 } , /* 00,79,25,aa */
{ 0xaa , 0x7b , 0x0000 } , /* 00,7b,00,aa */
{ 0xaa , 0x7e , 0x0025 } , /* 00,7e,25,aa */
{ 0xaa , 0x7f , 0x0025 } , /* 00,7f,25,aa */
{ 0xaa , 0x21 , 0x0000 } , /* 00,21,00,aa */
{ 0xaa , 0x33 , 0x0036 } , /* 00,33,36,aa */
{ 0xaa , 0x36 , 0x0060 } , /* 00,36,60,aa */
{ 0xaa , 0x37 , 0x0008 } , /* 00,37,08,aa */
{ 0xaa , 0x3b , 0x0031 } , /* 00,3b,31,aa */
{ 0xaa , 0x44 , 0x000f } , /* 00,44,0f,aa */
{ 0xaa , 0x58 , 0x0002 } , /* 00,58,02,aa */
{ 0xaa , 0x66 , 0x00c0 } , /* 00,66,c0,aa */
{ 0xaa , 0x67 , 0x0044 } , /* 00,67,44,aa */
{ 0xaa , 0x6b , 0x00a0 } , /* 00,6b,a0,aa */
{ 0xaa , 0x6c , 0x0054 } , /* 00,6c,54,aa */
{ 0xaa , 0xd6 , 0x0007 } , /* 00,d6,07,aa */
{ 0xa0 , 0xf7 , 0x0101 } , /* 01,01,f7,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x00 , 0x01ad } , /* 01,ad,00,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x7a , 0x0116 } , /* 01,16,7a,cc */
{ 0xa0 , 0x4a , 0x0118 } , /* 01,18,4a,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* from oem9.inf - HKR,%PO2030%,InitialScale - 320x240 */
2008-07-04 11:16:16 -03:00
static const struct usb_action PO2030_mode1 [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc */
{ 0xa0 , 0x10 , 0x0002 } , /* 00,02,10,cc */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc */
{ 0xa0 , 0x04 , 0x0080 } , /* 00,80,04,cc */
{ 0xa0 , 0x05 , 0x0081 } , /* 00,81,05,cc */
{ 0xa0 , 0x16 , 0x0083 } , /* 00,83,16,cc */
{ 0xa0 , 0x18 , 0x0085 } , /* 00,85,18,cc */
{ 0xa0 , 0x1a , 0x0086 } , /* 00,86,1a,cc */
{ 0xa0 , 0x1b , 0x0087 } , /* 00,87,1b,cc */
{ 0xa0 , 0x1c , 0x0088 } , /* 00,88,1c,cc */
{ 0xa0 , 0xee , 0x008b } , /* 00,8b,ee,cc */
{ 0xa0 , 0x03 , 0x0008 } , /* 00,08,03,cc */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
{ 0xaa , 0x8d , 0x0008 } , /* 00,8d,08,aa */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc */
{ 0xa0 , 0xe8 , 0x009c } , /* 00,9c,e8,cc */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,88,cc */
{ 0xaa , 0x09 , 0x00cc } , /* 00,09,cc,aa */
{ 0xaa , 0x0b , 0x0005 } , /* 00,0b,05,aa */
{ 0xaa , 0x0d , 0x0058 } , /* 00,0d,58,aa */
{ 0xaa , 0x0f , 0x00ed } , /* 00,0f,ed,aa */
{ 0xaa , 0x87 , 0x0000 } , /* 00,87,00,aa */
{ 0xaa , 0x88 , 0x0004 } , /* 00,88,04,aa */
{ 0xaa , 0x89 , 0x0000 } , /* 00,89,00,aa */
{ 0xaa , 0x8a , 0x0005 } , /* 00,8a,05,aa */
{ 0xaa , 0x13 , 0x0003 } , /* 00,13,03,aa */
{ 0xaa , 0x16 , 0x0040 } , /* 00,16,40,aa */
{ 0xaa , 0x18 , 0x0040 } , /* 00,18,40,aa */
{ 0xaa , 0x1d , 0x0002 } , /* 00,1d,02,aa */
{ 0xaa , 0x29 , 0x00e8 } , /* 00,29,e8,aa */
{ 0xaa , 0x45 , 0x0045 } , /* 00,45,45,aa */
{ 0xaa , 0x50 , 0x00ed } , /* 00,50,ed,aa */
{ 0xaa , 0x51 , 0x0025 } , /* 00,51,25,aa */
{ 0xaa , 0x52 , 0x0042 } , /* 00,52,42,aa */
{ 0xaa , 0x53 , 0x002f } , /* 00,53,2f,aa */
{ 0xaa , 0x79 , 0x0025 } , /* 00,79,25,aa */
{ 0xaa , 0x7b , 0x0000 } , /* 00,7b,00,aa */
{ 0xaa , 0x7e , 0x0025 } , /* 00,7e,25,aa */
{ 0xaa , 0x7f , 0x0025 } , /* 00,7f,25,aa */
{ 0xaa , 0x21 , 0x0000 } , /* 00,21,00,aa */
{ 0xaa , 0x33 , 0x0036 } , /* 00,33,36,aa */
{ 0xaa , 0x36 , 0x0060 } , /* 00,36,60,aa */
{ 0xaa , 0x37 , 0x0008 } , /* 00,37,08,aa */
{ 0xaa , 0x3b , 0x0031 } , /* 00,3b,31,aa */
{ 0xaa , 0x44 , 0x000f } , /* 00,44,0f,aa */
{ 0xaa , 0x58 , 0x0002 } , /* 00,58,02,aa */
{ 0xaa , 0x66 , 0x00c0 } , /* 00,66,c0,aa */
{ 0xaa , 0x67 , 0x0044 } , /* 00,67,44,aa */
{ 0xaa , 0x6b , 0x00a0 } , /* 00,6b,a0,aa */
{ 0xaa , 0x6c , 0x0054 } , /* 00,6c,54,aa */
{ 0xaa , 0xd6 , 0x0007 } , /* 00,d6,07,aa */
{ 0xa0 , 0xf7 , 0x0101 } , /* 01,01,f7,cc */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc */
{ 0xa0 , 0x06 , 0x0189 } , /* 01,89,06,cc */
{ 0xa0 , 0x00 , 0x01ad } , /* 01,ad,00,cc */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc */
{ 0xa0 , 0x7a , 0x0116 } , /* 01,16,7a,cc */
{ 0xa0 , 0x4a , 0x0118 } , /* 01,18,4a,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action PO2030_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x8d , 0x0008 } , /* 00,8d,08,aa */
{ 0xaa , 0x1a , 0x0001 } , /* 00,1a,01,aa */
{ 0xaa , 0x1b , 0x000a } , /* 00,1b,0a,aa */
{ 0xaa , 0x1c , 0x00b0 } , /* 00,1c,b0,aa */
{ 0xa0 , 0x05 , 0x0190 } , /* 01,90,05,cc */
{ 0xa0 , 0x35 , 0x0191 } , /* 01,91,35,cc */
{ 0xa0 , 0x70 , 0x0192 } , /* 01,92,70,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x85 , 0x0196 } , /* 01,96,85,cc */
{ 0xa0 , 0x58 , 0x0197 } , /* 01,97,58,cc */
{ 0xa0 , 0x0c , 0x018c } , /* 01,8c,0c,cc */
{ 0xa0 , 0x18 , 0x018f } , /* 01,8f,18,cc */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x22 , 0x01aa } , /* 01,aa,22,cc */
{ 0xa0 , 0x88 , 0x018d } , /* 01,8d,88,cc */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action PO2030_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x8d , 0x0008 } , /* 00,8d,08,aa */
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa */
{ 0xaa , 0x1b , 0x00de } , /* 00,1b,de,aa */
{ 0xaa , 0x1c , 0x0040 } , /* 00,1c,40,aa */
{ 0xa0 , 0x08 , 0x0190 } , /* 01,90,08,cc */
{ 0xa0 , 0xae , 0x0191 } , /* 01,91,ae,cc */
{ 0xa0 , 0x80 , 0x0192 } , /* 01,92,80,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x6f , 0x0196 } , /* 01,96,6f,cc */
{ 0xa0 , 0x20 , 0x0197 } , /* 01,97,20,cc */
{ 0xa0 , 0x0c , 0x018c } , /* 01,8c,0c,cc */
{ 0xa0 , 0x18 , 0x018f } , /* 01,8f,18,cc */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc */
{ 0xa0 , 0x22 , 0x01aa } , /* 01,aa,22,cc */
{ 0xa0 , 0x88 , 0x018d } , /* 01,8d,88,cc */ /* win: 01,8d,80 */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action PO2030_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x02 , 0x0180 } , /* 01,80,02,cc */
{ 0xaa , 0x8d , 0x000d } , /* 00,8d,0d,aa */
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa */
{ 0xaa , 0x1b , 0x0002 } , /* 00,1b,02,aa */
{ 0xaa , 0x1c , 0x0078 } , /* 00,1c,78,aa */
{ 0xaa , 0x46 , 0x0000 } , /* 00,46,00,aa */
{ 0xaa , 0x15 , 0x0000 } , /* 00,15,00,aa */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* TEST */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130CK_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x01 , 0x003b } ,
{ 0xa0 , 0x0e , 0x003a } ,
{ 0xa0 , 0x01 , 0x0038 } ,
{ 0xa0 , 0x0b , 0x0039 } ,
{ 0xa0 , 0x00 , 0x0038 } ,
{ 0xa0 , 0x0b , 0x0039 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x10 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x06 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x08 , 0x0092 } ,
{ 0xa0 , 0x83 , 0x0093 } ,
{ 0xa0 , 0x04 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x01 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x08 , 0x0092 } ,
{ 0xa0 , 0x06 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x02 , 0x0092 } ,
{ 0xa0 , 0x11 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x03 , 0x0092 } ,
{ 0xa0 , 0xE7 , 0x0093 } ,
{ 0xa0 , 0x01 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x04 , 0x0092 } ,
{ 0xa0 , 0x87 , 0x0093 } ,
{ 0xa0 , 0x02 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x07 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x30 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x51 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x35 , 0x0092 } ,
{ 0xa0 , 0x7F , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x30 , 0x0092 } ,
{ 0xa0 , 0x05 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x31 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x58 , 0x0092 } ,
{ 0xa0 , 0x78 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x62 , 0x0092 } ,
{ 0xa0 , 0x11 , 0x0093 } ,
{ 0xa0 , 0x04 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2B , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2c , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2D , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2e , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0xb7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x6c , 0x018d } ,
{ 0xa0 , 0x61 , 0x0116 } ,
{ 0xa0 , 0x65 , 0x0118 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x4c , 0x010a } , /* matrix */
{ 0xa0 , 0xf1 , 0x010b } ,
{ 0xa0 , 0x03 , 0x010c } ,
{ 0xa0 , 0xfe , 0x010d } ,
{ 0xa0 , 0x51 , 0x010e } ,
{ 0xa0 , 0xf1 , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0x03 , 0x0111 } ,
{ 0xa0 , 0x51 , 0x0112 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x38 , 0x0120 } , /* gamma > 5 */
{ 0xa0 , 0x51 , 0x0121 } ,
{ 0xa0 , 0x6e , 0x0122 } ,
{ 0xa0 , 0x8c , 0x0123 } ,
{ 0xa0 , 0xa2 , 0x0124 } ,
{ 0xa0 , 0xb6 , 0x0125 } ,
{ 0xa0 , 0xc8 , 0x0126 } ,
{ 0xa0 , 0xd6 , 0x0127 } ,
{ 0xa0 , 0xe2 , 0x0128 } ,
{ 0xa0 , 0xed , 0x0129 } ,
{ 0xa0 , 0xf5 , 0x012a } ,
{ 0xa0 , 0xfc , 0x012b } ,
{ 0xa0 , 0xff , 0x012c } ,
{ 0xa0 , 0xff , 0x012d } ,
{ 0xa0 , 0xff , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x12 , 0x0130 } ,
{ 0xa0 , 0x1b , 0x0131 } ,
{ 0xa0 , 0x1d , 0x0132 } ,
{ 0xa0 , 0x1a , 0x0133 } ,
{ 0xa0 , 0x15 , 0x0134 } ,
{ 0xa0 , 0x12 , 0x0135 } ,
{ 0xa0 , 0x0f , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x05 , 0x013b } ,
{ 0xa0 , 0x00 , 0x013c } ,
{ 0xa0 , 0x00 , 0x013d } ,
{ 0xa0 , 0x00 , 0x013e } ,
{ 0xa0 , 0x01 , 0x013f } ,
{ 0xa0 , 0x4c , 0x010a } , /* matrix */
{ 0xa0 , 0xf1 , 0x010b } ,
{ 0xa0 , 0x03 , 0x010c } ,
{ 0xa0 , 0xfe , 0x010d } ,
{ 0xa0 , 0x51 , 0x010e } ,
{ 0xa0 , 0xf1 , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0x03 , 0x0111 } ,
{ 0xa0 , 0x51 , 0x0112 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0092 } ,
{ 0xa0 , 0x09 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x09 , 0x0092 } ,
{ 0xa0 , 0x34 , 0x0093 } ,
{ 0xa0 , 0x01 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x07 , 0x0191 } ,
{ 0xa0 , 0xd2 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x9a , 0x0197 } ,
{ 0xa0 , 0x0e , 0x018c } ,
{ 0xa0 , 0x1c , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x66 , 0x01aa } ,
{ 0xa0 , 0xd7 , 0x001d } ,
{ 0xa0 , 0xf4 , 0x001e } ,
{ 0xa0 , 0xf9 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130CK_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x01 , 0x003b } ,
{ 0xa0 , 0x0e , 0x003a } ,
{ 0xa0 , 0x01 , 0x0038 } ,
{ 0xa0 , 0x0b , 0x0039 } ,
{ 0xa0 , 0x00 , 0x0038 } ,
{ 0xa0 , 0x0b , 0x0039 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x0a , 0x0010 } ,
{ 0xa0 , 0x00 , 0x0002 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x07 , 0x0012 } ,
{ 0xa0 , 0x00 , 0x0098 } ,
{ 0xa0 , 0x00 , 0x009a } ,
{ 0xa0 , 0x00 , 0x011a } ,
{ 0xa0 , 0x00 , 0x011c } ,
{ 0xa0 , 0xdc , 0x008b } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0092 } ,
{ 0xa0 , 0x01 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x06 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x08 , 0x0092 } ,
{ 0xa0 , 0x83 , 0x0093 } ,
{ 0xa0 , 0x04 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x01 , 0x0092 } ,
{ 0xa0 , 0x04 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x08 , 0x0092 } ,
{ 0xa0 , 0x06 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x02 , 0x0092 } ,
{ 0xa0 , 0x11 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x03 , 0x0092 } ,
{ 0xa0 , 0xe5 , 0x0093 } ,
{ 0xa0 , 0x01 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x04 , 0x0092 } ,
{ 0xa0 , 0x85 , 0x0093 } ,
{ 0xa0 , 0x02 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x07 , 0x0092 } ,
{ 0xa0 , 0x02 , 0x0093 } ,
{ 0xa0 , 0x30 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x20 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x51 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x35 , 0x0092 } ,
{ 0xa0 , 0x7F , 0x0093 } ,
{ 0xa0 , 0x50 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x30 , 0x0092 } ,
{ 0xa0 , 0x05 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x31 , 0x0092 } ,
{ 0xa0 , 0x00 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x58 , 0x0092 } ,
{ 0xa0 , 0x78 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x62 , 0x0092 } ,
{ 0xa0 , 0x11 , 0x0093 } ,
{ 0xa0 , 0x04 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2B , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2C , 0x0092 } ,
{ 0xa0 , 0x7F , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2D , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x2e , 0x0092 } ,
{ 0xa0 , 0x7f , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x10 , 0x0087 } ,
{ 0xa0 , 0xb7 , 0x0101 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x6c , 0x018d } ,
{ 0xa0 , 0x61 , 0x0116 } ,
{ 0xa0 , 0x65 , 0x0118 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x4c , 0x010a } , /* matrix */
{ 0xa0 , 0xf1 , 0x010b } ,
{ 0xa0 , 0x03 , 0x010c } ,
{ 0xa0 , 0xfe , 0x010d } ,
{ 0xa0 , 0x51 , 0x010e } ,
{ 0xa0 , 0xf1 , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0x03 , 0x0111 } ,
{ 0xa0 , 0x51 , 0x0112 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x38 , 0x0120 } , /* gamma > 5 */
{ 0xa0 , 0x51 , 0x0121 } ,
{ 0xa0 , 0x6e , 0x0122 } ,
{ 0xa0 , 0x8c , 0x0123 } ,
{ 0xa0 , 0xa2 , 0x0124 } ,
{ 0xa0 , 0xb6 , 0x0125 } ,
{ 0xa0 , 0xc8 , 0x0126 } ,
{ 0xa0 , 0xd6 , 0x0127 } ,
{ 0xa0 , 0xe2 , 0x0128 } ,
{ 0xa0 , 0xed , 0x0129 } ,
{ 0xa0 , 0xf5 , 0x012a } ,
{ 0xa0 , 0xfc , 0x012b } ,
{ 0xa0 , 0xff , 0x012c } ,
{ 0xa0 , 0xff , 0x012d } ,
{ 0xa0 , 0xff , 0x012e } ,
{ 0xa0 , 0xff , 0x012f } ,
{ 0xa0 , 0x12 , 0x0130 } ,
{ 0xa0 , 0x1b , 0x0131 } ,
{ 0xa0 , 0x1d , 0x0132 } ,
{ 0xa0 , 0x1a , 0x0133 } ,
{ 0xa0 , 0x15 , 0x0134 } ,
{ 0xa0 , 0x12 , 0x0135 } ,
{ 0xa0 , 0x0f , 0x0136 } ,
{ 0xa0 , 0x0d , 0x0137 } ,
{ 0xa0 , 0x0b , 0x0138 } ,
{ 0xa0 , 0x09 , 0x0139 } ,
{ 0xa0 , 0x07 , 0x013a } ,
{ 0xa0 , 0x05 , 0x013b } ,
{ 0xa0 , 0x00 , 0x013c } ,
{ 0xa0 , 0x00 , 0x013d } ,
{ 0xa0 , 0x00 , 0x013e } ,
{ 0xa0 , 0x01 , 0x013f } ,
{ 0xa0 , 0x4c , 0x010a } , /* matrix */
{ 0xa0 , 0xf1 , 0x010b } ,
{ 0xa0 , 0x03 , 0x010c } ,
{ 0xa0 , 0xfe , 0x010d } ,
{ 0xa0 , 0x51 , 0x010e } ,
{ 0xa0 , 0xf1 , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0x03 , 0x0111 } ,
{ 0xa0 , 0x51 , 0x0112 } ,
{ 0xa0 , 0x10 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xa0 , 0x05 , 0x0092 } ,
{ 0xa0 , 0x62 , 0x0093 } ,
{ 0xa0 , 0x00 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x09 , 0x0092 } ,
{ 0xa0 , 0xaa , 0x0093 } ,
{ 0xa0 , 0x01 , 0x0094 } ,
{ 0xa0 , 0x01 , 0x0090 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x03 , 0x0191 } ,
{ 0xa0 , 0x9b , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x47 , 0x0197 } ,
{ 0xa0 , 0x0e , 0x018c } ,
{ 0xa0 , 0x1c , 0x018f } ,
{ 0xa0 , 0x14 , 0x01a9 } ,
{ 0xa0 , 0x66 , 0x01aa } ,
{ 0xa0 , 0x62 , 0x001d } ,
{ 0xa0 , 0x90 , 0x001e } ,
{ 0xa0 , 0xc8 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x60 , 0x011d } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x09 , 0x01ad } ,
{ 0xa0 , 0x15 , 0x01ae } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
{ 0xa0 , 0x30 , 0x0007 } ,
{ 0xa0 , 0x02 , 0x0008 } ,
{ 0xa0 , 0x00 , 0x0007 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x50 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa0 , 0x02 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x00 , 0x0001 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x00a5 } ,
{ 0xa0 , 0x02 , 0x00a6 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x04 , 0x0098 } ,
{ 0xa0 , 0x0f , 0x009a } ,
{ 0xa0 , 0x04 , 0x011a } ,
{ 0xa0 , 0x0f , 0x011c } ,
{ 0xa0 , 0xe8 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x88 , 0x009e } ,
{ 0xa0 , 0x06 , 0x008d } ,
{ 0xa0 , 0xf7 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x68 , 0x018d } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x68 , 0x010a } , /* matrix */
{ 0xa0 , 0xec , 0x010b } ,
{ 0xa0 , 0xec , 0x010c } ,
{ 0xa0 , 0xec , 0x010d } ,
{ 0xa0 , 0x68 , 0x010e } ,
{ 0xa0 , 0xec , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0xec , 0x0111 } ,
{ 0xa0 , 0x68 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x018d } ,
{ 0xa0 , 0x90 , 0x018d } , /* 90 */
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0xa3 , 0x0001 } ,
{ 0xaa , 0xa4 , 0x0077 } ,
{ 0xa0 , 0x01 , 0x00a3 } ,
{ 0xa0 , 0x77 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } , /* 00 */
{ 0xa0 , 0x03 , 0x0191 } , /* 03 */
{ 0xa0 , 0xe8 , 0x0192 } , /* e8 */
{ 0xa0 , 0x00 , 0x0195 } , /* 0 */
{ 0xa0 , 0x00 , 0x0196 } , /* 0 */
{ 0xa0 , 0x7d , 0x0197 } , /* 7d */
{ 0xa0 , 0x0c , 0x018c } ,
{ 0xa0 , 0x18 , 0x018f } ,
{ 0xa0 , 0x08 , 0x01a9 } , /* 08 */
{ 0xa0 , 0x24 , 0x01aa } , /* 24 */
{ 0xa0 , 0xf0 , 0x001d } ,
{ 0xa0 , 0xf4 , 0x001e } ,
{ 0xa0 , 0xf8 , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x03 , 0x009f } ,
{ 0xa0 , 0xc0 , 0x00a0 } ,
{ 0xa0 , 0x50 , 0x011d } , /* 50 */
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x01 , 0x0000 } ,
{ 0xa0 , 0x40 , 0x0002 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x02 , 0x0010 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x00 , 0x0001 } ,
{ 0xa0 , 0x01 , 0x0012 } ,
{ 0xa0 , 0x01 , 0x0001 } ,
{ 0xa0 , 0x05 , 0x0012 } ,
{ 0xa0 , 0x07 , 0x00a5 } ,
{ 0xa0 , 0x02 , 0x00a6 } ,
{ 0xa0 , 0x02 , 0x0003 } ,
{ 0xa0 , 0x80 , 0x0004 } ,
{ 0xa0 , 0x01 , 0x0005 } ,
{ 0xa0 , 0xe0 , 0x0006 } ,
{ 0xa0 , 0x05 , 0x0098 } ,
{ 0xa0 , 0x0f , 0x009a } ,
{ 0xa0 , 0x05 , 0x011a } ,
{ 0xa0 , 0x0f , 0x011c } ,
{ 0xa0 , 0xe6 , 0x009c } ,
{ 0xa0 , 0x02 , 0x009d } ,
{ 0xa0 , 0x86 , 0x009e } ,
{ 0xa0 , 0x06 , 0x008d } ,
{ 0xa0 , 0x37 , 0x0101 } ,
{ 0xa0 , 0x0d , 0x0100 } ,
{ 0xa0 , 0x06 , 0x0189 } ,
{ 0xa0 , 0x68 , 0x018d } ,
{ 0xa0 , 0x60 , 0x01a8 } ,
{ 0xa0 , 0x00 , 0x01ad } ,
{ 0xa0 , 0x03 , 0x01c5 } ,
{ 0xa0 , 0x13 , 0x01cb } ,
{ 0xa0 , 0x08 , 0x0250 } ,
{ 0xa0 , 0x08 , 0x0301 } ,
{ 0xa1 , 0x01 , 0x0002 } ,
{ 0xa1 , 0x01 , 0x0008 } ,
{ 0xa0 , 0x03 , 0x0008 } ,
{ 0xa1 , 0x01 , 0x0008 } , /* clock ? */
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x08 , 0x01c6 } , /* sharpness+ */
2008-06-12 10:58:58 -03:00
{ 0xa1 , 0x01 , 0x01c8 } ,
{ 0xa1 , 0x01 , 0x01c9 } ,
{ 0xa1 , 0x01 , 0x01ca } ,
2008-06-30 15:50:11 -03:00
{ 0xa0 , 0x0f , 0x01cb } , /* sharpness- */
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x68 , 0x010a } , /* matrix */
{ 0xa0 , 0xec , 0x010b } ,
{ 0xa0 , 0xec , 0x010c } ,
{ 0xa0 , 0xec , 0x010d } ,
{ 0xa0 , 0x68 , 0x010e } ,
{ 0xa0 , 0xec , 0x010f } ,
{ 0xa0 , 0xec , 0x0110 } ,
{ 0xa0 , 0xec , 0x0111 } ,
{ 0xa0 , 0x68 , 0x0112 } ,
{ 0xa1 , 0x01 , 0x018d } ,
{ 0xa0 , 0x90 , 0x018d } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0180 } ,
{ 0xa0 , 0x00 , 0x0019 } ,
{ 0xaa , 0xa3 , 0x0001 } ,
{ 0xaa , 0xa4 , 0x0063 } ,
{ 0xa0 , 0x01 , 0x00a3 } ,
{ 0xa0 , 0x63 , 0x00a4 } ,
{ 0xa0 , 0x00 , 0x0190 } ,
{ 0xa0 , 0x02 , 0x0191 } ,
{ 0xa0 , 0x38 , 0x0192 } ,
{ 0xa0 , 0x00 , 0x0195 } ,
{ 0xa0 , 0x00 , 0x0196 } ,
{ 0xa0 , 0x47 , 0x0197 } ,
{ 0xa0 , 0x0c , 0x018c } ,
{ 0xa0 , 0x18 , 0x018f } ,
{ 0xa0 , 0x08 , 0x01a9 } ,
{ 0xa0 , 0x24 , 0x01aa } ,
{ 0xa0 , 0xd3 , 0x001d } ,
{ 0xa0 , 0xda , 0x001e } ,
{ 0xa0 , 0xea , 0x001f } ,
{ 0xa0 , 0xff , 0x0020 } ,
{ 0xa0 , 0x03 , 0x009f } ,
{ 0xa0 , 0x4c , 0x00a0 } ,
{ 0xa0 , 0x50 , 0x011d } ,
{ 0xa0 , 0x40 , 0x0180 } ,
{ 0xa1 , 0x01 , 0x0180 } ,
{ 0xa0 , 0x42 , 0x0180 } ,
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0063 } , /* 00,a4,63,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x63 , 0x00a4 } , /* 00,a4,63,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x02 , 0x0191 } , /* 01,91,02,cc */
{ 0xa0 , 0x38 , 0x0192 } , /* 01,92,38,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x47 , 0x0197 } , /* 01,97,47,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0xd3 , 0x001d } , /* 00,1d,d3,cc */
{ 0xa0 , 0xda , 0x001e } , /* 00,1e,da,cc */
{ 0xa0 , 0xea , 0x001f } , /* 00,1f,ea,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x03 , 0x009f } , /* 00,9f,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0077 } , /* 00,a4,77,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x77 , 0x00a4 } , /* 00,a4,77,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x03 , 0x0191 } , /* 01,91,03,cc */
{ 0xa0 , 0xe8 , 0x0192 } , /* 01,92,e8,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x7d , 0x0197 } , /* 01,97,7d,cc */
{ 0xa0 , 0x14 , 0x018c } , /* 01,8c,14,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0xf0 , 0x001d } , /* 00,1d,f0,cc */
{ 0xa0 , 0xf4 , 0x001e } , /* 00,1e,f4,cc */
{ 0xa0 , 0xf8 , 0x001f } , /* 00,1f,f8,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x03 , 0x009f } , /* 00,9f,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0036 } , /* 00,a4,36,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x36 , 0x00a4 } , /* 00,a4,36,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x01 , 0x0191 } , /* 01,91,01,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x3e , 0x0197 } , /* 01,97,3e,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0xca , 0x001d } , /* 00,1d,ca,cc */
{ 0xa0 , 0xd0 , 0x001e } , /* 00,1e,d0,cc */
{ 0xa0 , 0xe0 , 0x001f } , /* 00,1f,e0,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x03 , 0x009f } , /* 00,9f,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0077 } , /* 00,a4,77,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x77 , 0x00a4 } , /* 00,a4,77,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x03 , 0x0191 } , /* 01,91,03,cc */
{ 0xa0 , 0xe8 , 0x0192 } , /* 01,92,e8,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x7d , 0x0197 } , /* 01,97,7d,cc */
{ 0xa0 , 0x14 , 0x018c } , /* 01,8c,14,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x0c , 0x01a9 } , /* 01,a9,0c,cc */
{ 0xa0 , 0x26 , 0x01aa } , /* 01,aa,26,cc */
{ 0xa0 , 0xc8 , 0x001d } , /* 00,1d,c8,cc */
{ 0xa0 , 0xd0 , 0x001e } , /* 00,1e,d0,cc */
{ 0xa0 , 0xe0 , 0x001f } , /* 00,1f,e0,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x03 , 0x009f } , /* 00,9f,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0040 } , /* 00,a4,40,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x40 , 0x00a4 } , /* 00,a4,40,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x01 , 0x0191 } , /* 01,91,01,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0xbc , 0x001d } , /* 00,1d,bc,cc */
{ 0xa0 , 0xd0 , 0x001e } , /* 00,1e,d0,cc */
{ 0xa0 , 0xe0 , 0x001f } , /* 00,1f,e0,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x02 , 0x009f } , /* 00,9f,02,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130cxx_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x00 , 0x0019 } , /* 00,19,00,cc */
{ 0xaa , 0xa3 , 0x0001 } , /* 00,a3,01,aa */
{ 0xaa , 0xa4 , 0x0090 } , /* 00,a4,90,aa */
{ 0xa0 , 0x01 , 0x00a3 } , /* 00,a3,01,cc */
{ 0xa0 , 0x90 , 0x00a4 } , /* 00,a4,90,cc */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc */
{ 0xa0 , 0x03 , 0x0191 } , /* 01,91,03,cc */
{ 0xa0 , 0xf0 , 0x0192 } , /* 01,92,f0,cc */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc */
{ 0xa0 , 0x10 , 0x018c } , /* 01,8c,10,cc */
{ 0xa0 , 0x20 , 0x018f } , /* 01,8f,20,cc */
{ 0xa0 , 0x00 , 0x01a9 } , /* 01,a9,00,cc */
{ 0xa0 , 0x00 , 0x01aa } , /* 01,aa,00,cc */
{ 0xa0 , 0xbc , 0x001d } , /* 00,1d,bc,cc */
{ 0xa0 , 0xd0 , 0x001e } , /* 00,1e,d0,cc */
{ 0xa0 , 0xe0 , 0x001f } , /* 00,1f,e0,cc */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc */
{ 0xa0 , 0x02 , 0x009f } , /* 00,9f,02,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_Initial [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc, */
{ 0xa0 , 0x02 , 0x0008 } , /* 00,08,02,cc, */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc, */
{ 0xa0 , 0x10 , 0x0002 } , /* 00,02,00,cc, 0<->10 */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc, */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc, */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc, */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc, */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc, */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc, */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc, */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc, */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc, */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc, */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc, */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc, */
{ 0xa0 , 0xe8 , 0x009c } , /* 00,9c,e6,cc, 6<->8 */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,86,cc, 6<->8 */
{ 0xa0 , 0x10 , 0x0087 } , /* 00,87,10,cc, */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc, */
{ 0xaa , 0x1b , 0x0024 } , /* 00,1b,24,aa, */
{ 0xdd , 0x00 , 0x0080 } , /* 00,00,80,dd, */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa, */
{ 0xaa , 0x13 , 0x0002 } , /* 00,13,02,aa, */
{ 0xaa , 0x15 , 0x0004 } , /* 00,15,04,aa */
{ 0xaa , 0x01 , 0x0000 } ,
{ 0xaa , 0x01 , 0x0000 } ,
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa, */
{ 0xaa , 0x1c , 0x0017 } , /* 00,1c,17,aa, */
{ 0xa0 , 0x82 , 0x0086 } , /* 00,86,82,cc, */
{ 0xa0 , 0x83 , 0x0087 } , /* 00,87,83,cc, */
{ 0xa0 , 0x84 , 0x0088 } , /* 00,88,84,cc, */
{ 0xaa , 0x05 , 0x0010 } , /* 00,05,10,aa, */
{ 0xaa , 0x0a , 0x0000 } , /* 00,0a,00,aa, */
{ 0xaa , 0x0b , 0x00a0 } , /* 00,0b,a0,aa, */
{ 0xaa , 0x0c , 0x0000 } , /* 00,0c,00,aa, */
{ 0xaa , 0x0d , 0x00a0 } , /* 00,0d,a0,aa, */
{ 0xaa , 0x0e , 0x0000 } , /* 00,0e,00,aa, */
{ 0xaa , 0x0f , 0x00a0 } , /* 00,0f,a0,aa, */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa, */
{ 0xaa , 0x11 , 0x00a0 } , /* 00,11,a0,aa, */
{ 0xa0 , 0x00 , 0x0039 } ,
{ 0xa1 , 0x01 , 0x0037 } ,
{ 0xaa , 0x16 , 0x0001 } , /* 00,16,01,aa, */
{ 0xaa , 0x17 , 0x00e8 } , /* 00,17,e6,aa, (e6 -> e8) */
{ 0xaa , 0x18 , 0x0002 } , /* 00,18,02,aa, */
{ 0xaa , 0x19 , 0x0088 } , /* 00,19,86,aa, */
{ 0xaa , 0x20 , 0x0020 } , /* 00,20,20,aa, */
{ 0xa0 , 0xb7 , 0x0101 } , /* 01,01,b7,cc, */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc, */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc, */
{ 0xa0 , 0x76 , 0x0189 } , /* 01,89,76,cc, */
{ 0xa0 , 0x09 , 0x01ad } , /* 01,ad,09,cc, */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc, */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc, */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc, */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc, */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc, */
{ 0xa0 , 0x61 , 0x0116 } , /* 01,16,61,cc, */
{ 0xa0 , 0x65 , 0x0118 } , /* 01,18,65,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_InitialScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x01 , 0x0000 } , /* 00,00,01,cc, */
{ 0xa0 , 0x02 , 0x0008 } , /* 00,08,02,cc, */
{ 0xa0 , 0x01 , 0x0010 } , /* 00,10,01,cc, */
{ 0xa0 , 0x00 , 0x0002 } , /* 00,02,10,cc, */
{ 0xa0 , 0x02 , 0x0003 } , /* 00,03,02,cc, */
{ 0xa0 , 0x80 , 0x0004 } , /* 00,04,80,cc, */
{ 0xa0 , 0x01 , 0x0005 } , /* 00,05,01,cc, */
{ 0xa0 , 0xe0 , 0x0006 } , /* 00,06,e0,cc, */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc, */
{ 0xa0 , 0x01 , 0x0001 } , /* 00,01,01,cc, */
{ 0xa0 , 0x03 , 0x0012 } , /* 00,12,03,cc, */
{ 0xa0 , 0x01 , 0x0012 } , /* 00,12,01,cc, */
{ 0xa0 , 0x00 , 0x0098 } , /* 00,98,00,cc, */
{ 0xa0 , 0x00 , 0x009a } , /* 00,9a,00,cc, */
{ 0xa0 , 0x00 , 0x011a } , /* 01,1a,00,cc, */
{ 0xa0 , 0x00 , 0x011c } , /* 01,1c,00,cc, */
{ 0xa0 , 0xe8 , 0x009c } , /* 00,9c,e8,cc, 8<->6 */
{ 0xa0 , 0x88 , 0x009e } , /* 00,9e,88,cc, 8<->6 */
{ 0xa0 , 0x10 , 0x0087 } , /* 00,87,10,cc, */
{ 0xa0 , 0x98 , 0x008b } , /* 00,8b,98,cc, */
{ 0xaa , 0x1b , 0x0024 } , /* 00,1b,24,aa, */
{ 0xdd , 0x00 , 0x0080 } , /* 00,00,80,dd, */
{ 0xaa , 0x1b , 0x0000 } , /* 00,1b,00,aa, */
{ 0xaa , 0x13 , 0x0002 } , /* 00,13,02,aa, */
{ 0xaa , 0x15 , 0x0004 } , /* 00,15,04,aa */
{ 0xaa , 0x01 , 0x0000 } ,
{ 0xaa , 0x01 , 0x0000 } ,
{ 0xaa , 0x1a , 0x0000 } , /* 00,1a,00,aa, */
{ 0xaa , 0x1c , 0x0017 } , /* 00,1c,17,aa, */
{ 0xa0 , 0x82 , 0x0086 } , /* 00,86,82,cc, */
{ 0xa0 , 0x83 , 0x0087 } , /* 00,87,83,cc, */
{ 0xa0 , 0x84 , 0x0088 } , /* 00,88,84,cc, */
{ 0xaa , 0x05 , 0x0010 } , /* 00,05,10,aa, */
{ 0xaa , 0x0a , 0x0000 } , /* 00,0a,00,aa, */
{ 0xaa , 0x0b , 0x00a0 } , /* 00,0b,a0,aa, */
{ 0xaa , 0x0c , 0x0000 } , /* 00,0c,00,aa, */
{ 0xaa , 0x0d , 0x00a0 } , /* 00,0d,a0,aa, */
{ 0xaa , 0x0e , 0x0000 } , /* 00,0e,00,aa, */
{ 0xaa , 0x0f , 0x00a0 } , /* 00,0f,a0,aa, */
{ 0xaa , 0x10 , 0x0000 } , /* 00,10,00,aa, */
{ 0xaa , 0x11 , 0x00a0 } , /* 00,11,a0,aa, */
{ 0xa0 , 0x00 , 0x0039 } ,
{ 0xa1 , 0x01 , 0x0037 } ,
{ 0xaa , 0x16 , 0x0001 } , /* 00,16,01,aa, */
{ 0xaa , 0x17 , 0x00e8 } , /* 00,17,e6,aa (e6 -> e8) */
{ 0xaa , 0x18 , 0x0002 } , /* 00,18,02,aa, */
{ 0xaa , 0x19 , 0x0088 } , /* 00,19,88,aa, */
{ 0xaa , 0x20 , 0x0020 } , /* 00,20,20,aa, */
{ 0xa0 , 0xb7 , 0x0101 } , /* 01,01,b7,cc, */
{ 0xa0 , 0x05 , 0x0012 } , /* 00,12,05,cc, */
{ 0xa0 , 0x0d , 0x0100 } , /* 01,00,0d,cc, */
{ 0xa0 , 0x76 , 0x0189 } , /* 01,89,76,cc, */
{ 0xa0 , 0x09 , 0x01ad } , /* 01,ad,09,cc, */
{ 0xa0 , 0x03 , 0x01c5 } , /* 01,c5,03,cc, */
{ 0xa0 , 0x13 , 0x01cb } , /* 01,cb,13,cc, */
{ 0xa0 , 0x08 , 0x0250 } , /* 02,50,08,cc, */
{ 0xa0 , 0x08 , 0x0301 } , /* 03,01,08,cc, */
{ 0xa0 , 0x60 , 0x01a8 } , /* 01,a8,60,cc, */
{ 0xa0 , 0x61 , 0x0116 } , /* 01,16,61,cc, */
{ 0xa0 , 0x65 , 0x0118 } , /* 01,18,65,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "50HZ" light frequency banding filter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_50HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0001 } , /* 00,83,01,aa */
{ 0xaa , 0x84 , 0x00aa } , /* 00,84,aa,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc, */
{ 0xa0 , 0x06 , 0x0191 } , /* 01,91,0d,cc, */
{ 0xa0 , 0xa8 , 0x0192 } , /* 01,92,50,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc, */
{ 0xa0 , 0x8e , 0x0197 } , /* 01,97,47,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc, */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc, */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc, */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc, */
{ 0xa0 , 0x78 , 0x018d } , /* 01,8d,78,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "50HZScale" light frequency banding filter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_50HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0003 } , /* 00,83,03,aa */
{ 0xaa , 0x84 , 0x0054 } , /* 00,84,54,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc, */
{ 0xa0 , 0x0d , 0x0191 } , /* 01,91,0d,cc, */
{ 0xa0 , 0x50 , 0x0192 } , /* 01,92,50,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc, */
{ 0xa0 , 0x8e , 0x0197 } , /* 01,97,8e,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc, */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc, */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc, */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc, */
{ 0xa0 , 0x78 , 0x018d } , /* 01,8d,78,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "60HZ" light frequency banding filter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_60HZ [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0001 } , /* 00,83,01,aa */
{ 0xaa , 0x84 , 0x0062 } , /* 00,84,62,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc, */
{ 0xa0 , 0x05 , 0x0191 } , /* 01,91,05,cc, */
{ 0xa0 , 0x88 , 0x0192 } , /* 01,92,88,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc, */
{ 0xa0 , 0x3b , 0x0197 } , /* 01,97,3b,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc, */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,a9,10,cc, */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,aa,24,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc, */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc, */
{ 0xa0 , 0x78 , 0x018d } , /* 01,8d,78,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "60HZScale" light frequency banding ilter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_60HZScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0002 } , /* 00,83,02,aa */
{ 0xaa , 0x84 , 0x00c4 } , /* 00,84,c4,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc, */
{ 0xa0 , 0x0b , 0x0191 } , /* 01,1,0b,cc, */
{ 0xa0 , 0x10 , 0x0192 } , /* 01,2,10,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,5,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,6,00,cc, */
{ 0xa0 , 0x76 , 0x0197 } , /* 01,7,76,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,f,15,cc, */
{ 0xa0 , 0x10 , 0x01a9 } , /* 01,9,10,cc, */
{ 0xa0 , 0x24 , 0x01aa } , /* 01,a,24,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,0,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,d,58,cc, */
{ 0xa0 , 0x42 , 0x0180 } , /* 01,80,42,cc, */
{ 0xa0 , 0x78 , 0x018d } , /* 01,d,78,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "NoFliker" light frequency banding flter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_NoFliker [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x0c , 0x0100 } , /* 01,00,0c,cc, */
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0000 } , /* 00,83,00,aa */
{ 0xaa , 0x84 , 0x0020 } , /* 00,84,20,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,0,00,cc, */
{ 0xa0 , 0x05 , 0x0191 } , /* 01,91,05,cc, */
{ 0xa0 , 0x88 , 0x0192 } , /* 01,92,88,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc, */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc, */
{ 0xa0 , 0x03 , 0x0180 } , /* 01,80,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
/* "NoFlikerScale" light frequency banding filter */
2008-07-04 11:16:16 -03:00
static const struct usb_action tas5130c_vf0250_NoFlikerScale [ ] = {
2008-06-12 10:58:58 -03:00
{ 0xa0 , 0x0c , 0x0100 } , /* 01,00,0c,cc, */
{ 0xaa , 0x82 , 0x0000 } , /* 00,82,00,aa */
{ 0xaa , 0x83 , 0x0000 } , /* 00,83,00,aa */
{ 0xaa , 0x84 , 0x0020 } , /* 00,84,20,aa */
{ 0xa0 , 0x00 , 0x0190 } , /* 01,90,00,cc, */
{ 0xa0 , 0x0b , 0x0191 } , /* 01,91,0b,cc, */
{ 0xa0 , 0x10 , 0x0192 } , /* 01,92,10,cc, */
{ 0xa0 , 0x00 , 0x0195 } , /* 01,95,00,cc, */
{ 0xa0 , 0x00 , 0x0196 } , /* 01,96,00,cc, */
{ 0xa0 , 0x10 , 0x0197 } , /* 01,97,10,cc, */
{ 0xa0 , 0x0e , 0x018c } , /* 01,8c,0e,cc, */
{ 0xa0 , 0x15 , 0x018f } , /* 01,8f,15,cc, */
{ 0xa0 , 0x62 , 0x001d } , /* 00,1d,62,cc, */
{ 0xa0 , 0x90 , 0x001e } , /* 00,1e,90,cc, */
{ 0xa0 , 0xc8 , 0x001f } , /* 00,1f,c8,cc, */
{ 0xa0 , 0xff , 0x0020 } , /* 00,20,ff,cc, */
{ 0xa0 , 0x58 , 0x011d } , /* 01,1d,58,cc, */
{ 0xa0 , 0x03 , 0x0180 } , /* 01,80,03,cc */
2008-06-30 15:50:11 -03:00
{ }
2008-06-12 10:58:58 -03:00
} ;
static void reg_r_i ( struct usb_device * dev ,
__u16 index , __u8 * buffer )
{
usb_control_msg ( dev ,
usb_rcvctrlpipe ( dev , 0 ) ,
0xa1 ,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE ,
0x01 , /* value */
index , buffer , 1 ,
500 ) ;
}
static void reg_r ( struct usb_device * dev ,
__u16 index , __u8 * buffer )
{
reg_r_i ( dev , index , buffer ) ;
PDEBUG ( D_USBI , " reg r [%04x] -> %02x " , index , * buffer ) ;
}
static void reg_w_i ( struct usb_device * dev ,
__u8 value ,
__u16 index )
{
usb_control_msg ( dev ,
usb_sndctrlpipe ( dev , 0 ) ,
0xa0 ,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE ,
value , index , NULL , 0 ,
500 ) ;
}
static void reg_w ( struct usb_device * dev ,
__u8 value ,
__u16 index )
{
PDEBUG ( D_USBO , " reg w %02x -> [%04x] " , value , index ) ;
reg_w_i ( dev , value , index ) ;
}
static __u16 i2c_read ( struct usb_device * dev , __u8 reg )
{
__u8 retbyte ;
__u8 retval [ 2 ] ;
reg_w_i ( dev , reg , 0x92 ) ;
reg_w_i ( dev , 0x02 , 0x90 ) ; /* <- read command */
msleep ( 25 ) ;
reg_r_i ( dev , 0x0091 , & retbyte ) ; /* read status */
reg_r_i ( dev , 0x0095 , & retval [ 0 ] ) ; /* read Lowbyte */
reg_r_i ( dev , 0x0096 , & retval [ 1 ] ) ; /* read Hightbyte */
PDEBUG ( D_USBO , " i2c r [%02x] -> (%02x) %02x%02x " ,
reg , retbyte , retval [ 1 ] , retval [ 0 ] ) ;
return ( retval [ 1 ] < < 8 ) | retval [ 0 ] ;
}
static __u8 i2c_write ( struct usb_device * dev ,
__u8 reg ,
__u8 valL ,
__u8 valH )
{
__u8 retbyte ;
reg_w_i ( dev , reg , 0x92 ) ;
reg_w_i ( dev , valL , 0x93 ) ;
reg_w_i ( dev , valH , 0x94 ) ;
reg_w_i ( dev , 0x01 , 0x90 ) ; /* <- write command */
msleep ( 5 ) ;
reg_r_i ( dev , 0x0091 , & retbyte ) ; /* read status */
PDEBUG ( D_USBO , " i2c w [%02x] %02x%02x (%02x) " ,
reg , valH , valL , retbyte ) ;
return retbyte ;
}
static void usb_exchange ( struct usb_device * dev ,
2008-07-04 11:16:16 -03:00
const struct usb_action * action )
2008-06-12 10:58:58 -03:00
{
__u8 buffread ;
while ( action - > req ) {
switch ( action - > req ) {
case 0xa0 : /* write register */
reg_w ( dev , action - > val , action - > idx ) ;
break ;
case 0xa1 : /* read status */
reg_r ( dev , action - > idx , & buffread ) ;
break ;
case 0xaa :
i2c_write ( dev ,
action - > val , /* reg */
action - > idx & 0xff , /* valL */
action - > idx > > 8 ) ; /* valH */
break ;
default :
/* case 0xdd: * delay */
msleep ( action - > val / 64 + 10 ) ;
break ;
}
action + + ;
/* msleep(1); */
}
}
static void setmatrix ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
int i ;
2008-07-04 11:16:16 -03:00
const __u8 * matrix ;
static const __u8 gc0305_matrix [ 9 ] =
2008-06-12 10:58:58 -03:00
{ 0x50 , 0xf8 , 0xf8 , 0xf8 , 0x50 , 0xf8 , 0xf8 , 0xf8 , 0x50 } ;
2008-07-04 11:16:16 -03:00
static const __u8 ov7620_matrix [ 9 ] =
2008-06-12 10:58:58 -03:00
{ 0x58 , 0xf4 , 0xf4 , 0xf4 , 0x58 , 0xf4 , 0xf4 , 0xf4 , 0x58 } ;
2008-07-04 11:16:16 -03:00
static const __u8 po2030_matrix [ 9 ] =
2008-06-12 10:58:58 -03:00
{ 0x60 , 0xf0 , 0xf0 , 0xf0 , 0x60 , 0xf0 , 0xf0 , 0xf0 , 0x60 } ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
matrix = gc0305_matrix ;
break ;
case SENSOR_MC501CB :
return ; /* no matrix? */
case SENSOR_OV7620 :
/* case SENSOR_OV7648: */
matrix = ov7620_matrix ;
break ;
case SENSOR_PO2030 :
matrix = po2030_matrix ;
break ;
case SENSOR_TAS5130C_VF0250 : /* no matrix? */
return ;
default : /* matrix already loaded */
return ;
}
for ( i = 0 ; i < ARRAY_SIZE ( ov7620_matrix ) ; i + + )
reg_w ( gspca_dev - > dev , matrix [ i ] , 0x010a + i ) ;
}
static void setbrightness ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
__u8 brightness ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
case SENSOR_OV7620 :
case SENSOR_PO2030 :
return ;
}
2008-06-30 15:50:11 -03:00
/*fixme: is it really write to 011d and 018d for all other sensors? */
2008-06-12 10:58:58 -03:00
brightness = sd - > brightness ;
reg_w ( gspca_dev - > dev , brightness , 0x011d ) ;
if ( brightness < 0x70 )
brightness + = 0x10 ;
else
brightness = 0x80 ;
reg_w ( gspca_dev - > dev , brightness , 0x018d ) ;
}
static void setsharpness ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
int sharpness ;
__u8 retbyte ;
2008-07-04 11:16:16 -03:00
static const __u8 sharpness_tb [ ] [ 2 ] = {
2008-06-12 10:58:58 -03:00
{ 0x02 , 0x03 } ,
{ 0x04 , 0x07 } ,
{ 0x08 , 0x0f } ,
{ 0x10 , 0x1e }
} ;
2008-06-30 15:50:11 -03:00
sharpness = sd - > sharpness ;
2008-06-12 10:58:58 -03:00
reg_w ( dev , sharpness_tb [ sharpness ] [ 0 ] , 0x01c6 ) ;
reg_r ( dev , 0x01c8 , & retbyte ) ;
reg_r ( dev , 0x01c9 , & retbyte ) ;
reg_r ( dev , 0x01ca , & retbyte ) ;
reg_w ( dev , sharpness_tb [ sharpness ] [ 1 ] , 0x01cb ) ;
}
static void setcontrast ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
2008-07-04 11:16:16 -03:00
const __u8 * Tgamma , * Tgradient ;
2008-06-12 10:58:58 -03:00
int g , i , k ;
2008-07-04 11:16:16 -03:00
static const __u8 kgamma_tb [ 16 ] = /* delta for contrast */
2008-06-12 10:58:58 -03:00
{ 0x15 , 0x0d , 0x0a , 0x09 , 0x08 , 0x08 , 0x08 , 0x08 ,
0x08 , 0x08 , 0x08 , 0x08 , 0x08 , 0x08 , 0x08 , 0x08 } ;
2008-07-04 11:16:16 -03:00
static const __u8 kgrad_tb [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x1b , 0x06 , 0x03 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x06 , 0x04 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_1 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x00 , 0x00 , 0x03 , 0x0d , 0x1b , 0x2e , 0x45 , 0x5f ,
0x79 , 0x93 , 0xab , 0xc1 , 0xd4 , 0xe5 , 0xf3 , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_1 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x00 , 0x01 , 0x05 , 0x0b , 0x10 , 0x15 , 0x18 , 0x1a ,
0x1a , 0x18 , 0x16 , 0x14 , 0x12 , 0x0f , 0x0d , 0x06 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_2 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x01 , 0x0c , 0x1f , 0x3a , 0x53 , 0x6d , 0x85 , 0x9c ,
0xb0 , 0xc2 , 0xd1 , 0xde , 0xe9 , 0xf2 , 0xf9 , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_2 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x05 , 0x0f , 0x16 , 0x1a , 0x19 , 0x19 , 0x17 , 0x15 ,
0x12 , 0x10 , 0x0e , 0x0b , 0x09 , 0x08 , 0x06 , 0x03 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_3 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x04 , 0x16 , 0x30 , 0x4e , 0x68 , 0x81 , 0x98 , 0xac ,
0xbe , 0xcd , 0xda , 0xe4 , 0xed , 0xf5 , 0xfb , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_3 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x0c , 0x16 , 0x1b , 0x1c , 0x19 , 0x18 , 0x15 , 0x12 ,
0x10 , 0x0d , 0x0b , 0x09 , 0x08 , 0x06 , 0x05 , 0x03 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_4 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x13 , 0x38 , 0x59 , 0x79 , 0x92 , 0xa7 , 0xb9 , 0xc8 ,
0xd4 , 0xdf , 0xe7 , 0xee , 0xf4 , 0xf9 , 0xfc , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_4 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x26 , 0x22 , 0x20 , 0x1c , 0x16 , 0x13 , 0x10 , 0x0d ,
0x0b , 0x09 , 0x07 , 0x06 , 0x05 , 0x04 , 0x03 , 0x02 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_5 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x20 , 0x4b , 0x6e , 0x8d , 0xa3 , 0xb5 , 0xc5 , 0xd2 ,
0xdc , 0xe5 , 0xec , 0xf2 , 0xf6 , 0xfa , 0xfd , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_5 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x37 , 0x26 , 0x20 , 0x1a , 0x14 , 0x10 , 0x0e , 0x0b ,
0x09 , 0x07 , 0x06 , 0x05 , 0x04 , 0x03 , 0x02 , 0x02 } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgamma_6 [ 16 ] = /* ?? was gamma 5 */
2008-06-12 10:58:58 -03:00
{ 0x24 , 0x44 , 0x64 , 0x84 , 0x9d , 0xb2 , 0xc4 , 0xd3 ,
0xe0 , 0xeb , 0xf4 , 0xff , 0xff , 0xff , 0xff , 0xff } ;
2008-07-04 11:16:16 -03:00
static const __u8 Tgradient_6 [ 16 ] =
2008-06-12 10:58:58 -03:00
{ 0x18 , 0x20 , 0x20 , 0x1c , 0x16 , 0x13 , 0x10 , 0x0e ,
0x0b , 0x09 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 } ;
2008-07-04 11:16:16 -03:00
static const __u8 * gamma_tb [ ] = {
2008-07-05 06:12:47 -03:00
NULL , Tgamma_1 , Tgamma_2 ,
2008-06-12 10:58:58 -03:00
Tgamma_3 , Tgamma_4 , Tgamma_5 , Tgamma_6
} ;
2008-07-04 11:16:16 -03:00
static const __u8 * gradient_tb [ ] = {
2008-07-05 06:12:47 -03:00
NULL , Tgradient_1 , Tgradient_2 ,
2008-06-12 10:58:58 -03:00
Tgradient_3 , Tgradient_4 , Tgradient_5 , Tgradient_6
} ;
2008-07-03 06:48:22 -03:00
# ifdef CONFIG_VIDEO_ADV_DEBUG
2008-06-12 10:58:58 -03:00
__u8 v [ 16 ] ;
# endif
Tgamma = gamma_tb [ sd - > gamma ] ;
Tgradient = gradient_tb [ sd - > gamma ] ;
k = ( sd - > contrast - 128 ) /* -128 / 128 */
* Tgamma [ 0 ] ;
PDEBUG ( D_CONF , " gamma:%d contrast:%d gamma coeff: %d/128 " ,
sd - > gamma , sd - > contrast , k ) ;
for ( i = 0 ; i < 16 ; i + + ) {
g = Tgamma [ i ] + kgamma_tb [ i ] * k / 128 ;
if ( g > 0xff )
g = 0xff ;
else if ( g < = 0 )
g = 1 ;
reg_w ( dev , g , 0x0120 + i ) ; /* gamma */
2008-07-03 06:48:22 -03:00
# ifdef CONFIG_VIDEO_ADV_DEBUG
2008-06-12 10:58:58 -03:00
if ( gspca_debug & D_CONF )
v [ i ] = g ;
# endif
}
PDEBUG ( D_CONF , " tb: %02x %02x %02x %02x %02x %02x %02x %02x " ,
v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] , v [ 4 ] , v [ 5 ] , v [ 6 ] , v [ 7 ] ) ;
PDEBUG ( D_CONF , " %02x %02x %02x %02x %02x %02x %02x %02x " ,
v [ 8 ] , v [ 9 ] , v [ 10 ] , v [ 11 ] , v [ 12 ] , v [ 13 ] , v [ 14 ] , v [ 15 ] ) ;
for ( i = 0 ; i < 16 ; i + + ) {
g = Tgradient [ i ] - kgrad_tb [ i ] * k / 128 ;
if ( g > 0xff )
g = 0xff ;
else if ( g < = 0 ) {
if ( i ! = 15 )
g = 0 ;
else
g = 1 ;
}
reg_w ( dev , g , 0x0130 + i ) ; /* gradient */
2008-07-03 06:48:22 -03:00
# ifdef CONFIG_VIDEO_ADV_DEBUG
2008-06-12 10:58:58 -03:00
if ( gspca_debug & D_CONF )
v [ i ] = g ;
# endif
}
PDEBUG ( D_CONF , " %02x %02x %02x %02x %02x %02x %02x %02x " ,
v [ 0 ] , v [ 1 ] , v [ 2 ] , v [ 3 ] , v [ 4 ] , v [ 5 ] , v [ 6 ] , v [ 7 ] ) ;
PDEBUG ( D_CONF , " %02x %02x %02x %02x %02x %02x %02x %02x " ,
v [ 8 ] , v [ 9 ] , v [ 10 ] , v [ 11 ] , v [ 12 ] , v [ 13 ] , v [ 14 ] , v [ 15 ] ) ;
}
static void setquality ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
__u8 quality ;
__u8 frxt ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
case SENSOR_OV7620 :
case SENSOR_PO2030 :
return ;
}
/*fixme: is it really 0008 0007 0018 for all other sensors? */
2008-06-30 15:50:11 -03:00
quality = sd - > qindex ;
2008-06-12 10:58:58 -03:00
reg_w ( dev , quality , 0x0008 ) ;
frxt = 0x30 ;
reg_w ( dev , frxt , 0x0007 ) ;
switch ( quality ) {
case 0 :
case 1 :
case 2 :
frxt = 0xff ;
break ;
case 3 :
frxt = 0xf0 ;
break ;
case 4 :
frxt = 0xe0 ;
break ;
case 5 :
frxt = 0x20 ;
break ;
}
reg_w ( dev , frxt , 0x0018 ) ;
}
/* Matches the sensor's internal frame rate to the lighting frequency.
* Valid frequencies are :
* 50 Hz , for European and Asian lighting ( default )
* 60 Hz , for American lighting
* 0 = No Fliker ( for outdoore usage )
* Returns : 0 for success
*/
static int setlightfreq ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
int i , mode ;
2008-07-04 11:16:16 -03:00
const struct usb_action * zc3_freq ;
static const struct usb_action * freq_tb [ SENSOR_MAX ] [ 6 ] = {
2008-06-12 10:58:58 -03:00
/* SENSOR_CS2102 0 */
2008-06-30 15:50:11 -03:00
{ cs2102_NoFliker , cs2102_NoFlikerScale ,
cs2102_50HZ , cs2102_50HZScale ,
cs2102_60HZ , cs2102_60HZScale } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_CS2102K 1 */
2008-06-30 15:50:11 -03:00
{ cs2102_NoFliker , cs2102_NoFlikerScale ,
cs2102_50HZ , cs2102_50HZScale ,
cs2102_60HZ , cs2102_60HZScale } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_GC0305 2 */
2008-06-30 15:50:11 -03:00
{ gc0305_NoFliker , gc0305_NoFliker ,
gc0305_50HZ , gc0305_50HZ ,
gc0305_60HZ , gc0305_60HZ } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_HDCS2020 3 */
2008-07-05 06:12:47 -03:00
{ NULL , NULL ,
NULL , NULL ,
NULL , NULL } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_HDCS2020b 4 */
2008-06-30 15:50:11 -03:00
{ hdcs2020b_NoFliker , hdcs2020b_NoFliker ,
hdcs2020b_50HZ , hdcs2020b_50HZ ,
hdcs2020b_60HZ , hdcs2020b_60HZ } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_HV7131B 5 */
2008-07-05 06:12:47 -03:00
{ NULL , NULL ,
NULL , NULL ,
NULL , NULL } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_HV7131C 6 */
2008-07-05 06:12:47 -03:00
{ NULL , NULL ,
NULL , NULL ,
NULL , NULL } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_ICM105A 7 */
2008-06-30 15:50:11 -03:00
{ icm105a_NoFliker , icm105a_NoFlikerScale ,
icm105a_50HZ , icm105a_50HZScale ,
icm105a_60HZ , icm105a_60HZScale } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_MC501CB 8 */
2008-06-30 15:50:11 -03:00
{ MC501CB_NoFliker , MC501CB_NoFlikerScale ,
MC501CB_50HZ , MC501CB_50HZScale ,
MC501CB_60HZ , MC501CB_60HZScale } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_OV7620 9 */
2008-06-30 15:50:11 -03:00
{ OV7620_NoFliker , OV7620_NoFliker ,
OV7620_50HZ , OV7620_50HZ ,
OV7620_60HZ , OV7620_60HZ } ,
2008-06-12 10:58:58 -03:00
/* SENSOR_OV7630C 10 */
2008-07-05 06:12:47 -03:00
{ NULL , NULL ,
NULL , NULL ,
NULL , NULL } ,
2008-06-30 15:50:11 -03:00
/* SENSOR_PAS106 11 */
{ pas106b_NoFliker , pas106b_NoFliker ,
pas106b_50HZ , pas106b_50HZ ,
pas106b_60HZ , pas106b_60HZ } ,
/* SENSOR_PB0330 12 */
{ pb0330_NoFliker , pb0330_NoFlikerScale ,
pb0330_50HZ , pb0330_50HZScale ,
pb0330_60HZ , pb0330_60HZScale } ,
/* SENSOR_PO2030 13 */
{ PO2030_NoFliker , PO2030_NoFliker ,
PO2030_50HZ , PO2030_50HZ ,
PO2030_60HZ , PO2030_60HZ } ,
/* SENSOR_TAS5130CK 14 */
{ tas5130cxx_NoFliker , tas5130cxx_NoFlikerScale ,
tas5130cxx_50HZ , tas5130cxx_50HZScale ,
tas5130cxx_60HZ , tas5130cxx_60HZScale } ,
/* SENSOR_TAS5130CXX 15 */
{ tas5130cxx_NoFliker , tas5130cxx_NoFlikerScale ,
tas5130cxx_50HZ , tas5130cxx_50HZScale ,
tas5130cxx_60HZ , tas5130cxx_60HZScale } ,
/* SENSOR_TAS5130C_VF0250 16 */
{ tas5130c_vf0250_NoFliker , tas5130c_vf0250_NoFlikerScale ,
tas5130c_vf0250_50HZ , tas5130c_vf0250_50HZScale ,
tas5130c_vf0250_60HZ , tas5130c_vf0250_60HZScale } ,
2008-06-12 10:58:58 -03:00
} ;
2008-06-30 15:50:11 -03:00
i = sd - > lightfreq * 2 ;
2008-07-05 11:49:20 -03:00
mode = gspca_dev - > cam . cam_mode [ ( int ) gspca_dev - > curr_mode ] . priv ;
2008-06-12 10:58:58 -03:00
if ( ! mode )
i + + ; /* 640x480 */
zc3_freq = freq_tb [ ( int ) sd - > sensor ] [ i ] ;
2008-07-05 06:12:47 -03:00
if ( zc3_freq ! = NULL ) {
2008-06-12 10:58:58 -03:00
usb_exchange ( gspca_dev - > dev , zc3_freq ) ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
if ( mode /* if 320x240 */
2008-06-30 15:50:11 -03:00
& & sd - > lightfreq = = 1 ) /* and 50Hz */
2008-06-12 10:58:58 -03:00
reg_w ( gspca_dev - > dev , 0x85 , 0x018d ) ;
/* win: 0x80, 0x018d */
break ;
case SENSOR_OV7620 :
if ( ! mode ) { /* if 640x480 */
2008-06-30 15:50:11 -03:00
if ( sd - > lightfreq ! = 0 ) /* and 50 or 60 Hz */
2008-06-12 10:58:58 -03:00
reg_w ( gspca_dev - > dev , 0x40 , 0x0002 ) ;
else
reg_w ( gspca_dev - > dev , 0x44 , 0x0002 ) ;
}
break ;
}
}
return 0 ;
}
static void setautogain ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
__u8 autoval ;
if ( sd - > autogain )
autoval = 0x42 ;
else
autoval = 0x02 ;
reg_w ( gspca_dev - > dev , autoval , 0x0180 ) ;
}
static void send_unknown ( struct usb_device * dev , int sensor )
{
2008-06-30 15:50:11 -03:00
reg_w ( dev , 0x01 , 0x0000 ) ; /* led off */
2008-06-12 10:58:58 -03:00
switch ( sensor ) {
case SENSOR_PAS106 :
reg_w ( dev , 0x03 , 0x003a ) ;
reg_w ( dev , 0x0c , 0x003b ) ;
reg_w ( dev , 0x08 , 0x0038 ) ;
break ;
case SENSOR_GC0305 :
case SENSOR_OV7620 :
case SENSOR_PB0330 :
case SENSOR_PO2030 :
reg_w ( dev , 0x0d , 0x003a ) ;
reg_w ( dev , 0x02 , 0x003b ) ;
reg_w ( dev , 0x00 , 0x0038 ) ;
break ;
}
}
/* start probe 2 wires */
static void start_2wr_probe ( struct usb_device * dev , int sensor )
{
reg_w ( dev , 0x01 , 0x0000 ) ;
reg_w ( dev , sensor , 0x0010 ) ;
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0x03 , 0x0012 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
/* msleep(2); */
}
static int sif_probe ( struct usb_device * dev )
{
__u16 checkword ;
start_2wr_probe ( dev , 0x0f ) ; /* PAS106 */
reg_w ( dev , 0x08 , 0x008d ) ;
msleep ( 150 ) ;
checkword = ( ( i2c_read ( dev , 0x00 ) & 0x0f ) < < 4 )
| ( ( i2c_read ( dev , 0x01 ) & 0xf0 ) > > 4 ) ;
PDEBUG ( D_PROBE , " probe sif 0x%04x " , checkword ) ;
if ( checkword = = 0x0007 ) {
send_unknown ( dev , SENSOR_PAS106 ) ;
return 0x0f ; /* PAS106 */
}
return - 1 ;
}
static int vga_2wr_probe ( struct usb_device * dev )
{
__u8 retbyte ;
__u16 checkword ;
start_2wr_probe ( dev , 0x00 ) ; /* HV7131B */
i2c_write ( dev , 0x01 , 0xaa , 0x00 ) ;
retbyte = i2c_read ( dev , 0x01 ) ;
if ( retbyte ! = 0 )
return 0x00 ; /* HV7131B */
start_2wr_probe ( dev , 0x04 ) ; /* CS2102 */
i2c_write ( dev , 0x01 , 0xaa , 0x00 ) ;
retbyte = i2c_read ( dev , 0x01 ) ;
if ( retbyte ! = 0 )
return 0x04 ; /* CS2102 */
start_2wr_probe ( dev , 0x06 ) ; /* OmniVision */
reg_w ( dev , 0x08 , 0x8d ) ;
i2c_write ( dev , 0x11 , 0xaa , 0x00 ) ;
retbyte = i2c_read ( dev , 0x11 ) ;
if ( retbyte ! = 0 ) {
/* (should have returned 0xaa) --> Omnivision? */
/* reg_r 0x10 -> 0x06 --> */
goto ov_check ;
}
start_2wr_probe ( dev , 0x08 ) ; /* HDCS2020 */
i2c_write ( dev , 0x15 , 0xaa , 0x00 ) ;
retbyte = i2c_read ( dev , 0x15 ) ;
if ( retbyte ! = 0 )
return 0x08 ; /* HDCS2020 */
start_2wr_probe ( dev , 0x0a ) ; /* PB0330 */
i2c_write ( dev , 0x07 , 0xaa , 0xaa ) ;
retbyte = i2c_read ( dev , 0x07 ) ;
if ( retbyte ! = 0 )
return 0x0a ; /* PB0330 */
retbyte = i2c_read ( dev , 0x03 ) ;
if ( retbyte ! = 0 )
return 0x0a ; /* PB0330 ?? */
retbyte = i2c_read ( dev , 0x04 ) ;
if ( retbyte ! = 0 )
return 0x0a ; /* PB0330 ?? */
start_2wr_probe ( dev , 0x0c ) ; /* ICM105A */
i2c_write ( dev , 0x01 , 0x11 , 0x00 ) ;
retbyte = i2c_read ( dev , 0x01 ) ;
if ( retbyte ! = 0 )
return 0x0c ; /* ICM105A */
start_2wr_probe ( dev , 0x0e ) ; /* PAS202BCB */
reg_w ( dev , 0x08 , 0x8d ) ;
i2c_write ( dev , 0x03 , 0xaa , 0x00 ) ;
msleep ( 500 ) ;
retbyte = i2c_read ( dev , 0x03 ) ;
if ( retbyte ! = 0 )
return 0x0e ; /* PAS202BCB */
start_2wr_probe ( dev , 0x02 ) ; /* ?? */
i2c_write ( dev , 0x01 , 0xaa , 0x00 ) ;
retbyte = i2c_read ( dev , 0x01 ) ;
if ( retbyte ! = 0 )
return 0x02 ; /* ?? */
ov_check :
reg_r ( dev , 0x0010 , & retbyte ) ; /* ?? */
reg_r ( dev , 0x0010 , & retbyte ) ;
reg_w ( dev , 0x01 , 0x0000 ) ;
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0x06 , 0x0010 ) ; /* OmniVision */
reg_w ( dev , 0xa1 , 0x008b ) ;
reg_w ( dev , 0x08 , 0x008d ) ;
msleep ( 500 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
i2c_write ( dev , 0x12 , 0x80 , 0x00 ) ; /* sensor reset */
retbyte = i2c_read ( dev , 0x0a ) ;
checkword = retbyte < < 8 ;
retbyte = i2c_read ( dev , 0x0b ) ;
checkword | = retbyte ;
PDEBUG ( D_PROBE , " probe 2wr ov vga 0x%04x " , checkword ) ;
switch ( checkword ) {
case 0x7631 : /* OV7630C */
reg_w ( dev , 0x06 , 0x0010 ) ;
break ;
case 0x7620 : /* OV7620 */
case 0x7648 : /* OV7648 */
break ;
default :
return - 1 ; /* not OmniVision */
}
return checkword ;
}
struct sensor_by_chipset_revision {
__u16 revision ;
__u8 internal_sensor_id ;
} ;
static const struct sensor_by_chipset_revision chipset_revision_sensor [ ] = {
{ 0xc001 , 0x13 } , /* MI0360 */
{ 0xe001 , 0x13 } ,
{ 0x8001 , 0x13 } ,
{ 0x8000 , 0x14 } , /* CS2102K */
{ 0x8400 , 0x15 } , /* TAS5130K */
{ 0 , 0 }
} ;
static int vga_3wr_probe ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
int i ;
__u8 retbyte ;
__u16 checkword ;
/*fixme: lack of 8b=b3 (11,12)-> 10, 8b=e0 (14,15,16)-> 12 found in gspcav1*/
reg_w ( dev , 0x02 , 0x0010 ) ;
2008-06-30 15:50:11 -03:00
reg_r ( dev , 0x10 , & retbyte ) ;
2008-06-12 10:58:58 -03:00
reg_w ( dev , 0x01 , 0x0000 ) ;
reg_w ( dev , 0x00 , 0x0010 ) ;
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0x91 , 0x008b ) ;
reg_w ( dev , 0x03 , 0x0012 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
reg_w ( dev , 0x05 , 0x0012 ) ;
retbyte = i2c_read ( dev , 0x14 ) ;
if ( retbyte ! = 0 )
return 0x11 ; /* HV7131R */
retbyte = i2c_read ( dev , 0x15 ) ;
if ( retbyte ! = 0 )
return 0x11 ; /* HV7131R */
retbyte = i2c_read ( dev , 0x16 ) ;
if ( retbyte ! = 0 )
return 0x11 ; /* HV7131R */
reg_w ( dev , 0x02 , 0x0010 ) ;
reg_r ( dev , 0x000b , & retbyte ) ;
checkword = retbyte < < 8 ;
reg_r ( dev , 0x000a , & retbyte ) ;
checkword | = retbyte ;
PDEBUG ( D_PROBE , " probe 3wr vga 1 0x%04x " , checkword ) ;
reg_r ( dev , 0x0010 , & retbyte ) ;
/* this is tested only once anyway */
i = 0 ;
while ( chipset_revision_sensor [ i ] . revision ) {
if ( chipset_revision_sensor [ i ] . revision = = checkword ) {
sd - > chip_revision = checkword ;
send_unknown ( dev , SENSOR_PB0330 ) ;
return chipset_revision_sensor [ i ] . internal_sensor_id ;
}
i + + ;
}
reg_w ( dev , 0x01 , 0x0000 ) ;
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0xdd , 0x008b ) ;
reg_w ( dev , 0x0a , 0x0010 ) ;
reg_w ( dev , 0x03 , 0x0012 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
retbyte = i2c_read ( dev , 0x00 ) ;
if ( retbyte ! = 0 ) {
PDEBUG ( D_PROBE , " probe 3wr vga type 0a ? " ) ;
return 0x0a ; /* ?? */
}
reg_w ( dev , 0x01 , 0x0000 ) ;
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0x98 , 0x008b ) ;
reg_w ( dev , 0x01 , 0x0010 ) ;
reg_w ( dev , 0x03 , 0x0012 ) ;
msleep ( 2 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
retbyte = i2c_read ( dev , 0x00 ) ;
if ( retbyte ! = 0 ) {
PDEBUG ( D_PROBE , " probe 3wr vga type %02x " , retbyte ) ;
send_unknown ( dev , SENSOR_GC0305 ) ;
return retbyte ; /* 0x29 = gc0305 - should continue? */
}
reg_w ( dev , 0x01 , 0x0000 ) ; /* check OmniVision */
reg_w ( dev , 0x01 , 0x0001 ) ;
reg_w ( dev , 0xa1 , 0x008b ) ;
reg_w ( dev , 0x08 , 0x008d ) ;
reg_w ( dev , 0x06 , 0x0010 ) ;
reg_w ( dev , 0x01 , 0x0012 ) ;
reg_w ( dev , 0x05 , 0x0012 ) ;
if ( i2c_read ( dev , 0x1c ) = = 0x7f /* OV7610 - manufacturer ID */
& & i2c_read ( dev , 0x1d ) = = 0xa2 ) {
send_unknown ( dev , SENSOR_OV7620 ) ;
return 0x06 ; /* OmniVision confirm ? */
}
reg_w ( dev , 0x01 , 0x00 ) ;
reg_w ( dev , 0x00 , 0x02 ) ;
reg_w ( dev , 0x01 , 0x10 ) ;
reg_w ( dev , 0x01 , 0x01 ) ;
reg_w ( dev , 0xee , 0x8b ) ;
reg_w ( dev , 0x03 , 0x12 ) ;
/* msleep(150); */
reg_w ( dev , 0x01 , 0x12 ) ;
reg_w ( dev , 0x05 , 0x12 ) ;
retbyte = i2c_read ( dev , 0x00 ) ; /* ID 0 */
checkword = retbyte < < 8 ;
retbyte = i2c_read ( dev , 0x01 ) ; /* ID 1 */
checkword | = retbyte ;
PDEBUG ( D_PROBE , " probe 3wr vga 2 0x%04x " , checkword ) ;
if ( checkword = = 0x2030 ) {
retbyte = i2c_read ( dev , 0x02 ) ; /* revision number */
PDEBUG ( D_PROBE , " sensor PO2030 rev 0x%02x " , retbyte ) ;
send_unknown ( dev , SENSOR_PO2030 ) ;
return checkword ;
}
reg_w ( dev , 0x01 , 0x00 ) ;
reg_w ( dev , 0x0a , 0x10 ) ;
reg_w ( dev , 0xd3 , 0x8b ) ;
reg_w ( dev , 0x01 , 0x01 ) ;
reg_w ( dev , 0x03 , 0x12 ) ;
reg_w ( dev , 0x01 , 0x12 ) ;
reg_w ( dev , 0x05 , 0x01 ) ;
reg_w ( dev , 0xd3 , 0x8b ) ;
retbyte = i2c_read ( dev , 0x01 ) ;
if ( retbyte ! = 0 ) {
PDEBUG ( D_PROBE , " probe 3wr vga type 0a ? " ) ;
return 0x0a ; /* ?? */
}
return - 1 ;
}
static int zcxx_probeSensor ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
int sensor , sensor2 ;
switch ( sd - > sensor ) {
case SENSOR_MC501CB :
case SENSOR_TAS5130C_VF0250 :
return - 1 ; /* don't probe */
}
sensor = vga_2wr_probe ( dev ) ;
if ( sensor > = 0 ) {
if ( sensor < 0x7600 )
return sensor ;
/* next probe is needed for OmniVision ? */
}
sensor2 = vga_3wr_probe ( gspca_dev ) ;
if ( sensor2 > = 0 ) {
if ( sensor > = 0 )
return sensor ;
return sensor2 ;
}
return sif_probe ( dev ) ;
}
/* this function is called at probe time */
static int sd_config ( struct gspca_dev * gspca_dev ,
const struct usb_device_id * id )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct cam * cam ;
int sensor ;
__u8 bsensor ;
int vga = 1 ; /* 1: vga, 0: sif */
2008-07-04 11:16:16 -03:00
static const __u8 gamma [ SENSOR_MAX ] = {
2008-06-12 10:58:58 -03:00
5 , /* SENSOR_CS2102 0 */
5 , /* SENSOR_CS2102K 1 */
4 , /* SENSOR_GC0305 2 */
4 , /* SENSOR_HDCS2020 3 */
4 , /* SENSOR_HDCS2020b 4 */
4 , /* SENSOR_HV7131B 5 */
4 , /* SENSOR_HV7131C 6 */
4 , /* SENSOR_ICM105A 7 */
4 , /* SENSOR_MC501CB 8 */
3 , /* SENSOR_OV7620 9 */
4 , /* SENSOR_OV7630C 10 */
2008-06-30 15:50:11 -03:00
4 , /* SENSOR_PAS106 11 */
4 , /* SENSOR_PB0330 12 */
4 , /* SENSOR_PO2030 13 */
4 , /* SENSOR_TAS5130CK 14 */
4 , /* SENSOR_TAS5130CXX 15 */
3 , /* SENSOR_TAS5130C_VF0250 16 */
2008-06-12 10:58:58 -03:00
} ;
/* define some sensors from the vendor/product */
2008-06-30 15:50:11 -03:00
sd - > sharpness = 2 ;
2008-06-12 10:58:58 -03:00
switch ( id - > idVendor ) {
case 0x041e : /* Creative */
switch ( id - > idProduct ) {
case 0x4051 : /* zc301 chips */
case 0x4053 :
sd - > sensor = SENSOR_TAS5130C_VF0250 ;
break ;
}
break ;
case 0x046d : /* Logitech Labtec */
switch ( id - > idProduct ) {
case 0x08dd :
sd - > sensor = SENSOR_MC501CB ;
break ;
}
break ;
case 0x0ac8 : /* Vimicro z-star */
switch ( id - > idProduct ) {
case 0x305b :
sd - > sensor = SENSOR_TAS5130C_VF0250 ;
break ;
}
break ;
}
sensor = zcxx_probeSensor ( gspca_dev ) ;
if ( sensor > = 0 )
PDEBUG ( D_PROBE , " probe sensor -> %02x " , sensor ) ;
if ( ( unsigned ) force_sensor < SENSOR_MAX ) {
sd - > sensor = force_sensor ;
PDEBUG ( D_PROBE , " sensor forced to %d " , force_sensor ) ;
} else {
switch ( sensor ) {
case - 1 :
switch ( sd - > sensor ) {
case SENSOR_MC501CB :
PDEBUG ( D_PROBE , " Sensor MC501CB " ) ;
break ;
case SENSOR_TAS5130C_VF0250 :
PDEBUG ( D_PROBE , " Sensor Tas5130 (VF0250) " ) ;
break ;
default :
PDEBUG ( D_PROBE ,
" Sensor UNKNOW_0 force Tas5130 " ) ;
sd - > sensor = SENSOR_TAS5130CXX ;
}
break ;
case 0 :
PDEBUG ( D_PROBE , " Find Sensor HV7131B " ) ;
sd - > sensor = SENSOR_HV7131B ;
break ;
case 0x04 :
PDEBUG ( D_PROBE , " Find Sensor CS2102 " ) ;
sd - > sensor = SENSOR_CS2102 ;
break ;
case 0x08 :
PDEBUG ( D_PROBE , " Find Sensor HDCS2020(b) " ) ;
sd - > sensor = SENSOR_HDCS2020b ;
break ;
case 0x0a :
PDEBUG ( D_PROBE ,
" Find Sensor PB0330. Chip revision %x " ,
sd - > chip_revision ) ;
sd - > sensor = SENSOR_PB0330 ;
break ;
case 0x0c :
PDEBUG ( D_PROBE , " Find Sensor ICM105A " ) ;
sd - > sensor = SENSOR_ICM105A ;
break ;
case 0x0e :
2008-06-30 15:50:11 -03:00
PDEBUG ( D_PROBE , " Find Sensor HDCS2020 " ) ;
2008-06-12 10:58:58 -03:00
sd - > sensor = SENSOR_HDCS2020 ;
2008-06-30 15:50:11 -03:00
sd - > sharpness = 1 ;
2008-06-12 10:58:58 -03:00
break ;
case 0x0f :
PDEBUG ( D_PROBE , " Find Sensor PAS106 " ) ;
sd - > sensor = SENSOR_PAS106 ;
vga = 0 ; /* SIF */
break ;
case 0x10 :
case 0x12 :
PDEBUG ( D_PROBE , " Find Sensor TAS5130 " ) ;
sd - > sensor = SENSOR_TAS5130CXX ;
break ;
case 0x11 :
PDEBUG ( D_PROBE , " Find Sensor HV7131R(c) " ) ;
sd - > sensor = SENSOR_HV7131C ;
break ;
case 0x13 :
PDEBUG ( D_PROBE ,
" Find Sensor MI0360. Chip revision %x " ,
sd - > chip_revision ) ;
sd - > sensor = SENSOR_PB0330 ;
break ;
case 0x14 :
PDEBUG ( D_PROBE ,
" Find Sensor CS2102K?. Chip revision %x " ,
sd - > chip_revision ) ;
sd - > sensor = SENSOR_CS2102K ;
break ;
case 0x15 :
PDEBUG ( D_PROBE ,
" Find Sensor TAS5130CK?. Chip revision %x " ,
sd - > chip_revision ) ;
sd - > sensor = SENSOR_TAS5130CK ;
break ;
case 0x29 :
PDEBUG ( D_PROBE , " Find Sensor GC0305 " ) ;
sd - > sensor = SENSOR_GC0305 ;
break ;
case 0x2030 :
PDEBUG ( D_PROBE , " Find Sensor PO2030 " ) ;
sd - > sensor = SENSOR_PO2030 ;
2008-06-30 15:50:11 -03:00
sd - > sharpness = 0 ; /* from win traces */
2008-06-12 10:58:58 -03:00
break ;
case 0x7620 :
PDEBUG ( D_PROBE , " Find Sensor OV7620 " ) ;
sd - > sensor = SENSOR_OV7620 ;
break ;
case 0x7648 :
PDEBUG ( D_PROBE , " Find Sensor OV7648 " ) ;
sd - > sensor = SENSOR_OV7620 ; /* same sensor (?) */
break ;
default :
PDEBUG ( D_ERR | D_PROBE , " Unknown sensor %02x " , sensor ) ;
return - EINVAL ;
}
}
if ( sensor < 0x20 ) {
if ( sensor = = - 1 | | sensor = = 0x10 | | sensor = = 0x12 )
reg_w ( gspca_dev - > dev , 0x02 , 0x0010 ) ;
else
reg_w ( gspca_dev - > dev , sensor & 0x0f , 0x0010 ) ;
reg_r ( gspca_dev - > dev , 0x0010 , & bsensor ) ;
}
cam = & gspca_dev - > cam ;
cam - > dev_name = ( char * ) id - > driver_info ;
cam - > epaddr = 0x01 ;
/*fixme:test*/
gspca_dev - > nbalt - - ;
if ( vga ) {
cam - > cam_mode = vga_mode ;
cam - > nmodes = sizeof vga_mode / sizeof vga_mode [ 0 ] ;
} else {
cam - > cam_mode = sif_mode ;
cam - > nmodes = sizeof sif_mode / sizeof sif_mode [ 0 ] ;
}
sd - > qindex = 1 ;
sd - > brightness = sd_ctrls [ SD_BRIGHTNESS ] . qctrl . default_value ;
sd - > contrast = sd_ctrls [ SD_CONTRAST ] . qctrl . default_value ;
sd - > gamma = gamma [ ( int ) sd - > sensor ] ;
2008-06-30 15:50:11 -03:00
sd - > autogain = sd_ctrls [ SD_AUTOGAIN ] . qctrl . default_value ;
sd - > lightfreq = sd_ctrls [ SD_FREQ ] . qctrl . default_value ;
sd - > sharpness = sd_ctrls [ SD_SHARPNESS ] . qctrl . default_value ;
2008-06-12 10:58:58 -03:00
/* switch the led off */
2008-06-30 15:50:11 -03:00
reg_w ( gspca_dev - > dev , 0x01 , 0x0000 ) ;
2008-06-12 10:58:58 -03:00
return 0 ;
}
/* this function is called at open time */
static int sd_open ( struct gspca_dev * gspca_dev )
{
reg_w ( gspca_dev - > dev , 0x01 , 0x0000 ) ;
return 0 ;
}
static void sd_start ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
struct usb_device * dev = gspca_dev - > dev ;
2008-07-04 11:16:16 -03:00
const struct usb_action * zc3_init ;
2008-06-12 10:58:58 -03:00
int mode ;
__u8 retbyte ;
2008-07-04 11:16:16 -03:00
static const struct usb_action * init_tb [ SENSOR_MAX ] [ 2 ] = {
2008-06-12 10:58:58 -03:00
{ cs2102_InitialScale , cs2102_Initial } , /* 0 */
{ cs2102K_InitialScale , cs2102K_Initial } , /* 1 */
{ gc0305_Initial , gc0305_InitialScale } , /* 2 */
{ hdcs2020xx_InitialScale , hdcs2020xx_Initial } , /* 3 */
{ hdcs2020xb_InitialScale , hdcs2020xb_Initial } , /* 4 */
{ hv7131bxx_InitialScale , hv7131bxx_Initial } , /* 5 */
{ hv7131cxx_InitialScale , hv7131cxx_Initial } , /* 6 */
{ icm105axx_InitialScale , icm105axx_Initial } , /* 7 */
{ MC501CB_InitialScale , MC501CB_Initial } , /* 9 */
{ OV7620_mode0 , OV7620_mode1 } , /* 9 */
{ ov7630c_InitialScale , ov7630c_Initial } , /* 10 */
2008-06-30 15:50:11 -03:00
{ pas106b_InitialScale , pas106b_Initial } , /* 11 */
{ pb0330xx_InitialScale , pb0330xx_Initial } , /* 12 */
2008-06-12 10:58:58 -03:00
/* or {pb03303x_InitialScale, pb03303x_Initial}, */
2008-06-30 15:50:11 -03:00
{ PO2030_mode0 , PO2030_mode1 } , /* 13 */
{ tas5130CK_InitialScale , tas5130CK_Initial } , /* 14 */
{ tas5130cxx_InitialScale , tas5130cxx_Initial } , /* 15 */
2008-06-12 10:58:58 -03:00
{ tas5130c_vf0250_InitialScale , tas5130c_vf0250_Initial } ,
2008-06-30 15:50:11 -03:00
/* 16 */
2008-06-12 10:58:58 -03:00
} ;
2008-07-05 11:49:20 -03:00
mode = gspca_dev - > cam . cam_mode [ ( int ) gspca_dev - > curr_mode ] . priv ;
2008-06-12 10:58:58 -03:00
zc3_init = init_tb [ ( int ) sd - > sensor ] [ mode ] ;
switch ( sd - > sensor ) {
case SENSOR_HV7131B :
case SENSOR_HV7131C :
zcxx_probeSensor ( gspca_dev ) ;
break ;
case SENSOR_PAS106 :
usb_exchange ( dev , pas106b_Initial_com ) ;
break ;
case SENSOR_PB0330 :
if ( mode ) {
if ( sd - > chip_revision = = 0xc001
| | sd - > chip_revision = = 0xe001
| | sd - > chip_revision = = 0x8001 )
zc3_init = pb03303x_Initial ;
} else {
if ( sd - > chip_revision = = 0xc001
| | sd - > chip_revision = = 0xe001
| | sd - > chip_revision = = 0x8001 )
zc3_init = pb03303x_InitialScale ;
}
break ;
}
usb_exchange ( dev , zc3_init ) ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
case SENSOR_OV7620 :
case SENSOR_PO2030 :
msleep ( 100 ) ; /* ?? */
reg_r ( dev , 0x0002 , & retbyte ) ; /* --> 0x40 */
reg_w ( dev , 0x09 , 0x01ad ) ; /* (from win traces) */
reg_w ( dev , 0x15 , 0x01ae ) ;
reg_w ( dev , 0x0d , 0x003a ) ;
reg_w ( dev , 0x02 , 0x003b ) ;
reg_w ( dev , 0x00 , 0x0038 ) ;
break ;
}
setmatrix ( gspca_dev ) ;
setbrightness ( gspca_dev ) ;
switch ( sd - > sensor ) {
case SENSOR_OV7620 :
reg_r ( dev , 0x0008 , & retbyte ) ;
reg_w ( dev , 0x00 , 0x0008 ) ;
break ;
case SENSOR_GC0305 :
reg_r ( dev , 0x0008 , & retbyte ) ;
/* fall thru */
case SENSOR_PO2030 :
reg_w ( dev , 0x03 , 0x0008 ) ;
break ;
}
setsharpness ( gspca_dev ) ;
/* set the gamma tables when not set */
switch ( sd - > sensor ) {
case SENSOR_CS2102 : /* gamma set in xxx_Initial */
case SENSOR_CS2102K :
case SENSOR_HDCS2020 :
case SENSOR_HDCS2020b :
case SENSOR_PB0330 : /* pb with chip_revision - see above */
case SENSOR_OV7630C :
case SENSOR_TAS5130CK :
break ;
default :
setcontrast ( gspca_dev ) ;
break ;
}
setmatrix ( gspca_dev ) ; /* one more time? */
switch ( sd - > sensor ) {
case SENSOR_OV7620 :
reg_r ( dev , 0x0180 , & retbyte ) ; /* from win */
reg_w ( dev , 0x00 , 0x0180 ) ;
break ;
default :
setquality ( gspca_dev ) ;
break ;
}
setlightfreq ( gspca_dev ) ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
case SENSOR_OV7620 :
reg_w ( dev , 0x09 , 0x01ad ) ; /* (from win traces) */
reg_w ( dev , 0x15 , 0x01ae ) ;
sd - > autogain = 0 ;
break ;
case SENSOR_PO2030 :
reg_w ( dev , 0x40 , 0x0117 ) ; /* (from win traces) */
reg_r ( dev , 0x0180 , & retbyte ) ;
break ;
}
setautogain ( gspca_dev ) ;
switch ( sd - > sensor ) {
case SENSOR_GC0305 :
/* setlightfreq(gspca_dev); ?? (end: 80 -> [18d]) */
reg_w ( dev , 0x09 , 0x01ad ) ; /* (from win traces) */
reg_w ( dev , 0x15 , 0x01ae ) ;
reg_w ( dev , 0x40 , 0x0180 ) ;
reg_w ( dev , 0x40 , 0x0117 ) ;
reg_r ( dev , 0x0180 , & retbyte ) ;
sd - > autogain = 1 ;
setautogain ( gspca_dev ) ;
break ;
case SENSOR_OV7620 :
i2c_read ( dev , 0x13 ) ; /*fixme: returns 0xa3 */
i2c_write ( dev , 0x13 , 0xa3 , 0x00 ) ; /*fixme: same to send? */
reg_w ( dev , 0x40 , 0x0117 ) ; /* (from win traces) */
reg_r ( dev , 0x0180 , & retbyte ) ;
setautogain ( gspca_dev ) ;
msleep ( 500 ) ;
break ;
case SENSOR_PO2030 :
msleep ( 500 ) ;
reg_r ( dev , 0x0008 , & retbyte ) ;
reg_r ( dev , 0x0007 , & retbyte ) ;
reg_w ( dev , 0x00 , 0x0007 ) ; /* (from win traces) */
reg_w ( dev , 0x02 , 0x0008 ) ;
break ;
}
}
static void sd_stopN ( struct gspca_dev * gspca_dev )
{
}
static void sd_stop0 ( struct gspca_dev * gspca_dev )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
send_unknown ( gspca_dev - > dev , sd - > sensor ) ;
}
/* this function is called at close time */
static void sd_close ( struct gspca_dev * gspca_dev )
{
}
static void sd_pkt_scan ( struct gspca_dev * gspca_dev ,
struct gspca_frame * frame ,
2008-06-30 15:50:11 -03:00
__u8 * data ,
2008-06-12 10:58:58 -03:00
int len )
{
if ( data [ 0 ] = = 0xff & & data [ 1 ] = = 0xd8 ) { /* start of frame */
frame = gspca_frame_add ( gspca_dev , LAST_PACKET , frame ,
data , 0 ) ;
/* put the JPEG header in the new frame */
jpeg_put_header ( gspca_dev , frame ,
( ( struct sd * ) gspca_dev ) - > qindex ,
0x21 ) ;
/* remove the webcam's header:
* ff d8 ff fe 00 0 e 00 00 ss ss 00 01 ww ww hh hh pp pp
* - ' ss ss ' is the frame sequence number ( BE )
* - ' ww ww ' and ' hh hh ' are the window dimensions ( BE )
* - ' pp pp ' is the packet sequence number ( BE )
*/
data + = 18 ;
len - = 18 ;
}
gspca_frame_add ( gspca_dev , INTER_PACKET , frame , data , len ) ;
}
static int sd_setbrightness ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > brightness = val ;
if ( gspca_dev - > streaming )
setbrightness ( gspca_dev ) ;
return 0 ;
}
static int sd_getbrightness ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > brightness ;
return 0 ;
}
static int sd_setcontrast ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > contrast = val ;
if ( gspca_dev - > streaming )
setcontrast ( gspca_dev ) ;
return 0 ;
}
static int sd_getcontrast ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > contrast ;
return 0 ;
}
static int sd_setautogain ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > autogain = val ;
if ( gspca_dev - > streaming )
setautogain ( gspca_dev ) ;
return 0 ;
}
static int sd_getautogain ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > autogain ;
return 0 ;
}
2008-06-30 15:50:11 -03:00
static int sd_setgamma ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > gamma = val ;
if ( gspca_dev - > streaming )
setcontrast ( gspca_dev ) ;
return 0 ;
}
2008-06-12 10:58:58 -03:00
static int sd_getgamma ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > gamma ;
return 0 ;
}
2008-06-30 15:50:11 -03:00
static int sd_setfreq ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > lightfreq = val ;
if ( gspca_dev - > streaming )
setlightfreq ( gspca_dev ) ;
return 0 ;
}
static int sd_getfreq ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > lightfreq ;
return 0 ;
}
static int sd_setsharpness ( struct gspca_dev * gspca_dev , __s32 val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
sd - > sharpness = val ;
if ( gspca_dev - > streaming )
setsharpness ( gspca_dev ) ;
return 0 ;
}
static int sd_getsharpness ( struct gspca_dev * gspca_dev , __s32 * val )
{
struct sd * sd = ( struct sd * ) gspca_dev ;
* val = sd - > sharpness ;
return 0 ;
}
static int sd_querymenu ( struct gspca_dev * gspca_dev ,
struct v4l2_querymenu * menu )
{
switch ( menu - > id ) {
case V4L2_CID_POWER_LINE_FREQUENCY :
switch ( menu - > index ) {
case 0 : /* V4L2_CID_POWER_LINE_FREQUENCY_DISABLED */
2008-07-04 11:16:16 -03:00
strcpy ( ( char * ) menu - > name , " NoFliker " ) ;
2008-06-30 15:50:11 -03:00
return 0 ;
case 1 : /* V4L2_CID_POWER_LINE_FREQUENCY_50HZ */
2008-07-04 11:16:16 -03:00
strcpy ( ( char * ) menu - > name , " 50 Hz " ) ;
2008-06-30 15:50:11 -03:00
return 0 ;
case 2 : /* V4L2_CID_POWER_LINE_FREQUENCY_60HZ */
2008-07-04 11:16:16 -03:00
strcpy ( ( char * ) menu - > name , " 60 Hz " ) ;
2008-06-30 15:50:11 -03:00
return 0 ;
}
break ;
}
return - EINVAL ;
}
2008-07-04 11:16:16 -03:00
static const struct sd_desc sd_desc = {
2008-06-12 10:58:58 -03:00
. name = MODULE_NAME ,
. ctrls = sd_ctrls ,
. nctrls = sizeof sd_ctrls / sizeof sd_ctrls [ 0 ] ,
. config = sd_config ,
. open = sd_open ,
. start = sd_start ,
. stopN = sd_stopN ,
. stop0 = sd_stop0 ,
. close = sd_close ,
. pkt_scan = sd_pkt_scan ,
2008-06-30 15:50:11 -03:00
. querymenu = sd_querymenu ,
2008-06-12 10:58:58 -03:00
} ;
# define DVNM(name) .driver_info = (kernel_ulong_t) name
2008-07-04 11:16:16 -03:00
static const __devinitdata struct usb_device_id device_table [ ] = {
2008-06-12 10:58:58 -03:00
{ USB_DEVICE ( 0x041e , 0x041e ) , DVNM ( " Creative WebCam Live! " ) } ,
{ USB_DEVICE ( 0x041e , 0x4017 ) , DVNM ( " Creative Webcam Mobile PD1090 " ) } ,
{ USB_DEVICE ( 0x041e , 0x401c ) , DVNM ( " Creative NX " ) } ,
{ USB_DEVICE ( 0x041e , 0x401e ) , DVNM ( " Creative Nx Pro " ) } ,
{ USB_DEVICE ( 0x041e , 0x401f ) , DVNM ( " Creative Webcam Notebook PD1171 " ) } ,
/*0x041e, 0x4022*/
{ USB_DEVICE ( 0x041e , 0x4029 ) , DVNM ( " Creative WebCam Vista Pro " ) } ,
{ USB_DEVICE ( 0x041e , 0x4034 ) , DVNM ( " Creative Instant P0620 " ) } ,
{ USB_DEVICE ( 0x041e , 0x4035 ) , DVNM ( " Creative Instant P0620D " ) } ,
{ USB_DEVICE ( 0x041e , 0x4036 ) , DVNM ( " Creative Live ! " ) } ,
{ USB_DEVICE ( 0x041e , 0x403a ) , DVNM ( " Creative Nx Pro 2 " ) } ,
{ USB_DEVICE ( 0x041e , 0x4051 ) , DVNM ( " Creative Notebook Pro (VF0250) " ) } ,
{ USB_DEVICE ( 0x041e , 0x4053 ) , DVNM ( " Creative Live!Cam Video IM " ) } ,
{ USB_DEVICE ( 0x0458 , 0x7007 ) , DVNM ( " Genius VideoCam V2 " ) } ,
{ USB_DEVICE ( 0x0458 , 0x700c ) , DVNM ( " Genius VideoCam V3 " ) } ,
{ USB_DEVICE ( 0x0458 , 0x700f ) , DVNM ( " Genius VideoCam Web V2 " ) } ,
{ USB_DEVICE ( 0x0461 , 0x0a00 ) , DVNM ( " MicroInnovation WebCam320 " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a0 ) , DVNM ( " Logitech QC IM " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a1 ) , DVNM ( " Logitech QC IM 0x08A1 +sound " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a2 ) , DVNM ( " Labtec Webcam Pro " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a3 ) , DVNM ( " Logitech QC Chat " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a6 ) , DVNM ( " Logitech QCim " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a7 ) , DVNM ( " Logitech QuickCam Image " ) } ,
{ USB_DEVICE ( 0x046d , 0x08a9 ) , DVNM ( " Logitech Notebook Deluxe " ) } ,
{ USB_DEVICE ( 0x046d , 0x08aa ) , DVNM ( " Labtec Webcam Notebook " ) } ,
{ USB_DEVICE ( 0x046d , 0x08ac ) , DVNM ( " Logitech QuickCam Cool " ) } ,
{ USB_DEVICE ( 0x046d , 0x08ad ) , DVNM ( " Logitech QCCommunicate STX " ) } ,
{ USB_DEVICE ( 0x046d , 0x08ae ) , DVNM ( " Logitech QuickCam for Notebooks " ) } ,
{ USB_DEVICE ( 0x046d , 0x08af ) , DVNM ( " Logitech QuickCam Cool " ) } ,
{ USB_DEVICE ( 0x046d , 0x08b9 ) , DVNM ( " Logitech QC IM ??? " ) } ,
{ USB_DEVICE ( 0x046d , 0x08d7 ) , DVNM ( " Logitech QCam STX " ) } ,
{ USB_DEVICE ( 0x046d , 0x08d9 ) , DVNM ( " Logitech QuickCam IM/Connect " ) } ,
{ USB_DEVICE ( 0x046d , 0x08d8 ) , DVNM ( " Logitech Notebook Deluxe " ) } ,
{ USB_DEVICE ( 0x046d , 0x08da ) , DVNM ( " Logitech QuickCam Messenger " ) } ,
{ USB_DEVICE ( 0x046d , 0x08dd ) , DVNM ( " Logitech QuickCam for Notebooks " ) } ,
{ USB_DEVICE ( 0x0471 , 0x0325 ) , DVNM ( " Philips SPC 200 NC " ) } ,
{ USB_DEVICE ( 0x0471 , 0x0326 ) , DVNM ( " Philips SPC 300 NC " ) } ,
{ USB_DEVICE ( 0x0471 , 0x032d ) , DVNM ( " Philips spc210nc " ) } ,
{ USB_DEVICE ( 0x0471 , 0x032e ) , DVNM ( " Philips spc315nc " ) } ,
{ USB_DEVICE ( 0x055f , 0xc005 ) , DVNM ( " Mustek Wcam300A " ) } ,
{ USB_DEVICE ( 0x055f , 0xd003 ) , DVNM ( " Mustek WCam300A " ) } ,
{ USB_DEVICE ( 0x055f , 0xd004 ) , DVNM ( " Mustek WCam300 AN " ) } ,
{ USB_DEVICE ( 0x0698 , 0x2003 ) , DVNM ( " CTX M730V built in " ) } ,
/*0x0ac8, 0x0301*/
{ USB_DEVICE ( 0x0ac8 , 0x0302 ) , DVNM ( " Z-star Vimicro zc0302 " ) } ,
{ USB_DEVICE ( 0x0ac8 , 0x301b ) , DVNM ( " Z-Star zc301b " ) } ,
{ USB_DEVICE ( 0x0ac8 , 0x303b ) , DVNM ( " Vimicro 0x303b " ) } ,
{ USB_DEVICE ( 0x0ac8 , 0x305b ) , DVNM ( " Z-star Vimicro zc0305b " ) } ,
{ USB_DEVICE ( 0x0ac8 , 0x307b ) , DVNM ( " Z-Star 307b " ) } ,
{ USB_DEVICE ( 0x10fd , 0x0128 ) , DVNM ( " Typhoon Webshot II 300k 0x0128 " ) } ,
/*0x10fd, 0x804e*/
{ USB_DEVICE ( 0x10fd , 0x8050 ) , DVNM ( " Typhoon Webshot II USB 300k " ) } ,
{ } /* end of entry */
} ;
# undef DVNAME
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 ) ;
}
/* USB driver */
static struct usb_driver sd_driver = {
. name = MODULE_NAME ,
. id_table = device_table ,
. probe = sd_probe ,
. disconnect = gspca_disconnect ,
} ;
static int __init sd_mod_init ( void )
{
if ( usb_register ( & sd_driver ) < 0 )
return - 1 ;
PDEBUG ( D_PROBE , " v%s registered " , version ) ;
return 0 ;
}
static void __exit sd_mod_exit ( void )
{
usb_deregister ( & sd_driver ) ;
PDEBUG ( D_PROBE , " deregistered " ) ;
}
module_init ( sd_mod_init ) ;
module_exit ( sd_mod_exit ) ;
module_param ( force_sensor , int , 0644 ) ;
MODULE_PARM_DESC ( force_sensor ,
" Force sensor. Only for experts!!! " ) ;