diff options
author | Jean-Francois Moine <moinejf@free.fr> | 2009-11-04 14:38:04 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-05 15:41:20 -0500 |
commit | 56205cc0dd703be70b4ea1138a7e774e058d79fa (patch) | |
tree | 36c8ebb1329e17c13d0ac89d7cc82f9af8bab8c4 /drivers/media/video/gspca/zc3xx.c | |
parent | 350d6407f84db58e2dfb5a5a5283982130746a41 (diff) |
V4L/DVB (13323): gspca - zc3xx: Adjust the exchanges of sensors mi0360soc and pb0330.
- the pb03303x exchanges were the mi0360soc ones
- add the new sensor mi0360soc
- the new exchanges are taken from the info file of the ms-win driver
of the webcams 0ac8:301b and 0ac8:303b (vm30x.inf)
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/zc3xx.c')
-rw-r--r-- | drivers/media/video/gspca/zc3xx.c | 823 |
1 files changed, 335 insertions, 488 deletions
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c index e57f9dd68a4..11305079224 100644 --- a/drivers/media/video/gspca/zc3xx.c +++ b/drivers/media/video/gspca/zc3xx.c | |||
@@ -61,17 +61,18 @@ struct sd { | |||
61 | #define SENSOR_HV7131C 6 | 61 | #define SENSOR_HV7131C 6 |
62 | #define SENSOR_ICM105A 7 | 62 | #define SENSOR_ICM105A 7 |
63 | #define SENSOR_MC501CB 8 | 63 | #define SENSOR_MC501CB 8 |
64 | #define SENSOR_OV7620 9 | 64 | #define SENSOR_MI0360SOC 9 |
65 | /*#define SENSOR_OV7648 9 - same values */ | 65 | #define SENSOR_OV7620 10 |
66 | #define SENSOR_OV7630C 10 | 66 | /*#define SENSOR_OV7648 10 - same values */ |
67 | #define SENSOR_PAS106 11 | 67 | #define SENSOR_OV7630C 11 |
68 | #define SENSOR_PAS202B 12 | 68 | #define SENSOR_PAS106 12 |
69 | #define SENSOR_PB0330 13 | 69 | #define SENSOR_PAS202B 13 |
70 | #define SENSOR_PO2030 14 | 70 | #define SENSOR_PB0330 14 /* (MI0360) */ |
71 | #define SENSOR_TAS5130CK 15 | 71 | #define SENSOR_PO2030 15 |
72 | #define SENSOR_TAS5130CXX 16 | 72 | #define SENSOR_TAS5130CK 16 |
73 | #define SENSOR_TAS5130C_VF0250 17 | 73 | #define SENSOR_TAS5130CXX 17 |
74 | #define SENSOR_MAX 18 | 74 | #define SENSOR_TAS5130C_VF0250 18 |
75 | #define SENSOR_MAX 19 | ||
75 | unsigned short chip_revision; | 76 | unsigned short chip_revision; |
76 | 77 | ||
77 | u8 *jpeg_hdr; | 78 | u8 *jpeg_hdr; |
@@ -4235,170 +4236,80 @@ static const struct usb_action pas202b_NoFlikerScale[] = { | |||
4235 | {} | 4236 | {} |
4236 | }; | 4237 | }; |
4237 | 4238 | ||
4238 | static const struct usb_action pb03303x_Initial[] = { | 4239 | /* mi0360soc and pb0330 from vm30x.inf for 0ac8:301b and 0ac8:303b 07/02/13 */ |
4240 | static const struct usb_action mi0360soc_Initial[] = { /* 640x480 */ | ||
4239 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, | 4241 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, |
4240 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, | 4242 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, |
4241 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, | 4243 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, |
4242 | {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, | 4244 | {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, |
4243 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, | 4245 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, |
4244 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, | 4246 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, |
4245 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, | 4247 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, |
4246 | {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, | 4248 | {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, |
4247 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, /* 8b -> dc */ | 4249 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, |
4248 | {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, | 4250 | {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, |
4249 | {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4251 | {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC}, /*jfm: was 03*/ |
4250 | {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4252 | /* {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, */ |
4251 | {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, | 4253 | {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, |
4252 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, | 4254 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, |
4253 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, | 4255 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, |
4254 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, | 4256 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, |
4255 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, | 4257 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, |
4258 | {0xdd, 0x00, 0x0200}, | ||
4256 | {0xaa, 0x01, 0x0001}, | 4259 | {0xaa, 0x01, 0x0001}, |
4257 | {0xaa, 0x06, 0x0000}, | 4260 | {0xaa, 0x06, 0x0000}, |
4258 | {0xaa, 0x08, 0x0483}, | 4261 | {0xaa, 0x08, 0x0483}, |
4259 | {0xaa, 0x01, 0x0004}, | 4262 | {0xaa, 0x01, 0x0004}, |
4260 | {0xaa, 0x08, 0x0006}, | 4263 | {0xaa, 0x08, 0x0006}, |
4261 | {0xaa, 0x02, 0x0011}, | 4264 | {0xaa, 0x02, 0x0011}, |
4262 | {0xaa, 0x03, 0x01e7}, | 4265 | {0xaa, 0x03, 0x01e5}, /*jfm: was 01e7*/ |
4263 | {0xaa, 0x04, 0x0287}, | 4266 | {0xaa, 0x04, 0x0285}, /*jfm: was 0287*/ |
4264 | {0xaa, 0x07, 0x3002}, | 4267 | {0xaa, 0x07, 0x3002}, |
4265 | {0xaa, 0x20, 0x1100}, | 4268 | {0xaa, 0x20, 0x5100}, /*jfm: was 1100*/ |
4266 | {0xaa, 0x35, 0x0050}, | 4269 | {0xaa, 0x35, 0x507f}, /*jfm: was 0050*/ |
4267 | {0xaa, 0x30, 0x0005}, | 4270 | {0xaa, 0x30, 0x0005}, |
4268 | {0xaa, 0x31, 0x0000}, | 4271 | {0xaa, 0x31, 0x0000}, |
4269 | {0xaa, 0x58, 0x0078}, | 4272 | {0xaa, 0x58, 0x0078}, |
4270 | {0xaa, 0x62, 0x0411}, | 4273 | {0xaa, 0x62, 0x0411}, |
4271 | {0xaa, 0x2b, 0x0028}, | 4274 | {0xaa, 0x2b, 0x0028}, |
4272 | {0xaa, 0x2c, 0x0030}, | 4275 | {0xaa, 0x2c, 0x007f}, /*jfm: was 0030*/ |
4273 | {0xaa, 0x2d, 0x0030}, | 4276 | {0xaa, 0x2d, 0x007f}, /*jfm: was 0030*/ |
4274 | {0xaa, 0x2e, 0x0028}, | 4277 | {0xaa, 0x2e, 0x007f}, /*jfm: was 0030*/ |
4275 | {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID}, | 4278 | {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID}, |
4276 | {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, | 4279 | {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION}, /*jfm: was 37*/ |
4277 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4280 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4278 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, | 4281 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, |
4279 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, | 4282 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, |
4280 | {0xa0, 0x00, 0x01ad}, | 4283 | {0xa0, 0x09, 0x01ad}, /*jfm: was 00*/ |
4281 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, | 4284 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, |
4282 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, | 4285 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, |
4283 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, | 4286 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, |
4284 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, | 4287 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, |
4285 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, | 4288 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, |
4286 | {0xa0, 0x78, ZC3XX_R18D_YTARGET}, | 4289 | {0xa0, 0x6c, ZC3XX_R18D_YTARGET}, /* jfm: was 78 */ |
4287 | {0xa0, 0x61, ZC3XX_R116_RGAIN}, | 4290 | {0xa0, 0x61, ZC3XX_R116_RGAIN}, |
4288 | {0xa0, 0x65, ZC3XX_R118_BGAIN}, | 4291 | {0xa0, 0x65, ZC3XX_R118_BGAIN}, |
4289 | |||
4290 | {0xa1, 0x01, 0x0002}, | ||
4291 | {0xa0, 0x09, 0x01ad}, | ||
4292 | {0xa0, 0x15, 0x01ae}, | ||
4293 | {0xa0, 0x0d, 0x003a}, | ||
4294 | {0xa0, 0x02, 0x003b}, | ||
4295 | {0xa0, 0x00, 0x0038}, | ||
4296 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4297 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4298 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4299 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4300 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4301 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4302 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4303 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4304 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4305 | |||
4306 | {0xa1, 0x01, 0x0008}, | ||
4307 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, | ||
4308 | {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00}, | ||
4309 | {0xa1, 0x01, 0x01c8}, | ||
4310 | {0xa1, 0x01, 0x01c9}, | ||
4311 | {0xa1, 0x01, 0x01ca}, | ||
4312 | {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05}, /* sharpness- */ | ||
4313 | {0xa0, 0x13, ZC3XX_R120_GAMMA00}, /* gamma 4 */ | ||
4314 | {0xa0, 0x38, ZC3XX_R121_GAMMA01}, | ||
4315 | {0xa0, 0x59, ZC3XX_R122_GAMMA02}, | ||
4316 | {0xa0, 0x79, ZC3XX_R123_GAMMA03}, | ||
4317 | {0xa0, 0x92, ZC3XX_R124_GAMMA04}, | ||
4318 | {0xa0, 0xa7, ZC3XX_R125_GAMMA05}, | ||
4319 | {0xa0, 0xb9, ZC3XX_R126_GAMMA06}, | ||
4320 | {0xa0, 0xc8, ZC3XX_R127_GAMMA07}, | ||
4321 | {0xa0, 0xd4, ZC3XX_R128_GAMMA08}, | ||
4322 | {0xa0, 0xdf, ZC3XX_R129_GAMMA09}, | ||
4323 | {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A}, | ||
4324 | {0xa0, 0xee, ZC3XX_R12B_GAMMA0B}, | ||
4325 | {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C}, | ||
4326 | {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D}, | ||
4327 | {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E}, | ||
4328 | {0xa0, 0xff, ZC3XX_R12F_GAMMA0F}, | ||
4329 | {0xa0, 0x26, ZC3XX_R130_GAMMA10}, | ||
4330 | {0xa0, 0x22, ZC3XX_R131_GAMMA11}, | ||
4331 | {0xa0, 0x20, ZC3XX_R132_GAMMA12}, | ||
4332 | {0xa0, 0x1c, ZC3XX_R133_GAMMA13}, | ||
4333 | {0xa0, 0x16, ZC3XX_R134_GAMMA14}, | ||
4334 | {0xa0, 0x13, ZC3XX_R135_GAMMA15}, | ||
4335 | {0xa0, 0x10, ZC3XX_R136_GAMMA16}, | ||
4336 | {0xa0, 0x0d, ZC3XX_R137_GAMMA17}, | ||
4337 | {0xa0, 0x0b, ZC3XX_R138_GAMMA18}, | ||
4338 | {0xa0, 0x09, ZC3XX_R139_GAMMA19}, | ||
4339 | {0xa0, 0x07, ZC3XX_R13A_GAMMA1A}, | ||
4340 | {0xa0, 0x06, ZC3XX_R13B_GAMMA1B}, | ||
4341 | {0xa0, 0x05, ZC3XX_R13C_GAMMA1C}, | ||
4342 | {0xa0, 0x04, ZC3XX_R13D_GAMMA1D}, | ||
4343 | {0xa0, 0x03, ZC3XX_R13E_GAMMA1E}, | ||
4344 | {0xa0, 0x02, ZC3XX_R13F_GAMMA1F}, | ||
4345 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4346 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4347 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4348 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4349 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4350 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4351 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4352 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4353 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4354 | |||
4355 | {0xa1, 0x01, 0x0180}, | ||
4356 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4357 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4358 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | ||
4359 | {0xaa, 0x05, 0x0009}, | ||
4360 | {0xaa, 0x09, 0x0134}, | ||
4361 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | ||
4362 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | ||
4363 | {0xa0, 0xec, ZC3XX_R192_EXPOSURELIMITLOW}, | ||
4364 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | ||
4365 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | ||
4366 | {0xa0, 0x9c, ZC3XX_R197_ANTIFLICKERLOW}, | ||
4367 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, | ||
4368 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, | ||
4369 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, | ||
4370 | {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4371 | {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0}, | ||
4372 | {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1}, | ||
4373 | {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2}, | ||
4374 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, | ||
4375 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4376 | {0xa0, 0x09, 0x01ad}, | ||
4377 | {0xa0, 0x15, 0x01ae}, | ||
4378 | {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4379 | {0xa1, 0x01, 0x0180}, | ||
4380 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4381 | {} | 4292 | {} |
4382 | }; | 4293 | }; |
4383 | 4294 | static const struct usb_action mi0360soc_InitialScale[] = { /* 320x240 */ | |
4384 | static const struct usb_action pb03303x_InitialScale[] = { | ||
4385 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, | 4295 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, |
4386 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, | 4296 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, |
4387 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, | 4297 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, |
4388 | {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, | 4298 | {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, |
4389 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, | 4299 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, |
4390 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, | 4300 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, |
4391 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, | 4301 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, |
4392 | {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, | 4302 | {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, |
4393 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, /* 8b -> dc */ | 4303 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, |
4394 | {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, | 4304 | {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, |
4395 | {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4305 | {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC}, /*jfm: was 03*/ |
4396 | {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4306 | /* {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, */ |
4397 | {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, | 4307 | {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, |
4398 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, | 4308 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, |
4399 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, | 4309 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, |
4400 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, | 4310 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, |
4401 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, | 4311 | {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, |
4312 | {0xdd, 0x00, 0x0200}, | ||
4402 | {0xaa, 0x01, 0x0001}, | 4313 | {0xaa, 0x01, 0x0001}, |
4403 | {0xaa, 0x06, 0x0000}, | 4314 | {0xaa, 0x06, 0x0000}, |
4404 | {0xaa, 0x08, 0x0483}, | 4315 | {0xaa, 0x08, 0x0483}, |
@@ -4408,111 +4319,111 @@ static const struct usb_action pb03303x_InitialScale[] = { | |||
4408 | {0xaa, 0x03, 0x01e7}, | 4319 | {0xaa, 0x03, 0x01e7}, |
4409 | {0xaa, 0x04, 0x0287}, | 4320 | {0xaa, 0x04, 0x0287}, |
4410 | {0xaa, 0x07, 0x3002}, | 4321 | {0xaa, 0x07, 0x3002}, |
4411 | {0xaa, 0x20, 0x1100}, | 4322 | {0xaa, 0x20, 0x5100}, /*jfm: was 1100*/ |
4412 | {0xaa, 0x35, 0x0050}, | 4323 | {0xaa, 0x35, 0x007f}, /*jfm: was 0050*/ |
4413 | {0xaa, 0x30, 0x0005}, | 4324 | {0xaa, 0x30, 0x0005}, |
4414 | {0xaa, 0x31, 0x0000}, | 4325 | {0xaa, 0x31, 0x0000}, |
4415 | {0xaa, 0x58, 0x0078}, | 4326 | {0xaa, 0x58, 0x0078}, |
4416 | {0xaa, 0x62, 0x0411}, | 4327 | {0xaa, 0x62, 0x0411}, |
4417 | {0xaa, 0x2b, 0x0028}, | 4328 | {0xaa, 0x2b, 0x007f}, /*jfm: was 28*/ |
4418 | {0xaa, 0x2c, 0x0030}, | 4329 | {0xaa, 0x2c, 0x007f}, /*jfm: was 30*/ |
4419 | {0xaa, 0x2d, 0x0030}, | 4330 | {0xaa, 0x2d, 0x007f}, /*jfm: was 30*/ |
4420 | {0xaa, 0x2e, 0x0028}, | 4331 | {0xaa, 0x2e, 0x007f}, /*jfm: was 28*/ |
4421 | {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID}, | 4332 | {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID}, |
4422 | {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, | 4333 | {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION}, /*jfm: was 37*/ |
4423 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4334 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4424 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, | 4335 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, |
4425 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, | 4336 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, |
4426 | {0xa0, 0x00, 0x01ad}, | 4337 | {0xa0, 0x09, 0x01ad}, /*jfm: was 00*/ |
4427 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, | 4338 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, |
4428 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, | 4339 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, |
4429 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, | 4340 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, |
4430 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, | 4341 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, |
4431 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, | 4342 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, |
4432 | {0xa0, 0x78, ZC3XX_R18D_YTARGET}, | 4343 | {0xa0, 0x6c, ZC3XX_R18D_YTARGET}, /*jfm: was 78*/ |
4433 | {0xa0, 0x61, ZC3XX_R116_RGAIN}, | 4344 | {0xa0, 0x61, ZC3XX_R116_RGAIN}, |
4434 | {0xa0, 0x65, ZC3XX_R118_BGAIN}, | 4345 | {0xa0, 0x65, ZC3XX_R118_BGAIN}, |
4435 | 4346 | {} | |
4436 | {0xa1, 0x01, 0x0002}, | 4347 | }; |
4437 | 4348 | static const struct usb_action mi360soc_AE50HZ[] = { | |
4438 | {0xa0, 0x09, 0x01ad}, | 4349 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, |
4439 | {0xa0, 0x15, 0x01ae}, | 4350 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4440 | 4351 | {0xbb, 0x00, 0x0562}, | |
4441 | {0xa0, 0x0d, 0x003a}, | 4352 | {0xbb, 0x01, 0x09aa}, |
4442 | {0xa0, 0x02, 0x003b}, | 4353 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4443 | {0xa0, 0x00, 0x0038}, | 4354 | {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID}, |
4444 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | 4355 | {0xa0, 0x9b, ZC3XX_R192_EXPOSURELIMITLOW}, |
4445 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | 4356 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4446 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | 4357 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4447 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | 4358 | {0xa0, 0x47, ZC3XX_R197_ANTIFLICKERLOW}, |
4448 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | 4359 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4449 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | 4360 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, |
4450 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | 4361 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4451 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | 4362 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, |
4452 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | 4363 | {0xa0, 0x62, ZC3XX_R01D_HSYNC_0}, |
4453 | 4364 | {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, | |
4454 | {0xa1, 0x01, 0x0008}, | 4365 | {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, |
4455 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* clock ? */ | 4366 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, |
4456 | {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00}, /* sharpness+ */ | 4367 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4457 | {0xa1, 0x01, 0x01c8}, | 4368 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, |
4458 | {0xa1, 0x01, 0x01c9}, | 4369 | {} |
4459 | {0xa1, 0x01, 0x01ca}, | 4370 | }; |
4460 | {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05}, /* sharpness- */ | 4371 | static const struct usb_action mi360soc_AE50HZScale[] = { |
4461 | 4372 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | |
4462 | {0xa0, 0x13, ZC3XX_R120_GAMMA00}, /* gamma 4 */ | 4373 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4463 | {0xa0, 0x38, ZC3XX_R121_GAMMA01}, | 4374 | {0xbb, 0x00, 0x0509}, |
4464 | {0xa0, 0x59, ZC3XX_R122_GAMMA02}, | 4375 | {0xbb, 0x01, 0x0934}, |
4465 | {0xa0, 0x79, ZC3XX_R123_GAMMA03}, | 4376 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4466 | {0xa0, 0x92, ZC3XX_R124_GAMMA04}, | 4377 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4467 | {0xa0, 0xa7, ZC3XX_R125_GAMMA05}, | 4378 | {0xa0, 0xd2, ZC3XX_R192_EXPOSURELIMITLOW}, |
4468 | {0xa0, 0xb9, ZC3XX_R126_GAMMA06}, | 4379 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4469 | {0xa0, 0xc8, ZC3XX_R127_GAMMA07}, | 4380 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4470 | {0xa0, 0xd4, ZC3XX_R128_GAMMA08}, | 4381 | {0xa0, 0x9a, ZC3XX_R197_ANTIFLICKERLOW}, |
4471 | {0xa0, 0xdf, ZC3XX_R129_GAMMA09}, | 4382 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4472 | {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A}, | 4383 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, |
4473 | {0xa0, 0xee, ZC3XX_R12B_GAMMA0B}, | 4384 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4474 | {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C}, | 4385 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, |
4475 | {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D}, | 4386 | {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0}, |
4476 | {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E}, | 4387 | {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1}, |
4477 | {0xa0, 0xff, ZC3XX_R12F_GAMMA0F}, | 4388 | {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2}, |
4478 | {0xa0, 0x26, ZC3XX_R130_GAMMA10}, | 4389 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, |
4479 | {0xa0, 0x22, ZC3XX_R131_GAMMA11}, | 4390 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, |
4480 | {0xa0, 0x20, ZC3XX_R132_GAMMA12}, | 4391 | {} |
4481 | {0xa0, 0x1c, ZC3XX_R133_GAMMA13}, | 4392 | }; |
4482 | {0xa0, 0x16, ZC3XX_R134_GAMMA14}, | 4393 | static const struct usb_action mi360soc_AE60HZ[] = { |
4483 | {0xa0, 0x13, ZC3XX_R135_GAMMA15}, | ||
4484 | {0xa0, 0x10, ZC3XX_R136_GAMMA16}, | ||
4485 | {0xa0, 0x0d, ZC3XX_R137_GAMMA17}, | ||
4486 | {0xa0, 0x0b, ZC3XX_R138_GAMMA18}, | ||
4487 | {0xa0, 0x09, ZC3XX_R139_GAMMA19}, | ||
4488 | {0xa0, 0x07, ZC3XX_R13A_GAMMA1A}, | ||
4489 | {0xa0, 0x06, ZC3XX_R13B_GAMMA1B}, | ||
4490 | {0xa0, 0x05, ZC3XX_R13C_GAMMA1C}, | ||
4491 | {0xa0, 0x04, ZC3XX_R13D_GAMMA1D}, | ||
4492 | {0xa0, 0x03, ZC3XX_R13E_GAMMA1E}, | ||
4493 | {0xa0, 0x02, ZC3XX_R13F_GAMMA1F}, | ||
4494 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4495 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4496 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4497 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4498 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4499 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4500 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4501 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4502 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4503 | |||
4504 | {0xa1, 0x01, 0x0180}, | ||
4505 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | 4394 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, |
4395 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | ||
4396 | {0xbb, 0x00, 0x053d}, | ||
4397 | {0xbb, 0x01, 0x096e}, | ||
4398 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | ||
4399 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | ||
4400 | {0xa0, 0xdd, ZC3XX_R192_EXPOSURELIMITLOW}, | ||
4401 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | ||
4402 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | ||
4403 | {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW}, | ||
4404 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, | ||
4405 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, | ||
4406 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, | ||
4407 | {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4408 | {0xa0, 0x62, ZC3XX_R01D_HSYNC_0}, | ||
4409 | {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, | ||
4410 | {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, | ||
4411 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, | ||
4412 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, | ||
4413 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4414 | {} | ||
4415 | }; | ||
4416 | static const struct usb_action mi360soc_AE60HZScale[] = { | ||
4506 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | 4417 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, |
4507 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | 4418 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4508 | {0xaa, 0x05, 0x0009}, | 4419 | {0xbb, 0x00, 0x0509}, |
4509 | {0xaa, 0x09, 0x0134}, | 4420 | {0xbb, 0x01, 0x0983}, |
4510 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | 4421 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4511 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | 4422 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4512 | {0xa0, 0xec, ZC3XX_R192_EXPOSURELIMITLOW}, | 4423 | {0xa0, 0x8f, ZC3XX_R192_EXPOSURELIMITLOW}, |
4513 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | 4424 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4514 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | 4425 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4515 | {0xa0, 0x9c, ZC3XX_R197_ANTIFLICKERLOW}, | 4426 | {0xa0, 0x81, ZC3XX_R197_ANTIFLICKERLOW}, |
4516 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, | 4427 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4517 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, | 4428 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, |
4518 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, | 4429 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
@@ -4522,20 +4433,60 @@ static const struct usb_action pb03303x_InitialScale[] = { | |||
4522 | {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2}, | 4433 | {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2}, |
4523 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, | 4434 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, |
4524 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | 4435 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, |
4525 | {0xa0, 0x09, 0x01ad}, | 4436 | {} |
4526 | {0xa0, 0x15, 0x01ae}, | 4437 | }; |
4527 | {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE}, | 4438 | static const struct usb_action mi360soc_AENoFliker[] = { |
4528 | {0xa1, 0x01, 0x0180}, | 4439 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, |
4440 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | ||
4441 | {0xbb, 0x00, 0x0509}, | ||
4442 | {0xbb, 0x01, 0x0960}, | ||
4443 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | ||
4444 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | ||
4445 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, | ||
4446 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | ||
4447 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | ||
4448 | {0xa0, 0x04, ZC3XX_R197_ANTIFLICKERLOW}, | ||
4449 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, | ||
4450 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, | ||
4451 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, | ||
4452 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4453 | {0xa0, 0x09, ZC3XX_R01D_HSYNC_0}, | ||
4454 | {0xa0, 0x40, ZC3XX_R01E_HSYNC_1}, | ||
4455 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4456 | {0xa0, 0xe0, ZC3XX_R020_HSYNC_3}, | ||
4457 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, | ||
4529 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | 4458 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, |
4530 | {} | 4459 | {} |
4531 | }; | 4460 | }; |
4532 | static const struct usb_action pb0330xx_Initial[] = { | 4461 | static const struct usb_action mi360soc_AENoFlikerScale[] = { |
4533 | {0xa1, 0x01, 0x0008}, | 4462 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, |
4534 | {0xa1, 0x01, 0x0008}, | 4463 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4464 | {0xbb, 0x00, 0x0534}, | ||
4465 | {0xbb, 0x02, 0x0960}, | ||
4466 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | ||
4467 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | ||
4468 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, | ||
4469 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | ||
4470 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | ||
4471 | {0xa0, 0x04, ZC3XX_R197_ANTIFLICKERLOW}, | ||
4472 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, | ||
4473 | {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE}, | ||
4474 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, | ||
4475 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4476 | {0xa0, 0x34, ZC3XX_R01D_HSYNC_0}, | ||
4477 | {0xa0, 0x60, ZC3XX_R01E_HSYNC_1}, | ||
4478 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4479 | {0xa0, 0xe0, ZC3XX_R020_HSYNC_3}, | ||
4480 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, | ||
4481 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4482 | {} | ||
4483 | }; | ||
4484 | |||
4485 | static const struct usb_action pb0330_Initial[] = { /* 640x480 */ | ||
4535 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, | 4486 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, |
4536 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00 */ | 4487 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00 */ |
4537 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, | 4488 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, |
4538 | {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, | 4489 | {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, |
4539 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, | 4490 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, |
4540 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, | 4491 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, |
4541 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, | 4492 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, |
@@ -4547,11 +4498,12 @@ static const struct usb_action pb0330xx_Initial[] = { | |||
4547 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, | 4498 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, |
4548 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, | 4499 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, |
4549 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, | 4500 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, |
4501 | {0xdd, 0x00, 0x0200}, | ||
4550 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4502 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4551 | {0xaa, 0x01, 0x0006}, | 4503 | {0xaa, 0x01, 0x0006}, |
4552 | {0xaa, 0x02, 0x0011}, | 4504 | {0xaa, 0x02, 0x0011}, |
4553 | {0xaa, 0x03, 0x01e7}, | 4505 | {0xaa, 0x03, 0x01e5}, /*jfm: was 1e7*/ |
4554 | {0xaa, 0x04, 0x0287}, | 4506 | {0xaa, 0x04, 0x0285}, /*jfm: was 0287*/ |
4555 | {0xaa, 0x06, 0x0003}, | 4507 | {0xaa, 0x06, 0x0003}, |
4556 | {0xaa, 0x07, 0x3002}, | 4508 | {0xaa, 0x07, 0x3002}, |
4557 | {0xaa, 0x20, 0x1100}, | 4509 | {0xaa, 0x20, 0x1100}, |
@@ -4569,88 +4521,21 @@ static const struct usb_action pb0330xx_Initial[] = { | |||
4569 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4521 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4570 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, | 4522 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, |
4571 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, | 4523 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, |
4572 | {0xa0, 0x00, 0x01ad}, | 4524 | {0xa0, 0x09, 0x01ad}, /*jfm: was 00 */ |
4525 | {0xa0, 0x15, 0x01ae}, | ||
4573 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, | 4526 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, |
4574 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, | 4527 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, |
4575 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, | 4528 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, |
4576 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, | 4529 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, |
4577 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, | 4530 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, |
4578 | {0xa0, 0x6c, ZC3XX_R18D_YTARGET}, | 4531 | {0xa0, 0x78, ZC3XX_R18D_YTARGET}, /*jfm: was 6c*/ |
4579 | {0xa1, 0x01, 0x0002}, | ||
4580 | {0xa0, 0x09, 0x01ad}, | ||
4581 | {0xa0, 0x15, 0x01ae}, | ||
4582 | {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT}, | ||
4583 | {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND}, | ||
4584 | {0xa1, 0x01, 0x0091}, | ||
4585 | {0xa1, 0x01, 0x0095}, | ||
4586 | {0xa1, 0x01, 0x0096}, | ||
4587 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4588 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4589 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4590 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4591 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4592 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4593 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4594 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4595 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4596 | {0xa1, 0x01, 0x0008}, | ||
4597 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* clock ? */ | ||
4598 | {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00}, /* sharpness+ */ | ||
4599 | {0xa1, 0x01, 0x01c8}, | ||
4600 | {0xa1, 0x01, 0x01c9}, | ||
4601 | {0xa1, 0x01, 0x01ca}, | ||
4602 | {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05}, /* sharpness- */ | ||
4603 | |||
4604 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4605 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4606 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4607 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4608 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4609 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4610 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4611 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4612 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4613 | {0xa1, 0x01, 0x0180}, | ||
4614 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4615 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | ||
4616 | {0xaa, 0x05, 0x0066}, | ||
4617 | {0xaa, 0x09, 0x02b2}, | ||
4618 | {0xaa, 0x10, 0x0002}, | ||
4619 | |||
4620 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, | ||
4621 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | ||
4622 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | ||
4623 | {0xa0, 0x8c, ZC3XX_R192_EXPOSURELIMITLOW}, | ||
4624 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | ||
4625 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | ||
4626 | {0xa0, 0x8a, ZC3XX_R197_ANTIFLICKERLOW}, | ||
4627 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, | ||
4628 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, | ||
4629 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, | ||
4630 | {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4631 | {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0}, | ||
4632 | {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1}, | ||
4633 | {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, | ||
4634 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, | ||
4635 | {0xa0, 0x09, 0x01ad}, | ||
4636 | {0xa0, 0x15, 0x01ae}, | ||
4637 | {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4638 | {0xa1, 0x01, 0x0180}, | ||
4639 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4640 | {0xa1, 0x01, 0x0008}, | ||
4641 | {0xa1, 0x01, 0x0007}, | ||
4642 | /* {0xa0, 0x30, 0x0007}, */ | ||
4643 | /* {0xa0, 0x00, 0x0007}, */ | ||
4644 | {} | 4532 | {} |
4645 | }; | 4533 | }; |
4646 | 4534 | static const struct usb_action pb0330_InitialScale[] = { /* 320x240 */ | |
4647 | static const struct usb_action pb0330xx_InitialScale[] = { | ||
4648 | {0xa1, 0x01, 0x0008}, | ||
4649 | {0xa1, 0x01, 0x0008}, | ||
4650 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, | 4535 | {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, |
4651 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00 */ | 4536 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00 */ |
4652 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, | 4537 | {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT}, |
4653 | {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, /* 10 */ | 4538 | {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, |
4654 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, | 4539 | {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, |
4655 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, | 4540 | {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, |
4656 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, | 4541 | {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, |
@@ -4662,6 +4547,7 @@ static const struct usb_action pb0330xx_InitialScale[] = { | |||
4662 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, | 4547 | {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, |
4663 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, | 4548 | {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, |
4664 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, | 4549 | {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, |
4550 | {0xdd, 0x00, 0x0200}, | ||
4665 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4551 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4666 | {0xaa, 0x01, 0x0006}, | 4552 | {0xaa, 0x01, 0x0006}, |
4667 | {0xaa, 0x02, 0x0011}, | 4553 | {0xaa, 0x02, 0x0011}, |
@@ -4684,53 +4570,43 @@ static const struct usb_action pb0330xx_InitialScale[] = { | |||
4684 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, | 4570 | {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, |
4685 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, | 4571 | {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, |
4686 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, | 4572 | {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, |
4687 | {0xa0, 0x00, 0x01ad}, | 4573 | {0xa0, 0x09, 0x01ad}, |
4574 | {0xa0, 0x15, 0x01ae}, | ||
4688 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, | 4575 | {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, |
4689 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, | 4576 | {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, |
4690 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, | 4577 | {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, |
4691 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, | 4578 | {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, |
4692 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, | 4579 | {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, |
4693 | {0xa0, 0x6c, ZC3XX_R18D_YTARGET}, | 4580 | {0xa0, 0x78, ZC3XX_R18D_YTARGET}, /*jfm: was 6c*/ |
4694 | {0xa1, 0x01, 0x0002}, | 4581 | {} |
4695 | {0xa0, 0x09, 0x01ad}, | 4582 | }; |
4696 | {0xa0, 0x15, 0x01ae}, | 4583 | static const struct usb_action pb0330_50HZ[] = { |
4697 | {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT}, | 4584 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4698 | {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND}, | 4585 | {0xbb, 0x00, 0x055c}, |
4699 | {0xa1, 0x01, 0x0091}, | 4586 | {0xbb, 0x01, 0x09aa}, |
4700 | {0xa1, 0x01, 0x0095}, | 4587 | {0xbb, 0x00, 0x1001}, |
4701 | {0xa1, 0x01, 0x0096}, | 4588 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4702 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | 4589 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4703 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | 4590 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4704 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | 4591 | {0xa0, 0xc4, ZC3XX_R192_EXPOSURELIMITLOW}, |
4705 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | 4592 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4706 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | 4593 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4707 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | 4594 | {0xa0, 0x47, ZC3XX_R197_ANTIFLICKERLOW}, |
4708 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | 4595 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4709 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | 4596 | {0xa0, 0x1a, ZC3XX_R18F_AEUNFREEZE}, |
4710 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | 4597 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4711 | {0xa1, 0x01, 0x0008}, | 4598 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, |
4712 | {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* clock ? */ | 4599 | {0xa0, 0x5c, ZC3XX_R01D_HSYNC_0}, |
4713 | {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00}, /* sharpness+ */ | 4600 | {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, |
4714 | {0xa1, 0x01, 0x01c8}, | 4601 | {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, |
4715 | {0xa1, 0x01, 0x01c9}, | 4602 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, |
4716 | {0xa1, 0x01, 0x01ca}, | 4603 | {} |
4717 | {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05}, /* sharpness- */ | 4604 | }; |
4718 | 4605 | static const struct usb_action pb0330_50HZScale[] = { | |
4719 | {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */ | ||
4720 | {0xa0, 0xf8, ZC3XX_R10B_RGB01}, | ||
4721 | {0xa0, 0xf8, ZC3XX_R10C_RGB02}, | ||
4722 | {0xa0, 0xf8, ZC3XX_R10D_RGB10}, | ||
4723 | {0xa0, 0x50, ZC3XX_R10E_RGB11}, | ||
4724 | {0xa0, 0xf8, ZC3XX_R10F_RGB12}, | ||
4725 | {0xa0, 0xf8, ZC3XX_R110_RGB20}, | ||
4726 | {0xa0, 0xf8, ZC3XX_R111_RGB21}, | ||
4727 | {0xa0, 0x50, ZC3XX_R112_RGB22}, | ||
4728 | {0xa1, 0x01, 0x0180}, | ||
4729 | {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4730 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, | 4606 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4731 | {0xaa, 0x05, 0x0066}, | 4607 | {0xbb, 0x00, 0x0566}, |
4732 | {0xaa, 0x09, 0x02b2}, | 4608 | {0xbb, 0x02, 0x09b2}, |
4733 | {0xaa, 0x10, 0x0002}, | 4609 | {0xbb, 0x00, 0x1002}, |
4734 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, | 4610 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4735 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, | 4611 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4736 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, | 4612 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
@@ -4738,124 +4614,102 @@ static const struct usb_action pb0330xx_InitialScale[] = { | |||
4738 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, | 4614 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4739 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, | 4615 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4740 | {0xa0, 0x8a, ZC3XX_R197_ANTIFLICKERLOW}, | 4616 | {0xa0, 0x8a, ZC3XX_R197_ANTIFLICKERLOW}, |
4741 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, | 4617 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4742 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, | 4618 | {0xa0, 0x1a, ZC3XX_R18F_AEUNFREEZE}, |
4743 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, | 4619 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4744 | {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, | 4620 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, |
4745 | {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0}, | 4621 | {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0}, |
4746 | {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1}, | 4622 | {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1}, |
4747 | {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, | 4623 | {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, |
4748 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, | 4624 | {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, |
4749 | {0xa0, 0x09, 0x01ad}, | ||
4750 | {0xa0, 0x15, 0x01ae}, | ||
4751 | {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4752 | {0xa1, 0x01, 0x0180}, | ||
4753 | {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, | ||
4754 | {0xa1, 0x01, 0x0008}, | ||
4755 | {0xa1, 0x01, 0x0007}, | ||
4756 | /* {0xa0, 0x30, 0x0007}, */ | ||
4757 | /* {0xa0, 0x00, 0x0007}, */ | ||
4758 | {} | ||
4759 | }; | ||
4760 | static const struct usb_action pb0330_50HZ[] = { | ||
4761 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | ||
4762 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | ||
4763 | {0xa0, 0xee, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,ee,cc */ | ||
4764 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | ||
4765 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | ||
4766 | {0xa0, 0x46, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,46,cc */ | ||
4767 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | ||
4768 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | ||
4769 | {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */ | ||
4770 | {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */ | ||
4771 | {0xa0, 0x68, ZC3XX_R01D_HSYNC_0}, /* 00,1d,68,cc */ | ||
4772 | {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, /* 00,1e,90,cc */ | ||
4773 | {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,c8,cc */ | ||
4774 | {} | ||
4775 | }; | ||
4776 | static const struct usb_action pb0330_50HZScale[] = { | ||
4777 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */ | ||
4778 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | ||
4779 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | ||
4780 | {0xa0, 0xa0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,a0,cc */ | ||
4781 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | ||
4782 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | ||
4783 | {0xa0, 0x7a, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7a,cc */ | ||
4784 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | ||
4785 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | ||
4786 | {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */ | ||
4787 | {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */ | ||
4788 | {0xa0, 0xe5, ZC3XX_R01D_HSYNC_0}, /* 00,1d,e5,cc */ | ||
4789 | {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,f0,cc */ | ||
4790 | {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,f8,cc */ | ||
4791 | {} | 4625 | {} |
4792 | }; | 4626 | }; |
4793 | static const struct usb_action pb0330_60HZ[] = { | 4627 | static const struct usb_action pb0330_60HZ[] = { |
4794 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */ | 4628 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4795 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | 4629 | {0xbb, 0x00, 0x0535}, |
4796 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | 4630 | {0xbb, 0x01, 0x0974}, |
4797 | {0xa0, 0xdd, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,dd,cc */ | 4631 | {0xbb, 0x00, 0x1001}, |
4798 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | 4632 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4799 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | 4633 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4800 | {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,3d,cc */ | 4634 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4801 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | 4635 | {0xa0, 0xfe, ZC3XX_R192_EXPOSURELIMITLOW}, |
4802 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | 4636 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4803 | {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */ | 4637 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4804 | {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */ | 4638 | {0xa0, 0x3e, ZC3XX_R197_ANTIFLICKERLOW}, |
4805 | {0xa0, 0x43, ZC3XX_R01D_HSYNC_0}, /* 00,1d,43,cc */ | 4639 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4806 | {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, /* 00,1e,50,cc */ | 4640 | {0xa0, 0x1a, ZC3XX_R18F_AEUNFREEZE}, |
4807 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */ | 4641 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4642 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4643 | {0xa0, 0x35, ZC3XX_R01D_HSYNC_0}, | ||
4644 | {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, | ||
4645 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4646 | {0xa0, 0xd0, ZC3XX_R020_HSYNC_3}, | ||
4808 | {} | 4647 | {} |
4809 | }; | 4648 | }; |
4810 | static const struct usb_action pb0330_60HZScale[] = { | 4649 | static const struct usb_action pb0330_60HZScale[] = { |
4811 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */ | 4650 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4812 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | 4651 | {0xbb, 0x00, 0x0535}, |
4813 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | 4652 | {0xbb, 0x02, 0x096c}, |
4814 | {0xa0, 0xa0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,a0,cc */ | 4653 | {0xbb, 0x00, 0x1002}, |
4815 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | 4654 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4816 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | 4655 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4817 | {0xa0, 0x7a, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7a,cc */ | 4656 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4818 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | 4657 | {0xa0, 0xc0, ZC3XX_R192_EXPOSURELIMITLOW}, |
4819 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | 4658 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4820 | {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */ | 4659 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4821 | {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */ | 4660 | {0xa0, 0x7c, ZC3XX_R197_ANTIFLICKERLOW}, |
4822 | {0xa0, 0x41, ZC3XX_R01D_HSYNC_0}, /* 00,1d,41,cc */ | 4661 | {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE}, |
4823 | {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, /* 00,1e,50,cc */ | 4662 | {0xa0, 0x1a, ZC3XX_R18F_AEUNFREEZE}, |
4824 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */ | 4663 | {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4664 | {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4665 | {0xa0, 0x35, ZC3XX_R01D_HSYNC_0}, | ||
4666 | {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, | ||
4667 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4668 | {0xa0, 0xd0, ZC3XX_R020_HSYNC_3}, | ||
4825 | {} | 4669 | {} |
4826 | }; | 4670 | }; |
4827 | static const struct usb_action pb0330_NoFliker[] = { | 4671 | static const struct usb_action pb0330_NoFliker[] = { |
4828 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */ | 4672 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4829 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | 4673 | {0xbb, 0x00, 0x0509}, |
4830 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | 4674 | {0xbb, 0x02, 0x0940}, |
4831 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */ | 4675 | {0xbb, 0x00, 0x1002}, |
4832 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | 4676 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4833 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | 4677 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4834 | {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */ | 4678 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4835 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | 4679 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, |
4836 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | 4680 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4837 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */ | 4681 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4838 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */ | 4682 | {0xa0, 0x01, ZC3XX_R197_ANTIFLICKERLOW}, |
4839 | {0xa0, 0x09, ZC3XX_R01D_HSYNC_0}, /* 00,1d,09,cc */ | 4683 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, |
4840 | {0xa0, 0x40, ZC3XX_R01E_HSYNC_1}, /* 00,1e,40,cc */ | 4684 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, |
4841 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */ | 4685 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4686 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4687 | {0xa0, 0x09, ZC3XX_R01D_HSYNC_0}, | ||
4688 | {0xa0, 0x40, ZC3XX_R01E_HSYNC_1}, | ||
4689 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4690 | {0xa0, 0xe0, ZC3XX_R020_HSYNC_3}, | ||
4842 | {} | 4691 | {} |
4843 | }; | 4692 | }; |
4844 | static const struct usb_action pb0330_NoFlikerScale[] = { | 4693 | static const struct usb_action pb0330_NoFlikerScale[] = { |
4845 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */ | 4694 | {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, |
4846 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ | 4695 | {0xbb, 0x00, 0x0535}, |
4847 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */ | 4696 | {0xbb, 0x01, 0x0980}, |
4848 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */ | 4697 | {0xbb, 0x00, 0x1001}, |
4849 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */ | 4698 | {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN}, |
4850 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */ | 4699 | {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, |
4851 | {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */ | 4700 | {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, |
4852 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */ | 4701 | {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, |
4853 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */ | 4702 | {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, |
4854 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */ | 4703 | {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, |
4855 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */ | 4704 | {0xa0, 0x01, ZC3XX_R197_ANTIFLICKERLOW}, |
4856 | {0xa0, 0x09, ZC3XX_R01D_HSYNC_0}, /* 00,1d,09,cc */ | 4705 | {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, |
4857 | {0xa0, 0x40, ZC3XX_R01E_HSYNC_1}, /* 00,1e,40,cc */ | 4706 | {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, |
4858 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */ | 4707 | {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, |
4708 | {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, | ||
4709 | {0xa0, 0x35, ZC3XX_R01D_HSYNC_0}, | ||
4710 | {0xa0, 0x60, ZC3XX_R01E_HSYNC_1}, | ||
4711 | {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, | ||
4712 | {0xa0, 0xe0, ZC3XX_R020_HSYNC_3}, | ||
4859 | {} | 4713 | {} |
4860 | }; | 4714 | }; |
4861 | 4715 | ||
@@ -6131,15 +5985,16 @@ static void setmatrix(struct gspca_dev *gspca_dev) | |||
6131 | NULL, /* SENSOR_HV7131C 6 */ | 5985 | NULL, /* SENSOR_HV7131C 6 */ |
6132 | NULL, /* SENSOR_ICM105A 7 */ | 5986 | NULL, /* SENSOR_ICM105A 7 */ |
6133 | NULL, /* SENSOR_MC501CB 8 */ | 5987 | NULL, /* SENSOR_MC501CB 8 */ |
6134 | ov7620_matrix, /* SENSOR_OV7620 9 */ | 5988 | gc0305_matrix, /* SENSOR_MI0360SOC 9 */ |
6135 | NULL, /* SENSOR_OV7630C 10 */ | 5989 | ov7620_matrix, /* SENSOR_OV7620 10 */ |
6136 | NULL, /* SENSOR_PAS106 11 */ | 5990 | NULL, /* SENSOR_OV7630C 11 */ |
6137 | pas202b_matrix, /* SENSOR_PAS202B 12 */ | 5991 | NULL, /* SENSOR_PAS106 12 */ |
6138 | NULL, /* SENSOR_PB0330 13 */ | 5992 | pas202b_matrix, /* SENSOR_PAS202B 13 */ |
6139 | po2030_matrix, /* SENSOR_PO2030 14 */ | 5993 | gc0305_matrix, /* SENSOR_PB0330 14 */ |
6140 | NULL, /* SENSOR_TAS5130CK 15 */ | 5994 | po2030_matrix, /* SENSOR_PO2030 15 */ |
6141 | tas5130c_matrix, /* SENSOR_TAS5130CXX 16 */ | 5995 | NULL, /* SENSOR_TAS5130CK 16 */ |
6142 | vf0250_matrix, /* SENSOR_TAS5130C_VF0250 17 */ | 5996 | tas5130c_matrix, /* SENSOR_TAS5130CXX 17 */ |
5997 | vf0250_matrix, /* SENSOR_TAS5130C_VF0250 18 */ | ||
6143 | }; | 5998 | }; |
6144 | 5999 | ||
6145 | matrix = matrix_tb[sd->sensor]; | 6000 | matrix = matrix_tb[sd->sensor]; |
@@ -6379,39 +6234,43 @@ static int setlightfreq(struct gspca_dev *gspca_dev) | |||
6379 | {MC501CB_NoFliker, MC501CB_NoFlikerScale, | 6234 | {MC501CB_NoFliker, MC501CB_NoFlikerScale, |
6380 | MC501CB_50HZ, MC501CB_50HZScale, | 6235 | MC501CB_50HZ, MC501CB_50HZScale, |
6381 | MC501CB_60HZ, MC501CB_60HZScale}, | 6236 | MC501CB_60HZ, MC501CB_60HZScale}, |
6382 | /* SENSOR_OV7620 9 */ | 6237 | /* SENSOR_MI0360SOC 9 */ |
6238 | {mi360soc_AENoFlikerScale, mi360soc_AENoFliker, | ||
6239 | mi360soc_AE50HZScale, mi360soc_AE50HZ, | ||
6240 | mi360soc_AE60HZScale, mi360soc_AE60HZ}, | ||
6241 | /* SENSOR_OV7620 10 */ | ||
6383 | {OV7620_NoFliker, OV7620_NoFliker, | 6242 | {OV7620_NoFliker, OV7620_NoFliker, |
6384 | OV7620_50HZ, OV7620_50HZ, | 6243 | OV7620_50HZ, OV7620_50HZ, |
6385 | OV7620_60HZ, OV7620_60HZ}, | 6244 | OV7620_60HZ, OV7620_60HZ}, |
6386 | /* SENSOR_OV7630C 10 */ | 6245 | /* SENSOR_OV7630C 11 */ |
6387 | {NULL, NULL, | 6246 | {NULL, NULL, |
6388 | NULL, NULL, | 6247 | NULL, NULL, |
6389 | NULL, NULL}, | 6248 | NULL, NULL}, |
6390 | /* SENSOR_PAS106 11 */ | 6249 | /* SENSOR_PAS106 12 */ |
6391 | {pas106b_NoFliker, pas106b_NoFliker, | 6250 | {pas106b_NoFliker, pas106b_NoFliker, |
6392 | pas106b_50HZ, pas106b_50HZ, | 6251 | pas106b_50HZ, pas106b_50HZ, |
6393 | pas106b_60HZ, pas106b_60HZ}, | 6252 | pas106b_60HZ, pas106b_60HZ}, |
6394 | /* SENSOR_PAS202B 12 */ | 6253 | /* SENSOR_PAS202B 13 */ |
6395 | {pas202b_NoFlikerScale, pas202b_NoFliker, | 6254 | {pas202b_NoFlikerScale, pas202b_NoFliker, |
6396 | pas202b_50HZScale, pas202b_50HZ, | 6255 | pas202b_50HZScale, pas202b_50HZ, |
6397 | pas202b_60HZScale, pas202b_60HZ}, | 6256 | pas202b_60HZScale, pas202b_60HZ}, |
6398 | /* SENSOR_PB0330 13 */ | 6257 | /* SENSOR_PB0330 14 */ |
6399 | {pb0330_NoFliker, pb0330_NoFlikerScale, | 6258 | {pb0330_NoFlikerScale, pb0330_NoFliker, |
6400 | pb0330_50HZ, pb0330_50HZScale, | 6259 | pb0330_50HZScale, pb0330_50HZ, |
6401 | pb0330_60HZ, pb0330_60HZScale}, | 6260 | pb0330_60HZScale, pb0330_60HZ}, |
6402 | /* SENSOR_PO2030 14 */ | 6261 | /* SENSOR_PO2030 15 */ |
6403 | {PO2030_NoFliker, PO2030_NoFliker, | 6262 | {PO2030_NoFliker, PO2030_NoFliker, |
6404 | PO2030_50HZ, PO2030_50HZ, | 6263 | PO2030_50HZ, PO2030_50HZ, |
6405 | PO2030_60HZ, PO2030_60HZ}, | 6264 | PO2030_60HZ, PO2030_60HZ}, |
6406 | /* SENSOR_TAS5130CK 15 */ | 6265 | /* SENSOR_TAS5130CK 16 */ |
6407 | {tas5130cxx_NoFlikerScale, tas5130cxx_NoFliker, | 6266 | {tas5130cxx_NoFlikerScale, tas5130cxx_NoFliker, |
6408 | tas5130cxx_50HZScale, tas5130cxx_50HZ, | 6267 | tas5130cxx_50HZScale, tas5130cxx_50HZ, |
6409 | tas5130cxx_60HZScale, tas5130cxx_60HZ}, | 6268 | tas5130cxx_60HZScale, tas5130cxx_60HZ}, |
6410 | /* SENSOR_TAS5130CXX 16 */ | 6269 | /* SENSOR_TAS5130CXX 17 */ |
6411 | {tas5130cxx_NoFlikerScale, tas5130cxx_NoFliker, | 6270 | {tas5130cxx_NoFlikerScale, tas5130cxx_NoFliker, |
6412 | tas5130cxx_50HZScale, tas5130cxx_50HZ, | 6271 | tas5130cxx_50HZScale, tas5130cxx_50HZ, |
6413 | tas5130cxx_60HZScale, tas5130cxx_60HZ}, | 6272 | tas5130cxx_60HZScale, tas5130cxx_60HZ}, |
6414 | /* SENSOR_TAS5130C_VF0250 17 */ | 6273 | /* SENSOR_TAS5130C_VF0250 18 */ |
6415 | {tas5130c_vf0250_NoFliker, tas5130c_vf0250_NoFlikerScale, | 6274 | {tas5130c_vf0250_NoFliker, tas5130c_vf0250_NoFlikerScale, |
6416 | tas5130c_vf0250_50HZ, tas5130c_vf0250_50HZScale, | 6275 | tas5130c_vf0250_50HZ, tas5130c_vf0250_50HZScale, |
6417 | tas5130c_vf0250_60HZ, tas5130c_vf0250_60HZScale}, | 6276 | tas5130c_vf0250_60HZ, tas5130c_vf0250_60HZScale}, |
@@ -6468,6 +6327,7 @@ static void send_unknown(struct usb_device *dev, int sensor) | |||
6468 | case SENSOR_ADCM2700: | 6327 | case SENSOR_ADCM2700: |
6469 | case SENSOR_GC0305: | 6328 | case SENSOR_GC0305: |
6470 | case SENSOR_OV7620: | 6329 | case SENSOR_OV7620: |
6330 | case SENSOR_MI0360SOC: | ||
6471 | case SENSOR_PB0330: | 6331 | case SENSOR_PB0330: |
6472 | case SENSOR_PO2030: | 6332 | case SENSOR_PO2030: |
6473 | reg_w(dev, 0x0d, 0x003a); | 6333 | reg_w(dev, 0x0d, 0x003a); |
@@ -6603,7 +6463,7 @@ struct sensor_by_chipset_revision { | |||
6603 | }; | 6463 | }; |
6604 | static const struct sensor_by_chipset_revision chipset_revision_sensor[] = { | 6464 | static const struct sensor_by_chipset_revision chipset_revision_sensor[] = { |
6605 | {0xc000, 0x12}, /* TAS5130C */ | 6465 | {0xc000, 0x12}, /* TAS5130C */ |
6606 | {0xc001, 0x13}, /* MI0360 */ | 6466 | {0xc001, 0x13}, /* MI0360SOC */ |
6607 | {0xe001, 0x13}, | 6467 | {0xe001, 0x13}, |
6608 | {0x8001, 0x13}, | 6468 | {0x8001, 0x13}, |
6609 | {0x8000, 0x14}, /* CS2102K */ | 6469 | {0x8000, 0x14}, /* CS2102K */ |
@@ -6772,15 +6632,16 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
6772 | 4, /* SENSOR_HV7131C 6 */ | 6632 | 4, /* SENSOR_HV7131C 6 */ |
6773 | 4, /* SENSOR_ICM105A 7 */ | 6633 | 4, /* SENSOR_ICM105A 7 */ |
6774 | 4, /* SENSOR_MC501CB 8 */ | 6634 | 4, /* SENSOR_MC501CB 8 */ |
6775 | 3, /* SENSOR_OV7620 9 */ | 6635 | 4, /* SENSOR_MI0360SOC 9 */ |
6776 | 4, /* SENSOR_OV7630C 10 */ | 6636 | 3, /* SENSOR_OV7620 10 */ |
6777 | 4, /* SENSOR_PAS106 11 */ | 6637 | 4, /* SENSOR_OV7630C 11 */ |
6778 | 4, /* SENSOR_PAS202B 12 */ | 6638 | 4, /* SENSOR_PAS106 12 */ |
6779 | 4, /* SENSOR_PB0330 13 */ | 6639 | 4, /* SENSOR_PAS202B 13 */ |
6780 | 4, /* SENSOR_PO2030 14 */ | 6640 | 4, /* SENSOR_PB0330 14 */ |
6781 | 4, /* SENSOR_TAS5130CK 15 */ | 6641 | 4, /* SENSOR_PO2030 15 */ |
6782 | 3, /* SENSOR_TAS5130CXX 16 */ | 6642 | 4, /* SENSOR_TAS5130CK 16 */ |
6783 | 3, /* SENSOR_TAS5130C_VF0250 17 */ | 6643 | 3, /* SENSOR_TAS5130CXX 17 */ |
6644 | 3, /* SENSOR_TAS5130C_VF0250 18 */ | ||
6784 | }; | 6645 | }; |
6785 | 6646 | ||
6786 | /* define some sensors from the vendor/product */ | 6647 | /* define some sensors from the vendor/product */ |
@@ -6851,9 +6712,9 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
6851 | break; | 6712 | break; |
6852 | case 0x13: | 6713 | case 0x13: |
6853 | PDEBUG(D_PROBE, | 6714 | PDEBUG(D_PROBE, |
6854 | "Find Sensor MI0360. Chip revision %x", | 6715 | "Find Sensor MI0360SOC. Chip revision %x", |
6855 | sd->chip_revision); | 6716 | sd->chip_revision); |
6856 | sd->sensor = SENSOR_PB0330; | 6717 | sd->sensor = SENSOR_MI0360SOC; |
6857 | break; | 6718 | break; |
6858 | case 0x14: | 6719 | case 0x14: |
6859 | PDEBUG(D_PROBE, | 6720 | PDEBUG(D_PROBE, |
@@ -6967,17 +6828,17 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
6967 | {hv7131cxx_InitialScale, hv7131cxx_Initial}, /* 6 */ | 6828 | {hv7131cxx_InitialScale, hv7131cxx_Initial}, /* 6 */ |
6968 | {icm105axx_InitialScale, icm105axx_Initial}, /* 7 */ | 6829 | {icm105axx_InitialScale, icm105axx_Initial}, /* 7 */ |
6969 | {MC501CB_InitialScale, MC501CB_Initial}, /* 8 */ | 6830 | {MC501CB_InitialScale, MC501CB_Initial}, /* 8 */ |
6970 | {OV7620_mode0, OV7620_mode1}, /* 9 */ | 6831 | {mi0360soc_Initial, mi0360soc_InitialScale}, /* 9 */ |
6971 | {ov7630c_InitialScale, ov7630c_Initial}, /* 10 */ | 6832 | {OV7620_mode0, OV7620_mode1}, /* 10 */ |
6972 | {pas106b_InitialScale, pas106b_Initial}, /* 11 */ | 6833 | {ov7630c_InitialScale, ov7630c_Initial}, /* 11 */ |
6973 | {pas202b_Initial, pas202b_InitialScale}, /* 12 */ | 6834 | {pas106b_InitialScale, pas106b_Initial}, /* 12 */ |
6974 | {pb0330xx_InitialScale, pb0330xx_Initial}, /* 13 */ | 6835 | {pas202b_Initial, pas202b_InitialScale}, /* 13 */ |
6975 | /* or {pb03303x_InitialScale, pb03303x_Initial}, */ | 6836 | {pb0330_Initial, pb0330_InitialScale}, /* 14 */ |
6976 | {PO2030_mode0, PO2030_mode1}, /* 14 */ | 6837 | {PO2030_mode0, PO2030_mode1}, /* 15 */ |
6977 | {tas5130CK_InitialScale, tas5130CK_Initial}, /* 15 */ | 6838 | {tas5130CK_InitialScale, tas5130CK_Initial}, /* 16 */ |
6978 | {tas5130cxx_Initial, tas5130cxx_InitialScale}, /* 16 */ | 6839 | {tas5130cxx_Initial, tas5130cxx_InitialScale}, /* 17 */ |
6979 | {tas5130c_vf0250_InitialScale, tas5130c_vf0250_Initial}, | 6840 | {tas5130c_vf0250_InitialScale, tas5130c_vf0250_Initial}, |
6980 | /* 17 */ | 6841 | /* 18 */ |
6981 | }; | 6842 | }; |
6982 | 6843 | ||
6983 | /* create the JPEG header */ | 6844 | /* create the JPEG header */ |
@@ -6997,19 +6858,6 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
6997 | case SENSOR_PAS106: | 6858 | case SENSOR_PAS106: |
6998 | usb_exchange(gspca_dev, pas106b_Initial_com); | 6859 | usb_exchange(gspca_dev, pas106b_Initial_com); |
6999 | break; | 6860 | break; |
7000 | case SENSOR_PB0330: | ||
7001 | if (mode) { | ||
7002 | if (sd->chip_revision == 0xc001 | ||
7003 | || sd->chip_revision == 0xe001 | ||
7004 | || sd->chip_revision == 0x8001) | ||
7005 | zc3_init = pb03303x_Initial; | ||
7006 | } else { | ||
7007 | if (sd->chip_revision == 0xc001 | ||
7008 | || sd->chip_revision == 0xe001 | ||
7009 | || sd->chip_revision == 0x8001) | ||
7010 | zc3_init = pb03303x_InitialScale; | ||
7011 | } | ||
7012 | break; | ||
7013 | } | 6861 | } |
7014 | usb_exchange(gspca_dev, zc3_init); | 6862 | usb_exchange(gspca_dev, zc3_init); |
7015 | 6863 | ||
@@ -7051,7 +6899,6 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
7051 | switch (sd->sensor) { | 6899 | switch (sd->sensor) { |
7052 | case SENSOR_CS2102K: /* gamma set in xxx_Initial */ | 6900 | case SENSOR_CS2102K: /* gamma set in xxx_Initial */ |
7053 | case SENSOR_HDCS2020b: | 6901 | case SENSOR_HDCS2020b: |
7054 | case SENSOR_PB0330: /* pb with chip_revision - see above */ | ||
7055 | case SENSOR_OV7630C: | 6902 | case SENSOR_OV7630C: |
7056 | case SENSOR_TAS5130CK: | 6903 | case SENSOR_TAS5130CK: |
7057 | break; | 6904 | break; |