| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * SPCA501 chip based cameras initialization data | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * V4L2 by Jean-Francois Moine <http://moinejf.free.fr>
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |  * any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-21 19:56:57 -03:00
										 |  |  | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | #define MODULE_NAME "spca501"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "gspca.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MODULE_AUTHOR("Michel Xhaard <mxhaard@users.sourceforge.net>"); | 
					
						
							|  |  |  | MODULE_DESCRIPTION("GSPCA/SPCA501 USB Camera Driver"); | 
					
						
							|  |  |  | MODULE_LICENSE("GPL"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* specific webcam descriptor */ | 
					
						
							|  |  |  | struct sd { | 
					
						
							|  |  |  | 	struct gspca_dev gspca_dev;	/* !! must be the first item */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	unsigned short contrast; | 
					
						
							|  |  |  | 	__u8 brightness; | 
					
						
							|  |  |  | 	__u8 colors; | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | 	__u8 blue_balance; | 
					
						
							|  |  |  | 	__u8 red_balance; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	char subtype; | 
					
						
							|  |  |  | #define Arowana300KCMOSCamera 0
 | 
					
						
							|  |  |  | #define IntelCreateAndShare 1
 | 
					
						
							|  |  |  | #define KodakDVC325 2
 | 
					
						
							|  |  |  | #define MystFromOriUnknownCamera 3
 | 
					
						
							|  |  |  | #define SmileIntlCamera 4
 | 
					
						
							|  |  |  | #define ThreeComHomeConnectLite 5
 | 
					
						
							|  |  |  | #define ViewQuestM318B 6
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-29 07:49:41 -03:00
										 |  |  | static const struct v4l2_pix_format vga_mode[] = { | 
					
						
							| 
									
										
										
										
											2008-07-05 11:49:20 -03:00
										 |  |  | 	{160, 120, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE, | 
					
						
							|  |  |  | 		.bytesperline = 160, | 
					
						
							| 
									
										
										
										
											2008-07-16 10:00:08 -03:00
										 |  |  | 		.sizeimage = 160 * 120 * 3 / 2, | 
					
						
							| 
									
										
										
										
											2008-07-05 11:49:20 -03:00
										 |  |  | 		.colorspace = V4L2_COLORSPACE_SRGB, | 
					
						
							|  |  |  | 		.priv = 2}, | 
					
						
							|  |  |  | 	{320, 240, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE, | 
					
						
							|  |  |  | 		.bytesperline = 320, | 
					
						
							| 
									
										
										
										
											2008-07-16 10:00:08 -03:00
										 |  |  | 		.sizeimage = 320 * 240 * 3 / 2, | 
					
						
							| 
									
										
										
										
											2008-07-05 11:49:20 -03:00
										 |  |  | 		.colorspace = V4L2_COLORSPACE_SRGB, | 
					
						
							|  |  |  | 		.priv = 1}, | 
					
						
							|  |  |  | 	{640, 480, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE, | 
					
						
							|  |  |  | 		.bytesperline = 640, | 
					
						
							| 
									
										
										
										
											2008-07-16 10:00:08 -03:00
										 |  |  | 		.sizeimage = 640 * 480 * 3 / 2, | 
					
						
							| 
									
										
										
										
											2008-07-05 11:49:20 -03:00
										 |  |  | 		.colorspace = V4L2_COLORSPACE_SRGB, | 
					
						
							|  |  |  | 		.priv = 0}, | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define SPCA50X_REG_USB 0x2	/* spca505 501 */
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Data to initialize a SPCA501. From a capture file provided by Bill Roehl | 
					
						
							|  |  |  |  * With SPCA501 chip description | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define CCDSP_SET		/* set CCDSP parameters */
 | 
					
						
							|  |  |  | #define TG_SET			/* set time generator set */
 | 
					
						
							|  |  |  | #undef DSPWIN_SET		/* set DSP windows parameters */
 | 
					
						
							|  |  |  | #undef ALTER_GAMA	/* Set alternate set to YUV transform coeffs. */
 | 
					
						
							|  |  |  | #define SPCA501_SNAPBIT 0x80
 | 
					
						
							|  |  |  | #define SPCA501_SNAPCTRL 0x10
 | 
					
						
							|  |  |  | /* Frame packet header offsets for the spca501 */ | 
					
						
							|  |  |  | #define SPCA501_OFFSET_GPIO   1
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_TYPE   2
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_TURN3A 3
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_FRAMSEQ 4
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_COMPRESS 5
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_QUANT 6
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_QUANT2 7
 | 
					
						
							|  |  |  | #define SPCA501_OFFSET_DATA 8
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define SPCA501_PROP_COMP_ENABLE(d) ((d) & 1)
 | 
					
						
							|  |  |  | #define SPCA501_PROP_SNAP(d) ((d) & 0x40)
 | 
					
						
							|  |  |  | #define SPCA501_PROP_SNAP_CTRL(d) ((d) & 0x10)
 | 
					
						
							|  |  |  | #define SPCA501_PROP_COMP_THRESH(d) (((d) & 0x0e) >> 1)
 | 
					
						
							|  |  |  | #define SPCA501_PROP_COMP_QUANT(d) (((d) & 0x70) >> 4)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* SPCA501 CCDSP control */ | 
					
						
							|  |  |  | #define SPCA501_REG_CCDSP 0x01
 | 
					
						
							|  |  |  | /* SPCA501 control/status registers */ | 
					
						
							|  |  |  | #define SPCA501_REG_CTLRL 0x02
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* registers for color correction and YUV transformation */ | 
					
						
							|  |  |  | #define SPCA501_A11 0x08
 | 
					
						
							|  |  |  | #define SPCA501_A12 0x09
 | 
					
						
							|  |  |  | #define SPCA501_A13 0x0A
 | 
					
						
							|  |  |  | #define SPCA501_A21 0x0B
 | 
					
						
							|  |  |  | #define SPCA501_A22 0x0C
 | 
					
						
							|  |  |  | #define SPCA501_A23 0x0D
 | 
					
						
							|  |  |  | #define SPCA501_A31 0x0E
 | 
					
						
							|  |  |  | #define SPCA501_A32 0x0F
 | 
					
						
							|  |  |  | #define SPCA501_A33 0x10
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Data for video camera initialization before capturing */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501_open_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	/* bmRequest,value,index */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x2, 0x50, 0x00},	/* C/S enable soft reset */ | 
					
						
							|  |  |  | 	{0x2, 0x40, 0x00},	/* C/S disable soft reset */ | 
					
						
							|  |  |  | 	{0x2, 0x02, 0x05},	/* C/S general purpose I/O data */ | 
					
						
							|  |  |  | 	{0x2, 0x03, 0x05},	/* C/S general purpose I/O data */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CCDSP_SET
 | 
					
						
							|  |  |  | 	{0x1, 0x38, 0x01},	/* CCDSP options */ | 
					
						
							|  |  |  | 	{0x1, 0x05, 0x02}, /* CCDSP Optical black level for user settings */ | 
					
						
							|  |  |  | 	{0x1, 0xC0, 0x03},	/* CCDSP Optical black settings */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x1, 0x67, 0x07}, | 
					
						
							|  |  |  | 	{0x1, 0x63, 0x3f},	/* CCDSP CCD gamma enable */ | 
					
						
							|  |  |  | 	{0x1, 0x03, 0x56},	/* Add gamma correction */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x1, 0xFF, 0x15},	/* CCDSP High luminance for white balance */ | 
					
						
							|  |  |  | 	{0x1, 0x01, 0x16},	/* CCDSP Low luminance for white balance */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Color correction and RGB-to-YUV transformation coefficients changing */ | 
					
						
							|  |  |  | #ifdef ALTER_GAMA
 | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x08},	/* A11 */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x09},	/* A12 */ | 
					
						
							|  |  |  | 	{0x0, 0x90, 0x0A},	/* A13 */ | 
					
						
							|  |  |  | 	{0x0, 0x12, 0x0B},	/* A21 */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0C},	/* A22 */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0D},	/* A23 */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0E},	/* A31 */ | 
					
						
							|  |  |  | 	{0x0, 0x02, 0x0F},	/* A32 */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x10},	/* A33 */ | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 	{0x1, 0x2a, 0x08},	/* A11 0x31 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x09},	/* A12 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x0A},	/* A13 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x0B},	/* A21 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0x14, 0x0C},	/* A22 0x14 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x0D},	/* A23 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x0E},	/* A31 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0xf8, 0x0F},	/* A32 f8 */ | 
					
						
							|  |  |  | 	{0x1, 0x20, 0x10},	/* A33 0x20 */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x11},	/* R offset */ | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x12},	/* G offset */ | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x13},	/* B offset */ | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x14},	/* GB offset */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef TG_SET
 | 
					
						
							|  |  |  | 	/* Time generator manipulations */ | 
					
						
							|  |  |  | 	{0x0, 0xfc, 0x0},	/* Set up high bits of shutter speed */ | 
					
						
							|  |  |  | 	{0x0, 0x01, 0x1},	/* Set up low bits of shutter speed */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x0, 0xe4, 0x04},	/* DCLK*2 clock phase adjustment */ | 
					
						
							|  |  |  | 	{0x0, 0x08, 0x05},	/* ADCK phase adjustment, inv. ext. VB */ | 
					
						
							|  |  |  | 	{0x0, 0x03, 0x06},	/* FR phase adjustment */ | 
					
						
							|  |  |  | 	{0x0, 0x01, 0x07},	/* FCDS phase adjustment */ | 
					
						
							|  |  |  | 	{0x0, 0x39, 0x08},	/* FS phase adjustment */ | 
					
						
							|  |  |  | 	{0x0, 0x88, 0x0a},	/* FH1 phase and delay adjustment */ | 
					
						
							|  |  |  | 	{0x0, 0x03, 0x0f},	/* pixel identification */ | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x11},	/* clock source selection (default) */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/*VERY strange manipulations with
 | 
					
						
							|  |  |  | 	 * select DMCLP or OBPX to be ADCLP output (0x0C) | 
					
						
							|  |  |  | 	 * OPB always toggle or not (0x0D) but they allow | 
					
						
							|  |  |  | 	 * us to set up brightness | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	{0x0, 0x01, 0x0c}, | 
					
						
							|  |  |  | 	{0x0, 0xe0, 0x0d}, | 
					
						
							|  |  |  | 	/* Done */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef DSPWIN_SET
 | 
					
						
							|  |  |  | 	{0x1, 0xa0, 0x01},	/* Setting image processing parameters */ | 
					
						
							|  |  |  | 	{0x1, 0x1c, 0x17},	/* Changing Windows positions X1 */ | 
					
						
							|  |  |  | 	{0x1, 0xe2, 0x19},	/* X2 */ | 
					
						
							|  |  |  | 	{0x1, 0x1c, 0x1b},	/* X3 */ | 
					
						
							|  |  |  | 	{0x1, 0xe2, 0x1d},	/* X4 */ | 
					
						
							|  |  |  | 	{0x1, 0x5f, 0x1f},	/* X5 */ | 
					
						
							|  |  |  | 	{0x1, 0x32, 0x20},	/* Y5 */ | 
					
						
							|  |  |  | 	{0x1, 0x01, 0x10},	/* Changing A33 */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x2, 0x204a, 0x07},/* Setting video compression & resolution 160x120 */ | 
					
						
							|  |  |  | 	{0x2, 0x94, 0x06},	/* Setting video no compression */ | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |    The SPCAxxx docs from Sunplus document these values | 
					
						
							|  |  |  |    in tables, one table per register number.  In the data | 
					
						
							|  |  |  |    below, dmRequest is the register number, index is the Addr, | 
					
						
							|  |  |  |    and value is a combination of Bit values. | 
					
						
							|  |  |  |    Bit  Value (hex) | 
					
						
							|  |  |  |    0    01 | 
					
						
							|  |  |  |    1    02 | 
					
						
							|  |  |  |    2    04 | 
					
						
							|  |  |  |    3    08 | 
					
						
							|  |  |  |    4    10 | 
					
						
							|  |  |  |    5    20 | 
					
						
							|  |  |  |    6    40 | 
					
						
							|  |  |  |    7    80 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Data for chip initialization (set default values) */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501_init_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	/* Set all the values to powerup defaults */ | 
					
						
							|  |  |  | 	/* bmRequest,value,index */ | 
					
						
							|  |  |  | 	{0x0, 0xAA, 0x00}, | 
					
						
							|  |  |  | 	{0x0, 0x02, 0x01}, | 
					
						
							|  |  |  | 	{0x0, 0x01, 0x02}, | 
					
						
							|  |  |  | 	{0x0, 0x02, 0x03}, | 
					
						
							|  |  |  | 	{0x0, 0xCE, 0x04}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x05}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x06}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x07}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x08}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x09}, | 
					
						
							|  |  |  | 	{0x0, 0x90, 0x0A}, | 
					
						
							|  |  |  | 	{0x0, 0x12, 0x0B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x0E}, | 
					
						
							|  |  |  | 	{0x0, 0x02, 0x0F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x10}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x11}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x12}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x13}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x14}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x15}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x16}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x17}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x18}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x19}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x1F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x20}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x21}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x22}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x23}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x24}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x25}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x26}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x27}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x28}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x29}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x2F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x30}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x31}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x32}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x33}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x34}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x35}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x36}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x37}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x38}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x39}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x3F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x40}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x41}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x42}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x43}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x44}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x45}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x46}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x47}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x48}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x49}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x4F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x50}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x51}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x52}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x53}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x54}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x55}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x56}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x57}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x58}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x59}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x5F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x60}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x61}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x62}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x63}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x64}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x65}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x66}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x67}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x68}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x69}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x6F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x70}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x71}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x72}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x73}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x74}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x75}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x76}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x77}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x78}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x79}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x7F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x80}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x81}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x82}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x83}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x84}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x85}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x86}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x87}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x88}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x89}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x8F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x90}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x91}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x92}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x93}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x94}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x95}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x96}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x97}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x98}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x99}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9A}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9B}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9C}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9D}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9E}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0x9F}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA0}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA1}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA2}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA3}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA4}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA5}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA6}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA7}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA8}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xA9}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAA}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAB}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAC}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAD}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAE}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xAF}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB0}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB1}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB2}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB3}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB4}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB5}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB6}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB7}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB8}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xB9}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBA}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBB}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBC}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBD}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBE}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xBF}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC0}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC1}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC2}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC3}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC4}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC5}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC6}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC7}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC8}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xC9}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xCA}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xCB}, | 
					
						
							|  |  |  | 	{0x0, 0x00, 0xCC}, | 
					
						
							|  |  |  | 	{0x1, 0xF4, 0x00}, | 
					
						
							|  |  |  | 	{0x1, 0x38, 0x01}, | 
					
						
							|  |  |  | 	{0x1, 0x40, 0x02}, | 
					
						
							|  |  |  | 	{0x1, 0x0A, 0x03}, | 
					
						
							|  |  |  | 	{0x1, 0x40, 0x04}, | 
					
						
							|  |  |  | 	{0x1, 0x40, 0x05}, | 
					
						
							|  |  |  | 	{0x1, 0x40, 0x06}, | 
					
						
							|  |  |  | 	{0x1, 0x67, 0x07}, | 
					
						
							|  |  |  | 	{0x1, 0x31, 0x08}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x09}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x0A}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x0B}, | 
					
						
							|  |  |  | 	{0x1, 0x14, 0x0C}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x0D}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x0E}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x0F}, | 
					
						
							|  |  |  | 	{0x1, 0x1E, 0x10}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x11}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x12}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x13}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x14}, | 
					
						
							|  |  |  | 	{0x1, 0xFF, 0x15}, | 
					
						
							|  |  |  | 	{0x1, 0x01, 0x16}, | 
					
						
							|  |  |  | 	{0x1, 0x32, 0x17}, | 
					
						
							|  |  |  | 	{0x1, 0x23, 0x18}, | 
					
						
							|  |  |  | 	{0x1, 0xCE, 0x19}, | 
					
						
							|  |  |  | 	{0x1, 0x23, 0x1A}, | 
					
						
							|  |  |  | 	{0x1, 0x32, 0x1B}, | 
					
						
							|  |  |  | 	{0x1, 0x8D, 0x1C}, | 
					
						
							|  |  |  | 	{0x1, 0xCE, 0x1D}, | 
					
						
							|  |  |  | 	{0x1, 0x8D, 0x1E}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x1F}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x20}, | 
					
						
							|  |  |  | 	{0x1, 0xFF, 0x3E}, | 
					
						
							|  |  |  | 	{0x1, 0x02, 0x3F}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x40}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x41}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x42}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x43}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x44}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x45}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x46}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x47}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x48}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x49}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4A}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4B}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4C}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4D}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4E}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x4F}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x50}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x51}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x52}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x53}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x54}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x55}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x56}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x57}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x58}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x59}, | 
					
						
							|  |  |  | 	{0x1, 0x00, 0x5A}, | 
					
						
							|  |  |  | 	{0x2, 0x03, 0x00}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x01}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x05}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x06}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x07}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x10}, | 
					
						
							|  |  |  | 	{0x2, 0x00, 0x11}, | 
					
						
							|  |  |  | 	/* Strange - looks like the 501 driver doesn't do anything
 | 
					
						
							|  |  |  | 	 * at insert time except read the EEPROM | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Data for video camera init before capture.
 | 
					
						
							|  |  |  |  * Capture and decoding by Colin Peart. | 
					
						
							|  |  |  |  * This is is for the 3com HomeConnect Lite which is spca501a based. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501_3com_open_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	/* bmRequest,value,index */ | 
					
						
							|  |  |  | 	{0x2, 0x0050, 0x0000},	/* C/S Enable TG soft reset, timing mode=010 */ | 
					
						
							|  |  |  | 	{0x2, 0x0043, 0x0000},	/* C/S Disable TG soft reset, timing mode=010 */ | 
					
						
							|  |  |  | 	{0x2, 0x0002, 0x0005},	/* C/S GPIO */ | 
					
						
							|  |  |  | 	{0x2, 0x0003, 0x0005},	/* C/S GPIO */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CCDSP_SET
 | 
					
						
							|  |  |  | 	{0x1, 0x0020, 0x0001},	/* CCDSP Options */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x1, 0x0020, 0x0002},	/* CCDSP Black Level */ | 
					
						
							|  |  |  | 	{0x1, 0x006e, 0x0007},	/* CCDSP Gamma options */ | 
					
						
							|  |  |  | 	{0x1, 0x0090, 0x0015},	/* CCDSP Luminance Low */ | 
					
						
							|  |  |  | 	{0x1, 0x00ff, 0x0016},	/* CCDSP Luminance High */ | 
					
						
							|  |  |  | 	{0x1, 0x0003, 0x003F},	/* CCDSP Gamma correction toggle */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef ALTER_GAMMA
 | 
					
						
							|  |  |  | 	{0x1, 0x0010, 0x0008},	/* CCDSP YUV A11 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x0009},	/* CCDSP YUV A12 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x000a},	/* CCDSP YUV A13 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x000b},	/* CCDSP YUV A21 */ | 
					
						
							|  |  |  | 	{0x1, 0x0010, 0x000c},	/* CCDSP YUV A22 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x000d},	/* CCDSP YUV A23 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x000e},	/* CCDSP YUV A31 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x000f},	/* CCDSP YUV A32 */ | 
					
						
							|  |  |  | 	{0x1, 0x0010, 0x0010},	/* CCDSP YUV A33 */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x0011},	/* CCDSP R Offset */ | 
					
						
							|  |  |  | 	{0x1, 0x0000, 0x0012},	/* CCDSP G Offset */ | 
					
						
							|  |  |  | 	{0x1, 0x0001, 0x0013},	/* CCDSP B Offset */ | 
					
						
							|  |  |  | 	{0x1, 0x0001, 0x0014},	/* CCDSP BG Offset */ | 
					
						
							|  |  |  | 	{0x1, 0x003f, 0x00C1},	/* CCDSP Gamma Correction Enable */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef TG_SET
 | 
					
						
							|  |  |  | 	{0x0, 0x00fc, 0x0000},	/* TG Shutter Speed High Bits */ | 
					
						
							|  |  |  | 	{0x0, 0x0000, 0x0001},	/* TG Shutter Speed Low Bits */ | 
					
						
							|  |  |  | 	{0x0, 0x00e4, 0x0004},	/* TG DCLK*2 Adjust */ | 
					
						
							|  |  |  | 	{0x0, 0x0008, 0x0005},	/* TG ADCK Adjust */ | 
					
						
							|  |  |  | 	{0x0, 0x0003, 0x0006},	/* TG FR Phase Adjust */ | 
					
						
							|  |  |  | 	{0x0, 0x0001, 0x0007},	/* TG FCDS Phase Adjust */ | 
					
						
							|  |  |  | 	{0x0, 0x0039, 0x0008},	/* TG FS Phase Adjust */ | 
					
						
							|  |  |  | 	{0x0, 0x0088, 0x000a},	/* TG MH1 */ | 
					
						
							|  |  |  | 	{0x0, 0x0003, 0x000f},	/* TG Pixel ID */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* Like below, unexplained toglleing */ | 
					
						
							|  |  |  | 	{0x0, 0x0080, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0000, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0080, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0004, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0000, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0000, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0040, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0017, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x00c0, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0000, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0080, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0006, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0080, 0x000c}, | 
					
						
							|  |  |  | 	{0x0, 0x0004, 0x000d}, | 
					
						
							|  |  |  | 	{0x0, 0x0002, 0x0003}, | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef DSPWIN_SET
 | 
					
						
							|  |  |  | 	{0x1, 0x001c, 0x0017},	/* CCDSP W1 Start X */ | 
					
						
							|  |  |  | 	{0x1, 0x00e2, 0x0019},	/* CCDSP W2 Start X */ | 
					
						
							|  |  |  | 	{0x1, 0x001c, 0x001b},	/* CCDSP W3 Start X */ | 
					
						
							|  |  |  | 	{0x1, 0x00e2, 0x001d},	/* CCDSP W4 Start X */ | 
					
						
							|  |  |  | 	{0x1, 0x00aa, 0x001f},	/* CCDSP W5 Start X */ | 
					
						
							|  |  |  | 	{0x1, 0x0070, 0x0020},	/* CCDSP W5 Start Y */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 	{0x0, 0x0001, 0x0010},	/* TG Start Clock */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*	{0x2, 0x006a, 0x0001},	 * C/S Enable ISOSYNCH Packet Engine */ | 
					
						
							|  |  |  | 	{0x2, 0x0068, 0x0001},	/* C/S Diable ISOSYNCH Packet Engine */ | 
					
						
							|  |  |  | 	{0x2, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{0x2, 0x0043, 0x0000},	/* C/S Set Timing Mode, Disable TG soft reset */ | 
					
						
							|  |  |  | 	{0x2, 0x0043, 0x0000},	/* C/S Set Timing Mode, Disable TG soft reset */ | 
					
						
							|  |  |  | 	{0x2, 0x0002, 0x0005},	/* C/S GPIO */ | 
					
						
							|  |  |  | 	{0x2, 0x0003, 0x0005},	/* C/S GPIO */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{0x2, 0x006a, 0x0001},	/* C/S Enable ISOSYNCH Packet Engine */ | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Data used to initialize a SPCA501C with HV7131B sensor. | 
					
						
							|  |  |  |  * From a capture file taken with USBSnoop v 1.5 | 
					
						
							|  |  |  |  * I have a "SPCA501C pc camera chipset" manual by sunplus, but some | 
					
						
							|  |  |  |  * of the value meanings are obscure or simply "reserved". | 
					
						
							|  |  |  |  * to do list: | 
					
						
							|  |  |  |  * 1) Understand what every value means | 
					
						
							|  |  |  |  * 2) Understand why some values seem to appear more than once | 
					
						
							|  |  |  |  * 3) Write a small comment for each line of the following arrays. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501c_arowana_open_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	/* bmRequest,value,index */ | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0006, 0x0011}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0012}, | 
					
						
							|  |  |  | 	{0x01, 0x0014, 0x0013}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0014}, | 
					
						
							|  |  |  | 	{0x01, 0x0042, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0052}, | 
					
						
							|  |  |  | 	{0x01, 0x0051, 0x0053}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0054}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0055}, | 
					
						
							|  |  |  | 	{0x00, 0x0025, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0026, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0027, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x008a, 0x0000}, | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501c_arowana_init_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	/* bmRequest,value,index */ | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0006, 0x0011}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0012}, | 
					
						
							|  |  |  | 	{0x01, 0x0014, 0x0013}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0014}, | 
					
						
							|  |  |  | 	{0x01, 0x0042, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0052}, | 
					
						
							|  |  |  | 	{0x01, 0x0051, 0x0053}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0054}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0055}, | 
					
						
							|  |  |  | 	{0x00, 0x0025, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0026, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0027, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x008a, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0xfffd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0xffea, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0xfff4, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0xfffc, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0xffe3, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x001f, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0067, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x00c8, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0013}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xc000, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x000f, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0xfffd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0xffea, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0xfff4, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0xfffc, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0xffe3, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x001f, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0067, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0042, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0051, 0x0053}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xc000, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x000c, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024}, | 
					
						
							|  |  |  | 	{0x00, 0x00d5, 0x0025}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026}, | 
					
						
							|  |  |  | 	{0x00, 0x000b, 0x0027}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d0}, | 
					
						
							|  |  |  | 	{0xff, 0x00d8, 0x00d1}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d4}, | 
					
						
							|  |  |  | 	{0xff, 0x0000, 0x00d5}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0x00d1, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0x00f7, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ed, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0x00d8, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0038, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x100a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x001e, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0xfffd, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0xffea, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0xfff4, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0xfffc, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0xffe3, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x001f, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0067, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0042, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0051, 0x0053}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x0042, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0051, 0x0053}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002d, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x02, 0xc000, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
											
										 
											2009-11-14 13:09:05 -02:00
										 |  |  | /* Unknown camera from Ori Usbid 0x0000:0x0000 */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | /* Based on snoops from Ori Cohen */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501c_mysterious_open_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | /* DSP Registers */ | 
					
						
							|  |  |  | 	{0x01, 0x0016, 0x0011},	/* RGB offset */ | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0012}, | 
					
						
							|  |  |  | 	{0x01, 0x0006, 0x0013}, | 
					
						
							|  |  |  | 	{0x01, 0x0078, 0x0051}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0052}, | 
					
						
							|  |  |  | 	{0x01, 0x0046, 0x0053}, | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0054}, | 
					
						
							|  |  |  | 	{0x00, 0x0025, 0x0000}, | 
					
						
							|  |  |  | /*	{0x00, 0x0000, 0x0000 }, */ | 
					
						
							|  |  |  | /* Part 2 */ | 
					
						
							|  |  |  | /* TG Registers */ | 
					
						
							|  |  |  | 	{0x00, 0x0026, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0027, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x008a, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x2000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0015, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00ea, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0003, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0030, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x002b, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0031, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0032, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0033, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0023, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0034, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0002, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0050, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0051, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0052, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0054, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Based on snoops from Ori Cohen */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const __u16 spca501c_mysterious_init_data[][3] = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | /* Part 3 */ | 
					
						
							|  |  |  | /* TG registers */ | 
					
						
							|  |  |  | /*	{0x00, 0x0000, 0x0000}, */ | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0001}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x00, 0x0006, 0x0003}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0004}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0006}, | 
					
						
							|  |  |  | 	{0x00, 0x0040, 0x0007}, | 
					
						
							|  |  |  | 	{0x00, 0x00c0, 0x0008}, | 
					
						
							|  |  |  | 	{0x00, 0x004a, 0x0009}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000a}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000b}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000c}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x000d}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x000e}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x000f}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0010}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0011}, | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0012}, | 
					
						
							|  |  |  | 	{0x00, 0x0002, 0x0020}, | 
					
						
							|  |  |  | 	{0x00, 0x0080, 0x0021},	/* 640 */ | 
					
						
							|  |  |  | 	{0x00, 0x0001, 0x0022}, | 
					
						
							|  |  |  | 	{0x00, 0x00e0, 0x0023},	/* 480 */ | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0024},	/* Offset H hight */ | 
					
						
							|  |  |  | 	{0x00, 0x00d3, 0x0025},	/* low */ | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0026},	/* Offset V */ | 
					
						
							|  |  |  | 	{0x00, 0x000d, 0x0027},	/* low */ | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0046}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0047}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0048}, | 
					
						
							|  |  |  | 	{0x00, 0x0000, 0x0049}, | 
					
						
							|  |  |  | 	{0x00, 0x0008, 0x004a}, | 
					
						
							| 
									
										
										
										
											2010-10-19 04:29:10 -03:00
										 |  |  | /* DSP Registers	*/ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0002}, | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003},	/* Level Calc bit7 ->1 Auto */ | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0004}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x000f, 0x0008},	/* A11 Color correction coeff */ | 
					
						
							|  |  |  | 	{0x01, 0x002d, 0x0009},	/* A12 */ | 
					
						
							|  |  |  | 	{0x01, 0x0005, 0x000a},	/* A13 */ | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x000b},	/* A21 */ | 
					
						
							|  |  |  | 	{0x01, 0x00e0, 0x000c},	/* A22 */ | 
					
						
							|  |  |  | 	{0x01, 0x00fd, 0x000d},	/* A23 */ | 
					
						
							|  |  |  | 	{0x01, 0x00f4, 0x000e},	/* A31 */ | 
					
						
							|  |  |  | 	{0x01, 0x00e4, 0x000f},	/* A32 */ | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0010},	/* A33 */ | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0015},	/* Reserved */ | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0016},	/* Reserved */ | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017},	/* Win1 Start begin */ | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x001f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0020},	/* Win1 Start end */ | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x003e},	/* Reserved begin */ | 
					
						
							|  |  |  | 	{0x01, 0x0002, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0000, 0x0040}, | 
					
						
							|  |  |  | 	{0x01, 0x0035, 0x0041}, | 
					
						
							|  |  |  | 	{0x01, 0x0053, 0x0042}, | 
					
						
							|  |  |  | 	{0x01, 0x0069, 0x0043}, | 
					
						
							|  |  |  | 	{0x01, 0x007c, 0x0044}, | 
					
						
							|  |  |  | 	{0x01, 0x008c, 0x0045}, | 
					
						
							|  |  |  | 	{0x01, 0x009a, 0x0046}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0047}, | 
					
						
							|  |  |  | 	{0x01, 0x00b4, 0x0048}, | 
					
						
							|  |  |  | 	{0x01, 0x00bf, 0x0049}, | 
					
						
							|  |  |  | 	{0x01, 0x00ca, 0x004a}, | 
					
						
							|  |  |  | 	{0x01, 0x00d4, 0x004b}, | 
					
						
							|  |  |  | 	{0x01, 0x00dd, 0x004c}, | 
					
						
							|  |  |  | 	{0x01, 0x00e7, 0x004d}, | 
					
						
							|  |  |  | 	{0x01, 0x00ef, 0x004e}, | 
					
						
							|  |  |  | 	{0x01, 0x00f8, 0x004f}, | 
					
						
							|  |  |  | 	{0x01, 0x00ff, 0x0050}, | 
					
						
							|  |  |  | 	{0x01, 0x0003, 0x0056},	/* Reserved end */ | 
					
						
							|  |  |  | 	{0x01, 0x0060, 0x0057},	/* Edge Gain */ | 
					
						
							|  |  |  | 	{0x01, 0x0040, 0x0058}, | 
					
						
							|  |  |  | 	{0x01, 0x0011, 0x0059},	/* Edge Bandwidth */ | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x005a}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0x0015, 0x0006}, | 
					
						
							|  |  |  | 	{0x02, 0x200a, 0x0007}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0xc000, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x000f, 0x0005}, | 
					
						
							|  |  |  | 	{0x02, 0xa048, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0022, 0x0004}, | 
					
						
							|  |  |  | 	{0x05, 0x0025, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							| 
									
										
										
										
											2010-10-19 04:29:10 -03:00
										 |  |  | /* Part 4 */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0021, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x00d2, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0020, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0000, 0x0000}, | 
					
						
							|  |  |  | 	{0x00, 0x0090, 0x0005}, | 
					
						
							|  |  |  | 	{0x01, 0x00a6, 0x0000}, | 
					
						
							|  |  |  | 	{0x02, 0x0000, 0x0005}, | 
					
						
							|  |  |  | 	{0x05, 0x0026, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x0001, 0x0000}, | 
					
						
							|  |  |  | 	{0x05, 0x0027, 0x0001}, | 
					
						
							|  |  |  | 	{0x05, 0x004e, 0x0000}, | 
					
						
							| 
									
										
										
										
											2010-10-19 04:29:10 -03:00
										 |  |  | /* Part 5 */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	{0x01, 0x0003, 0x003f}, | 
					
						
							|  |  |  | 	{0x01, 0x0001, 0x0056}, | 
					
						
							|  |  |  | 	{0x01, 0x000f, 0x0008}, | 
					
						
							|  |  |  | 	{0x01, 0x002d, 0x0009}, | 
					
						
							|  |  |  | 	{0x01, 0x0005, 0x000a}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x000b}, | 
					
						
							|  |  |  | 	{0x01, 0xffe0, 0x000c}, | 
					
						
							|  |  |  | 	{0x01, 0xfffd, 0x000d}, | 
					
						
							|  |  |  | 	{0x01, 0xfff4, 0x000e}, | 
					
						
							|  |  |  | 	{0x01, 0xffe4, 0x000f}, | 
					
						
							|  |  |  | 	{0x01, 0x0028, 0x0010}, | 
					
						
							|  |  |  | 	{0x01, 0x00a8, 0x0001}, | 
					
						
							|  |  |  | 	{0x01, 0x0066, 0x0007}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0017}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x0018}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x0019}, | 
					
						
							|  |  |  | 	{0x01, 0x0023, 0x001a}, | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x001b}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001c}, | 
					
						
							|  |  |  | 	{0x01, 0x00ce, 0x001d}, | 
					
						
							|  |  |  | 	{0x01, 0x008d, 0x001e}, | 
					
						
							|  |  |  | 	{0x01, 0x00c8, 0x0015},	/* c8 Poids fort Luma */ | 
					
						
							|  |  |  | 	{0x01, 0x0032, 0x0016},	/* 32 */ | 
					
						
							|  |  |  | 	{0x01, 0x0016, 0x0011},	/* R 00 */ | 
					
						
							|  |  |  | 	{0x01, 0x0016, 0x0012},	/* G 00 */ | 
					
						
							|  |  |  | 	{0x01, 0x0016, 0x0013},	/* B 00 */ | 
					
						
							|  |  |  | 	{0x01, 0x000a, 0x0003}, | 
					
						
							|  |  |  | 	{0x02, 0xc002, 0x0001}, | 
					
						
							|  |  |  | 	{0x02, 0x0007, 0x0005}, | 
					
						
							|  |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | static int reg_write(struct gspca_dev *gspca_dev, | 
					
						
							|  |  |  | 					__u16 req, __u16 index, __u16 value) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							|  |  |  | 	int ret; | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	struct usb_device *dev = gspca_dev->dev; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ret = usb_control_msg(dev, | 
					
						
							|  |  |  | 			usb_sndctrlpipe(dev, 0), | 
					
						
							|  |  |  | 			req, | 
					
						
							|  |  |  | 			USB_TYPE_VENDOR | USB_RECIP_DEVICE, | 
					
						
							|  |  |  | 			value, index, NULL, 0, 500); | 
					
						
							|  |  |  | 	PDEBUG(D_USBO, "reg write: 0x%02x 0x%02x 0x%02x", | 
					
						
							|  |  |  | 		req, index, value); | 
					
						
							|  |  |  | 	if (ret < 0) | 
					
						
							| 
									
										
										
										
											2011-08-21 19:56:57 -03:00
										 |  |  | 		pr_err("reg write: error %d\n", ret); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	return ret; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | static int write_vector(struct gspca_dev *gspca_dev, const __u16 data[][3]) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							|  |  |  | 	int ret, i = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	while (data[i][0] != 0 || data[i][1] != 0 || data[i][2] != 0) { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 		ret = reg_write(gspca_dev, data[i][0], data[i][2], | 
					
						
							|  |  |  | 								data[i][1]); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		if (ret < 0) { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 			PERR("Reg write failed for 0x%02x,0x%02x,0x%02x", | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 				data[i][0], data[i][1], data[i][2]); | 
					
						
							|  |  |  | 			return ret; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		i++; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static void setbrightness(struct gspca_dev *gspca_dev, s32 val) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x12, val); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static void setcontrast(struct gspca_dev *gspca_dev, s32 val) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, 0x00, 0x00, (val >> 8) & 0xff); | 
					
						
							|  |  |  | 	reg_write(gspca_dev, 0x00, 0x01, val & 0xff); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static void setcolors(struct gspca_dev *gspca_dev, s32 val) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x0c, val); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static void setblue_balance(struct gspca_dev *gspca_dev, s32 val) | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x11, val); | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static void setred_balance(struct gspca_dev *gspca_dev, s32 val) | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x13, val); | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | /* 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; | 
					
						
							| 
									
										
										
										
											2008-07-25 08:53:03 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	cam = &gspca_dev->cam; | 
					
						
							|  |  |  | 	cam->cam_mode = vga_mode; | 
					
						
							| 
									
										
										
										
											2009-07-22 00:02:29 -03:00
										 |  |  | 	cam->nmodes = ARRAY_SIZE(vga_mode); | 
					
						
							| 
									
										
										
										
											2008-07-25 08:53:03 -03:00
										 |  |  | 	sd->subtype = id->driver_info; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-17 14:52:56 -03:00
										 |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* this function is called at probe and resume time */ | 
					
						
							|  |  |  | static int sd_init(struct gspca_dev *gspca_dev) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	struct sd *sd = (struct sd *) gspca_dev; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	switch (sd->subtype) { | 
					
						
							|  |  |  | 	case Arowana300KCMOSCamera: | 
					
						
							|  |  |  | 	case SmileIntlCamera: | 
					
						
							|  |  |  | 		/* Arowana 300k CMOS Camera data */ | 
					
						
							|  |  |  | 		if (write_vector(gspca_dev, spca501c_arowana_init_data)) | 
					
						
							|  |  |  | 			goto error; | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case MystFromOriUnknownCamera: | 
					
						
							| 
									
										
										
											
												tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
											
										 
											2009-11-14 13:09:05 -02:00
										 |  |  | 		/* Unknown Ori CMOS Camera data */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		if (write_vector(gspca_dev, spca501c_mysterious_open_data)) | 
					
						
							|  |  |  | 			goto error; | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		/* generic spca501 init data */ | 
					
						
							|  |  |  | 		if (write_vector(gspca_dev, spca501_init_data)) | 
					
						
							|  |  |  | 			goto error; | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-11-17 14:52:56 -03:00
										 |  |  | 	PDEBUG(D_STREAM, "Initializing SPCA501 finished"); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	return 0; | 
					
						
							|  |  |  | error: | 
					
						
							|  |  |  | 	return -EINVAL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-17 14:52:56 -03:00
										 |  |  | static int sd_start(struct gspca_dev *gspca_dev) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							|  |  |  | 	struct sd *sd = (struct sd *) gspca_dev; | 
					
						
							| 
									
										
										
										
											2008-11-17 14:52:56 -03:00
										 |  |  | 	int mode; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	switch (sd->subtype) { | 
					
						
							|  |  |  | 	case ThreeComHomeConnectLite: | 
					
						
							|  |  |  | 		/* Special handling for 3com data */ | 
					
						
							|  |  |  | 		write_vector(gspca_dev, spca501_3com_open_data); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case Arowana300KCMOSCamera: | 
					
						
							|  |  |  | 	case SmileIntlCamera: | 
					
						
							|  |  |  | 		/* Arowana 300k CMOS Camera data */ | 
					
						
							|  |  |  | 		write_vector(gspca_dev, spca501c_arowana_open_data); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case MystFromOriUnknownCamera: | 
					
						
							| 
									
										
										
											
												tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
											
										 
											2009-11-14 13:09:05 -02:00
										 |  |  | 		/* Unknown CMOS Camera data */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		write_vector(gspca_dev, spca501c_mysterious_init_data); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		/* Generic 501 open data */ | 
					
						
							|  |  |  | 		write_vector(gspca_dev, spca501_open_data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* memorize the wanted pixel format */ | 
					
						
							| 
									
										
										
										
											2008-07-05 11:49:20 -03:00
										 |  |  | 	mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* Enable ISO packet machine CTRL reg=2,
 | 
					
						
							|  |  |  | 	 * index=1 bitmask=0x2 (bit ordinal 1) */ | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA50X_REG_USB, 0x6, 0x94); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	switch (mode) { | 
					
						
							|  |  |  | 	case 0: /* 640x480 */ | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 		reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x004a); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		break; | 
					
						
							|  |  |  | 	case 1: /* 320x240 */ | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 		reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x104a); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		break; | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | /*	case 2:  * 160x120 */ | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 		reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x204a); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		break; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x01, 0x02); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-20 06:39:08 -03:00
										 |  |  | 	return 0; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void sd_stopN(struct gspca_dev *gspca_dev) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	/* Disable ISO packet
 | 
					
						
							|  |  |  | 	 * machine CTRL reg=2, index=1 bitmask=0x0 (bit ordinal 1) */ | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x01, 0x00); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-18 06:33:08 -03:00
										 |  |  | /* called on streamoff with alt 0 and on disconnect */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | static void sd_stop0(struct gspca_dev *gspca_dev) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2008-11-18 06:33:08 -03:00
										 |  |  | 	if (!gspca_dev->present) | 
					
						
							|  |  |  | 		return; | 
					
						
							| 
									
										
										
										
											2013-02-04 13:17:55 -03:00
										 |  |  | 	reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x05, 0x00); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void sd_pkt_scan(struct gspca_dev *gspca_dev, | 
					
						
							| 
									
										
										
										
											2009-11-13 09:21:03 -03:00
										 |  |  | 			u8 *data,			/* isoc packet */ | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 			int len)			/* iso packet length */ | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	switch (data[0]) { | 
					
						
							|  |  |  | 	case 0:				/* start of frame */ | 
					
						
							| 
									
										
										
										
											2009-11-13 09:21:03 -03:00
										 |  |  | 		gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		data += SPCA501_OFFSET_DATA; | 
					
						
							|  |  |  | 		len -= SPCA501_OFFSET_DATA; | 
					
						
							| 
									
										
										
										
											2009-11-13 09:21:03 -03:00
										 |  |  | 		gspca_frame_add(gspca_dev, FIRST_PACKET, data, len); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 		return; | 
					
						
							|  |  |  | 	case 0xff:			/* drop */ | 
					
						
							|  |  |  | /*		gspca_dev->last_packet_type = DISCARD_PACKET; */ | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	data++; | 
					
						
							|  |  |  | 	len--; | 
					
						
							| 
									
										
										
										
											2009-11-13 09:21:03 -03:00
										 |  |  | 	gspca_frame_add(gspca_dev, INTER_PACKET, data, len); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static int sd_s_ctrl(struct v4l2_ctrl *ctrl) | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	struct gspca_dev *gspca_dev = | 
					
						
							|  |  |  | 		container_of(ctrl->handler, struct gspca_dev, ctrl_handler); | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	gspca_dev->usb_err = 0; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	if (!gspca_dev->streaming) | 
					
						
							|  |  |  | 		return 0; | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	switch (ctrl->id) { | 
					
						
							|  |  |  | 	case V4L2_CID_BRIGHTNESS: | 
					
						
							|  |  |  | 		setbrightness(gspca_dev, ctrl->val); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case V4L2_CID_CONTRAST: | 
					
						
							|  |  |  | 		setcontrast(gspca_dev, ctrl->val); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case V4L2_CID_SATURATION: | 
					
						
							|  |  |  | 		setcolors(gspca_dev, ctrl->val); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case V4L2_CID_BLUE_BALANCE: | 
					
						
							|  |  |  | 		setblue_balance(gspca_dev, ctrl->val); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	case V4L2_CID_RED_BALANCE: | 
					
						
							|  |  |  | 		setred_balance(gspca_dev, ctrl->val); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return gspca_dev->usb_err; | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static const struct v4l2_ctrl_ops sd_ctrl_ops = { | 
					
						
							|  |  |  | 	.s_ctrl = sd_s_ctrl, | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | static int sd_init_controls(struct gspca_dev *gspca_dev) | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	gspca_dev->vdev.ctrl_handler = hdl; | 
					
						
							|  |  |  | 	v4l2_ctrl_handler_init(hdl, 5); | 
					
						
							|  |  |  | 	v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, | 
					
						
							|  |  |  | 			V4L2_CID_BRIGHTNESS, 0, 127, 1, 0); | 
					
						
							|  |  |  | 	v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, | 
					
						
							|  |  |  | 			V4L2_CID_CONTRAST, 0, 64725, 1, 64725); | 
					
						
							|  |  |  | 	v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, | 
					
						
							|  |  |  | 			V4L2_CID_SATURATION, 0, 63, 1, 20); | 
					
						
							|  |  |  | 	v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, | 
					
						
							|  |  |  | 			V4L2_CID_BLUE_BALANCE, 0, 127, 1, 0); | 
					
						
							|  |  |  | 	v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, | 
					
						
							|  |  |  | 			V4L2_CID_RED_BALANCE, 0, 127, 1, 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (hdl->error) { | 
					
						
							|  |  |  | 		pr_err("Could not initialize controls\n"); | 
					
						
							|  |  |  | 		return hdl->error; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-11-17 15:03:03 -03:00
										 |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | /* sub-driver description */ | 
					
						
							| 
									
										
										
										
											2008-07-04 11:16:16 -03:00
										 |  |  | static const struct sd_desc sd_desc = { | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	.name = MODULE_NAME, | 
					
						
							|  |  |  | 	.config = sd_config, | 
					
						
							| 
									
										
										
										
											2008-09-03 17:12:16 -03:00
										 |  |  | 	.init = sd_init, | 
					
						
							| 
									
										
										
										
											2012-05-16 07:38:45 -03:00
										 |  |  | 	.init_controls = sd_init_controls, | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	.start = sd_start, | 
					
						
							|  |  |  | 	.stopN = sd_stopN, | 
					
						
							|  |  |  | 	.stop0 = sd_stop0, | 
					
						
							|  |  |  | 	.pkt_scan = sd_pkt_scan, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* -- module initialisation -- */ | 
					
						
							| 
									
										
										
										
											2011-01-13 05:20:29 -03:00
										 |  |  | static const struct usb_device_id device_table[] = { | 
					
						
							| 
									
										
										
										
											2008-07-26 14:30:01 -03:00
										 |  |  | 	{USB_DEVICE(0x040a, 0x0002), .driver_info = KodakDVC325}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x0497, 0xc001), .driver_info = SmileIntlCamera}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x0506, 0x00df), .driver_info = ThreeComHomeConnectLite}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x0733, 0x0401), .driver_info = IntelCreateAndShare}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x0733, 0x0402), .driver_info = ViewQuestM318B}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x1776, 0x501c), .driver_info = Arowana300KCMOSCamera}, | 
					
						
							|  |  |  | 	{USB_DEVICE(0x0000, 0x0000), .driver_info = MystFromOriUnknownCamera}, | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | 	{} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | MODULE_DEVICE_TABLE(usb, device_table); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* -- device connect -- */ | 
					
						
							|  |  |  | static int sd_probe(struct usb_interface *intf, | 
					
						
							|  |  |  | 			const struct usb_device_id *id) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), | 
					
						
							|  |  |  | 				THIS_MODULE); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static struct usb_driver sd_driver = { | 
					
						
							|  |  |  | 	.name = MODULE_NAME, | 
					
						
							|  |  |  | 	.id_table = device_table, | 
					
						
							|  |  |  | 	.probe = sd_probe, | 
					
						
							|  |  |  | 	.disconnect = gspca_disconnect, | 
					
						
							| 
									
										
										
										
											2008-09-03 16:48:10 -03:00
										 |  |  | #ifdef CONFIG_PM
 | 
					
						
							|  |  |  | 	.suspend = gspca_suspend, | 
					
						
							|  |  |  | 	.resume = gspca_resume, | 
					
						
							| 
									
										
										
										
											2012-06-30 06:44:47 -03:00
										 |  |  | 	.reset_resume = gspca_resume, | 
					
						
							| 
									
										
										
										
											2008-09-03 16:48:10 -03:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-06-30 15:50:11 -03:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-18 09:46:12 -08:00
										 |  |  | module_usb_driver(sd_driver); |