• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x1d

38 #define OV534_REG_ADDRESS	0xf1	/* sensor address */
39 #define OV534_REG_SUBADDR 0xf2
40 #define OV534_REG_WRITE 0xf3
41 #define OV534_REG_READ 0xf4
42 #define OV534_REG_OPERATION 0xf5
43 #define OV534_REG_STATUS 0xf6
45 #define OV534_OP_WRITE_3 0x37
46 #define OV534_OP_WRITE_2 0x33
47 #define OV534_OP_READ_2 0xf9
105 .priv = 0},
140 {0xf1, 0x42},
141 {0x88, 0xf8},
142 {0x89, 0xff},
143 {0x76, 0x03},
144 {0x92, 0x03},
145 {0x95, 0x10},
146 {0xe2, 0x00},
147 {0xe7, 0x3e},
148 {0x8d, 0x1c},
149 {0x8e, 0x00},
150 {0x8f, 0x00},
151 {0x1f, 0x00},
152 {0xc3, 0xf9},
153 {0x89, 0xff},
154 {0x88, 0xf8},
155 {0x76, 0x03},
156 {0x92, 0x01},
157 {0x93, 0x18},
158 {0x1c, 0x00},
159 {0x1d, 0x48},
160 {0x1d, 0x00},
161 {0x1d, 0xff},
162 {0x1d, 0x02},
163 {0x1d, 0x58},
164 {0x1d, 0x00},
165 {0x1c, 0x0a},
166 {0x1d, 0x0a},
167 {0x1d, 0x0e},
168 {0xc0, 0x50}, /* HSize 640 */
169 {0xc1, 0x3c}, /* VSize 480 */
170 {0x34, 0x05}, /* enable Audio Suspend mode */
171 {0xc2, 0x0c}, /* Input YUV */
172 {0xc3, 0xf9}, /* enable PRE */
173 {0x34, 0x05}, /* enable Audio Suspend mode */
174 {0xe7, 0x2e}, /* this solves failure of "SuspendResumeTest" */
175 {0x31, 0xf9}, /* enable 1.8V Suspend */
176 {0x35, 0x02}, /* turn on JPEG */
177 {0xd9, 0x10},
178 {0x25, 0x42}, /* GPIO[8]:Input */
179 {0x94, 0x11}, /* If the default setting is loaded when
183 {0x12, 0x80},
184 {0x11, 0x03},
185 {0x3a, 0x04},
186 {0x12, 0x00},
187 {0x17, 0x13},
188 {0x18, 0x01},
189 {0x32, 0xb6},
190 {0x19, 0x02},
191 {0x1a, 0x7a},
192 {0x03, 0x0a},
193 {0x0c, 0x00},
194 {0x3e, 0x00},
195 {0x70, 0x3a},
196 {0x71, 0x35},
197 {0x72, 0x11},
198 {0x73, 0xf0},
199 {0xa2, 0x02},
200 {0x7a, 0x2a}, /* set Gamma=1.6 below */
201 {0x7b, 0x12},
202 {0x7c, 0x1d},
203 {0x7d, 0x2d},
204 {0x7e, 0x45},
205 {0x7f, 0x50},
206 {0x80, 0x59},
207 {0x81, 0x62},
208 {0x82, 0x6b},
209 {0x83, 0x73},
210 {0x84, 0x7b},
211 {0x85, 0x8a},
212 {0x86, 0x98},
213 {0x87, 0xb2},
214 {0x88, 0xca},
215 {0x89, 0xe0},
216 {0x13, 0xe0},
217 {0x00, 0x00},
218 {0x10, 0x00},
219 {0x0d, 0x40},
220 {0x14, 0x38}, /* gain max 16x */
221 {0xa5, 0x05},
222 {0xab, 0x07},
223 {0x24, 0x95},
224 {0x25, 0x33},
225 {0x26, 0xe3},
226 {0x9f, 0x78},
227 {0xa0, 0x68},
228 {0xa1, 0x03},
229 {0xa6, 0xd8},
230 {0xa7, 0xd8},
231 {0xa8, 0xf0},
232 {0xa9, 0x90},
233 {0xaa, 0x94},
234 {0x13, 0xe5},
235 {0x0e, 0x61},
236 {0x0f, 0x4b},
237 {0x16, 0x02},
238 {0x21, 0x02},
239 {0x22, 0x91},
240 {0x29, 0x07},
241 {0x33, 0x0b},
242 {0x35, 0x0b},
243 {0x37, 0x1d},
244 {0x38, 0x71},
245 {0x39, 0x2a},
246 {0x3c, 0x78},
247 {0x4d, 0x40},
248 {0x4e, 0x20},
249 {0x69, 0x00},
250 {0x6b, 0x4a},
251 {0x74, 0x10},
252 {0x8d, 0x4f},
253 {0x8e, 0x00},
254 {0x8f, 0x00},
255 {0x90, 0x00},
256 {0x91, 0x00},
257 {0x96, 0x00},
258 {0x9a, 0x80},
259 {0xb0, 0x84},
260 {0xb1, 0x0c},
261 {0xb2, 0x0e},
262 {0xb3, 0x82},
263 {0xb8, 0x0a},
264 {0x43, 0x0a},
265 {0x44, 0xf0},
266 {0x45, 0x34},
267 {0x46, 0x58},
268 {0x47, 0x28},
269 {0x48, 0x3a},
270 {0x59, 0x88},
271 {0x5a, 0x88},
272 {0x5b, 0x44},
273 {0x5c, 0x67},
274 {0x5d, 0x49},
275 {0x5e, 0x0e},
276 {0x6c, 0x0a},
277 {0x6d, 0x55},
278 {0x6e, 0x11},
279 {0x6f, 0x9f},
280 {0x6a, 0x40},
281 {0x01, 0x40},
282 {0x02, 0x40},
283 {0x13, 0xe7},
284 {0x4f, 0x80},
285 {0x50, 0x80},
286 {0x51, 0x00},
287 {0x52, 0x22},
288 {0x53, 0x5e},
289 {0x54, 0x80},
290 {0x58, 0x9e},
291 {0x41, 0x08},
292 {0x3f, 0x00},
293 {0x75, 0x04},
294 {0x76, 0xe1},
295 {0x4c, 0x00},
296 {0x77, 0x01},
297 {0x3d, 0xc2},
298 {0x4b, 0x09},
299 {0xc9, 0x60},
300 {0x41, 0x38}, /* jfm: auto sharpness + auto de-noise */
301 {0x56, 0x40},
302 {0x34, 0x11},
303 {0x3b, 0xc2},
304 {0xa4, 0x8a}, /* Night mode trigger point */
305 {0x96, 0x00},
306 {0x97, 0x30},
307 {0x98, 0x20},
308 {0x99, 0x20},
309 {0x9a, 0x84},
310 {0x9b, 0x29},
311 {0x9c, 0x03},
312 {0x9d, 0x4c},
313 {0x9e, 0x3f},
314 {0x78, 0x04},
315 {0x79, 0x01},
316 {0xc8, 0xf0},
317 {0x79, 0x0f},
318 {0xc8, 0x00},
319 {0x79, 0x10},
320 {0xc8, 0x7e},
321 {0x79, 0x0a},
322 {0xc8, 0x80},
323 {0x79, 0x0b},
324 {0xc8, 0x01},
325 {0x79, 0x0c},
326 {0xc8, 0x0f},
327 {0x79, 0x0d},
328 {0xc8, 0x20},
329 {0x79, 0x09},
330 {0xc8, 0x80},
331 {0x79, 0x02},
332 {0xc8, 0xc0},
333 {0x79, 0x03},
334 {0xc8, 0x20},
335 {0x79, 0x26},
339 {0x94, 0xaa},
340 {0xf1, 0x42},
341 {0xe5, 0x04},
342 {0xc0, 0x50},
343 {0xc1, 0x3c},
344 {0xc2, 0x0c},
345 {0x35, 0x02}, /* turn on JPEG */
346 {0xd9, 0x10},
347 {0xda, 0x00}, /* for higher clock rate(30fps) */
348 {0x34, 0x05}, /* enable Audio Suspend mode */
349 {0xc3, 0xf9}, /* enable PRE */
350 {0x8c, 0x00}, /* CIF VSize LSB[2:0] */
351 {0x8d, 0x1c}, /* output YUV */
352 /* {0x34, 0x05}, * enable Audio Suspend mode (?) */
353 {0x50, 0x00}, /* H/V divider=0 */
354 {0x51, 0xa0}, /* input H=640/4 */
355 {0x52, 0x3c}, /* input V=480/4 */
356 {0x53, 0x00}, /* offset X=0 */
357 {0x54, 0x00}, /* offset Y=0 */
358 {0x55, 0x00}, /* H/V size[8]=0 */
359 {0x57, 0x00}, /* H-size[9]=0 */
360 {0x5c, 0x00}, /* output size[9:8]=0 */
361 {0x5a, 0xa0}, /* output H=640/4 */
362 {0x5b, 0x78}, /* output V=480/4 */
363 {0x1c, 0x0a},
364 {0x1d, 0x0a},
365 {0x94, 0x11},
368 {0x11, 0x01},
369 {0x1e, 0x04},
370 {0x19, 0x02},
371 {0x1a, 0x7a},
375 {0x94, 0xaa},
376 {0xf1, 0x42},
377 {0xe5, 0x04},
378 {0xc0, 0x80},
379 {0xc1, 0x60},
380 {0xc2, 0x0c},
381 {0x35, 0x02}, /* turn on JPEG */
382 {0xd9, 0x10},
383 {0xc0, 0x50}, /* CIF HSize 640 */
384 {0xc1, 0x3c}, /* CIF VSize 480 */
385 {0x8c, 0x00}, /* CIF VSize LSB[2:0] */
386 {0x8d, 0x1c}, /* output YUV */
387 {0x34, 0x05}, /* enable Audio Suspend mode */
388 {0xc2, 0x4c}, /* output YUV and Enable DCW */
389 {0xc3, 0xf9}, /* enable PRE */
390 {0x1c, 0x00}, /* indirect addressing */
391 {0x1d, 0x48}, /* output YUV422 */
392 {0x50, 0x89}, /* H/V divider=/2; plus DCW AVG */
393 {0x51, 0xa0}, /* DCW input H=640/4 */
394 {0x52, 0x78}, /* DCW input V=480/4 */
395 {0x53, 0x00}, /* offset X=0 */
396 {0x54, 0x00}, /* offset Y=0 */
397 {0x55, 0x00}, /* H/V size[8]=0 */
398 {0x57, 0x00}, /* H-size[9]=0 */
399 {0x5c, 0x00}, /* DCW output size[9:8]=0 */
400 {0x5a, 0x50}, /* DCW output H=320/4 */
401 {0x5b, 0x3c}, /* DCW output V=240/4 */
402 {0x1c, 0x0a},
403 {0x1d, 0x0a},
404 {0x94, 0x11},
407 {0x11, 0x01},
408 {0x1e, 0x04},
409 {0x19, 0x02},
410 {0x1a, 0x7a},
414 { 0xc2, 0x0c },
415 { 0x88, 0xf8 },
416 { 0xc3, 0x69 },
417 { 0x89, 0xff },
418 { 0x76, 0x03 },
419 { 0x92, 0x01 },
420 { 0x93, 0x18 },
421 { 0x94, 0x10 },
422 { 0x95, 0x10 },
423 { 0xe2, 0x00 },
424 { 0xe7, 0x3e },
426 { 0x96, 0x00 },
428 { 0x97, 0x20 },
429 { 0x97, 0x20 },
430 { 0x97, 0x20 },
431 { 0x97, 0x0a },
432 { 0x97, 0x3f },
433 { 0x97, 0x4a },
434 { 0x97, 0x20 },
435 { 0x97, 0x15 },
436 { 0x97, 0x0b },
438 { 0x8e, 0x40 },
439 { 0x1f, 0x81 },
440 { 0x34, 0x05 },
441 { 0xe3, 0x04 },
442 { 0x88, 0x00 },
443 { 0x89, 0x00 },
444 { 0x76, 0x00 },
445 { 0xe7, 0x2e },
446 { 0x31, 0xf9 },
447 { 0x25, 0x42 },
448 { 0x21, 0xf0 },
450 { 0x1c, 0x00 },
451 { 0x1d, 0x40 },
452 { 0x1d, 0x02 }, /* payload size 0x0200 * 4 = 2048 bytes */
453 { 0x1d, 0x00 }, /* payload size */
455 { 0x1d, 0x02 }, /* frame size 0x025800 * 4 = 614400 */
456 { 0x1d, 0x58 }, /* frame size */
457 { 0x1d, 0x00 }, /* frame size */
459 { 0x1c, 0x0a },
460 { 0x1d, 0x08 }, /* turn on UVC header */
461 { 0x1d, 0x0e }, /* .. */
463 { 0x8d, 0x1c },
464 { 0x8e, 0x80 },
465 { 0xe5, 0x04 },
467 { 0xc0, 0x50 },
468 { 0xc1, 0x3c },
469 { 0xc2, 0x0c },
472 { 0x12, 0x80 },
473 { 0x11, 0x01 },
475 { 0x11, 0x01 },
476 { 0x11, 0x01 },
477 { 0x11, 0x01 },
478 { 0x11, 0x01 },
479 { 0x11, 0x01 },
480 { 0x11, 0x01 },
481 { 0x11, 0x01 },
482 { 0x11, 0x01 },
483 { 0x11, 0x01 },
484 { 0x11, 0x01 },
486 { 0x3d, 0x03 },
487 { 0x17, 0x26 },
488 { 0x18, 0xa0 },
489 { 0x19, 0x07 },
490 { 0x1a, 0xf0 },
491 { 0x32, 0x00 },
492 { 0x29, 0xa0 },
493 { 0x2c, 0xf0 },
494 { 0x65, 0x20 },
495 { 0x11, 0x01 },
496 { 0x42, 0x7f },
497 { 0x63, 0xaa }, /* AWB - was e0 */
498 { 0x64, 0xff },
499 { 0x66, 0x00 },
500 { 0x13, 0xf0 }, /* com8 */
501 { 0x0d, 0x41 },
502 { 0x0f, 0xc5 },
503 { 0x14, 0x11 },
505 { 0x22, 0x7f },
506 { 0x23, 0x03 },
507 { 0x24, 0x40 },
508 { 0x25, 0x30 },
509 { 0x26, 0xa1 },
510 { 0x2a, 0x00 },
511 { 0x2b, 0x00 },
512 { 0x6b, 0xaa },
513 { 0x13, 0xff }, /* AWB */
515 { 0x90, 0x05 },
516 { 0x91, 0x01 },
517 { 0x92, 0x03 },
518 { 0x93, 0x00 },
519 { 0x94, 0x60 },
520 { 0x95, 0x3c },
521 { 0x96, 0x24 },
522 { 0x97, 0x1e },
523 { 0x98, 0x62 },
524 { 0x99, 0x80 },
525 { 0x9a, 0x1e },
526 { 0x9b, 0x08 },
527 { 0x9c, 0x20 },
528 { 0x9e, 0x81 },
530 { 0xa6, 0x07 },
531 { 0x7e, 0x0c },
532 { 0x7f, 0x16 },
533 { 0x80, 0x2a },
534 { 0x81, 0x4e },
535 { 0x82, 0x61 },
536 { 0x83, 0x6f },
537 { 0x84, 0x7b },
538 { 0x85, 0x86 },
539 { 0x86, 0x8e },
540 { 0x87, 0x97 },
541 { 0x88, 0xa4 },
542 { 0x89, 0xaf },
543 { 0x8a, 0xc5 },
544 { 0x8b, 0xd7 },
545 { 0x8c, 0xe8 },
546 { 0x8d, 0x20 },
548 { 0x0c, 0x90 },
550 { 0x2b, 0x00 },
551 { 0x22, 0x7f },
552 { 0x23, 0x03 },
553 { 0x11, 0x01 },
554 { 0x0c, 0xd0 },
555 { 0x64, 0xff },
556 { 0x0d, 0x41 },
558 { 0x14, 0x41 },
559 { 0x0e, 0xcd },
560 { 0xac, 0xbf },
561 { 0x8e, 0x00 }, /* De-noise threshold */
562 { 0x0c, 0xd0 }
565 {0x1c, 0x00},
566 {0x1d, 0x40},
567 {0x1d, 0x02},
568 {0x1d, 0x00},
569 {0x1d, 0x02},
570 {0x1d, 0x58},
571 {0x1d, 0x00},
572 {0xc0, 0x50},
573 {0xc1, 0x3c},
576 {0x12, 0x00},
577 {0x17, 0x26},
578 {0x18, 0xa0},
579 {0x19, 0x07},
580 {0x1a, 0xf0},
581 {0x29, 0xa0},
582 {0x2c, 0xf0},
583 {0x65, 0x20},
586 {0x1c, 0x00},
587 {0x1d, 0x40},
588 {0x1d, 0x02},
589 {0x1d, 0x00},
590 {0x1d, 0x01},
591 {0x1d, 0x4b},
592 {0x1d, 0x00},
593 {0xc0, 0x28},
594 {0xc1, 0x1e},
597 {0x12, 0x40},
598 {0x17, 0x3f},
599 {0x18, 0x50},
600 {0x19, 0x03},
601 {0x1a, 0x78},
602 {0x29, 0x50},
603 {0x2c, 0x78},
604 {0x65, 0x2f},
612 if (gspca_dev->usb_err < 0) in ov534_reg_write()
616 gspca_dev->usb_buf[0] = val; in ov534_reg_write()
618 usb_sndctrlpipe(udev, 0), in ov534_reg_write()
619 0x01, in ov534_reg_write()
621 0x00, reg, gspca_dev->usb_buf, 1, CTRL_TIMEOUT); in ov534_reg_write()
622 if (ret < 0) { in ov534_reg_write()
633 if (gspca_dev->usb_err < 0) in ov534_reg_read()
634 return 0; in ov534_reg_read()
636 usb_rcvctrlpipe(udev, 0), in ov534_reg_read()
637 0x01, in ov534_reg_read()
639 0x00, reg, gspca_dev->usb_buf, 1, CTRL_TIMEOUT); in ov534_reg_read()
641 reg, gspca_dev->usb_buf[0]); in ov534_reg_read()
642 if (ret < 0) { in ov534_reg_read()
649 gspca_dev->usb_buf[0] = 0; in ov534_reg_read()
651 return gspca_dev->usb_buf[0]; in ov534_reg_read()
654 /* Two bits control LED: 0x21 bit 7 and 0x23 bit 7.
662 data = ov534_reg_read(gspca_dev, 0x21); in ov534_set_led()
663 data |= 0x80; in ov534_set_led()
664 ov534_reg_write(gspca_dev, 0x21, data); in ov534_set_led()
666 data = ov534_reg_read(gspca_dev, 0x23); in ov534_set_led()
668 data |= 0x80; in ov534_set_led()
670 data &= ~0x80; in ov534_set_led()
672 ov534_reg_write(gspca_dev, 0x23, data); in ov534_set_led()
675 data = ov534_reg_read(gspca_dev, 0x21); in ov534_set_led()
676 data &= ~0x80; in ov534_set_led()
677 ov534_reg_write(gspca_dev, 0x21, data); in ov534_set_led()
686 for (i = 0; i < 5; i++) { in sccb_check_status()
691 case 0x00: in sccb_check_status()
693 case 0x04: in sccb_check_status()
694 return 0; in sccb_check_status()
695 case 0x03: in sccb_check_status()
698 gspca_err(gspca_dev, "sccb status 0x%02x, attempt %d/5\n", in sccb_check_status()
702 return 0; in sccb_check_status()
736 while (--len >= 0) { in reg_w_array()
737 ov534_reg_write(gspca_dev, (*data)[0], (*data)[1]); in reg_w_array()
746 while (--len >= 0) { in sccb_w_array()
747 if ((*data)[0] != 0xff) { in sccb_w_array()
748 sccb_reg_write(gspca_dev, (*data)[0], (*data)[1]); in sccb_w_array()
751 sccb_reg_write(gspca_dev, 0xff, 0x00); in sccb_w_array()
770 {60, 0x01, 0xc1, 0x04}, in set_frame_rate()
771 {50, 0x01, 0x41, 0x02}, in set_frame_rate()
772 {40, 0x02, 0xc1, 0x04}, in set_frame_rate()
773 {30, 0x04, 0x81, 0x02}, in set_frame_rate()
774 {15, 0x03, 0x41, 0x04}, in set_frame_rate()
777 /* {205, 0x01, 0xc1, 0x02}, * 205 FPS: video is partly corrupt */ in set_frame_rate()
778 {187, 0x01, 0x81, 0x02}, /* 187 FPS or below: video is valid */ in set_frame_rate()
779 {150, 0x01, 0xc1, 0x04}, in set_frame_rate()
780 {137, 0x02, 0xc1, 0x02}, in set_frame_rate()
781 {125, 0x02, 0x81, 0x02}, in set_frame_rate()
782 {100, 0x02, 0xc1, 0x04}, in set_frame_rate()
783 {75, 0x03, 0xc1, 0x04}, in set_frame_rate()
784 {60, 0x04, 0xc1, 0x04}, in set_frame_rate()
785 {50, 0x02, 0x41, 0x04}, in set_frame_rate()
786 {37, 0x03, 0x41, 0x04}, in set_frame_rate()
787 {30, 0x04, 0x41, 0x04}, in set_frame_rate()
792 if (gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv == 0) { in set_frame_rate()
799 while (--i > 0) { in set_frame_rate()
805 sccb_reg_write(gspca_dev, 0x11, r->r11); in set_frame_rate()
806 sccb_reg_write(gspca_dev, 0x0d, r->r0d); in set_frame_rate()
807 ov534_reg_write(gspca_dev, 0xe5, r->re5); in set_frame_rate()
824 * scaled by 0x80. in sethue()
826 * The 0x7fff here represents the maximum absolute value in sethue()
830 huesin = fixp_sin16(val) * 0x80 / 0x7fff; in sethue()
831 huecos = fixp_cos16(val) * 0x80 / 0x7fff; in sethue()
833 if (huesin < 0) { in sethue()
834 sccb_reg_write(gspca_dev, 0xab, in sethue()
835 sccb_reg_read(gspca_dev, 0xab) | 0x2); in sethue()
838 sccb_reg_write(gspca_dev, 0xab, in sethue()
839 sccb_reg_read(gspca_dev, 0xab) & ~0x2); in sethue()
842 sccb_reg_write(gspca_dev, 0xa9, (u8)huecos); in sethue()
843 sccb_reg_write(gspca_dev, 0xaa, (u8)huesin); in sethue()
854 {0x42, 0x42, 0x00, 0x11, 0x30, 0x41}, in setsaturation()
855 {0x52, 0x52, 0x00, 0x16, 0x3c, 0x52}, in setsaturation()
856 {0x66, 0x66, 0x00, 0x1b, 0x4b, 0x66}, in setsaturation()
857 {0x80, 0x80, 0x00, 0x22, 0x5e, 0x80}, in setsaturation()
858 {0x9a, 0x9a, 0x00, 0x29, 0x71, 0x9a}, in setsaturation()
859 {0xb8, 0xb8, 0x00, 0x31, 0x87, 0xb8}, in setsaturation()
860 {0xdd, 0xdd, 0x00, 0x3b, 0xa2, 0xdd}, in setsaturation()
863 for (i = 0; i < ARRAY_SIZE(color_tb[0]); i++) in setsaturation()
864 sccb_reg_write(gspca_dev, 0x4f + i, color_tb[val][i]); in setsaturation()
866 sccb_reg_write(gspca_dev, 0xa7, val); /* U saturation */ in setsaturation()
867 sccb_reg_write(gspca_dev, 0xa8, val); /* V saturation */ in setsaturation()
876 if (val < 0) in setbrightness()
877 val = 0x80 - val; in setbrightness()
878 sccb_reg_write(gspca_dev, 0x55, val); /* bright */ in setbrightness()
880 sccb_reg_write(gspca_dev, 0x9b, val); in setbrightness()
889 sccb_reg_write(gspca_dev, 0x56, val); /* contras */ in setcontrast()
891 sccb_reg_write(gspca_dev, 0x9c, val); in setcontrast()
896 switch (val & 0x30) { in setgain()
897 case 0x00: in setgain()
898 val &= 0x0f; in setgain()
900 case 0x10: in setgain()
901 val &= 0x0f; in setgain()
902 val |= 0x30; in setgain()
904 case 0x20: in setgain()
905 val &= 0x0f; in setgain()
906 val |= 0x70; in setgain()
909 /* case 0x30: */ in setgain()
910 val &= 0x0f; in setgain()
911 val |= 0xf0; in setgain()
914 sccb_reg_write(gspca_dev, 0x00, val); in setgain()
919 return sccb_reg_read(gspca_dev, 0x00); in getgain()
929 sccb_reg_write(gspca_dev, 0x10, val); /* aech */ in setexposure()
936 * LSB: ((u16) val << 1) & 0xff == val << 1 in setexposure()
938 sccb_reg_write(gspca_dev, 0x08, val >> 7); in setexposure()
939 sccb_reg_write(gspca_dev, 0x10, val << 1); in setexposure()
949 return sccb_reg_read(gspca_dev, 0x10); /* aech */ in getexposure()
951 u8 hi = sccb_reg_read(gspca_dev, 0x08); in getexposure()
952 u8 lo = sccb_reg_read(gspca_dev, 0x10); in getexposure()
960 sccb_reg_write(gspca_dev, 0x13, in setagc()
961 sccb_reg_read(gspca_dev, 0x13) | 0x04); in setagc()
962 sccb_reg_write(gspca_dev, 0x64, in setagc()
963 sccb_reg_read(gspca_dev, 0x64) | 0x03); in setagc()
965 sccb_reg_write(gspca_dev, 0x13, in setagc()
966 sccb_reg_read(gspca_dev, 0x13) & ~0x04); in setagc()
967 sccb_reg_write(gspca_dev, 0x64, in setagc()
968 sccb_reg_read(gspca_dev, 0x64) & ~0x03); in setagc()
977 sccb_reg_write(gspca_dev, 0x13, in setawb()
978 sccb_reg_read(gspca_dev, 0x13) | 0x02); in setawb()
980 sccb_reg_write(gspca_dev, 0x63, in setawb()
981 sccb_reg_read(gspca_dev, 0x63) | 0xc0); in setawb()
983 sccb_reg_write(gspca_dev, 0x13, in setawb()
984 sccb_reg_read(gspca_dev, 0x13) & ~0x02); in setawb()
986 sccb_reg_write(gspca_dev, 0x63, in setawb()
987 sccb_reg_read(gspca_dev, 0x63) & ~0xc0); in setawb()
997 0x05 : /* agc + aec */ in setaec()
998 0x01; /* agc */ in setaec()
1001 sccb_reg_write(gspca_dev, 0x13, in setaec()
1002 sccb_reg_read(gspca_dev, 0x13) | data); in setaec()
1005 sccb_reg_write(gspca_dev, 0x13, in setaec()
1006 sccb_reg_read(gspca_dev, 0x13) & ~data); in setaec()
1013 sccb_reg_write(gspca_dev, 0x91, val); /* Auto de-noise threshold */ in setsharpness()
1014 sccb_reg_write(gspca_dev, 0x8e, val); /* De-noise threshold */ in setsharpness()
1023 val = sccb_reg_read(gspca_dev, 0x1e); /* mvfp */ in sethvflip()
1024 val &= ~0x30; in sethvflip()
1026 val |= 0x20; in sethvflip()
1028 val |= 0x10; in sethvflip()
1029 sccb_reg_write(gspca_dev, 0x1e, val); in sethvflip()
1031 val = sccb_reg_read(gspca_dev, 0x0c); in sethvflip()
1032 val &= ~0xc0; in sethvflip()
1033 if (hflip == 0) in sethvflip()
1034 val |= 0x40; in sethvflip()
1035 if (vflip == 0) in sethvflip()
1036 val |= 0x80; in sethvflip()
1037 sccb_reg_write(gspca_dev, 0x0c, val); in sethvflip()
1045 val = val ? 0x9e : 0x00; in setlightfreq()
1047 sccb_reg_write(gspca_dev, 0x2a, 0x00); in setlightfreq()
1049 val = 0x9d; /* insert dummy to 25fps for 50Hz */ in setlightfreq()
1051 sccb_reg_write(gspca_dev, 0x2b, val); in setlightfreq()
1069 return 0; in sd_config()
1079 gspca_dev->usb_err = 0; in ov534_g_volatile_ctrl()
1085 gspca_dev->usb_err = 0; in ov534_g_volatile_ctrl()
1099 gspca_dev->usb_err = 0; in ov534_s_ctrl()
1101 return 0; in ov534_s_ctrl()
1172 saturation_min = 0, in sd_init_controls()
1177 brightness_def = 0; in sd_init_controls()
1178 contrast_max = 0x80; in sd_init_controls()
1179 contrast_def = 0x40; in sd_init_controls()
1180 exposure_min = 0x08; in sd_init_controls()
1181 exposure_max = 0x60; in sd_init_controls()
1182 exposure_def = 0x13; in sd_init_controls()
1185 saturation_min = 0, in sd_init_controls()
1188 brightness_min = 0; in sd_init_controls()
1190 brightness_def = 0; in sd_init_controls()
1193 exposure_min = 0; in sd_init_controls()
1196 hflip_def = 0; in sd_init_controls()
1205 V4L2_CID_HUE, -90, 90, 1, 0); in sd_init_controls()
1214 V4L2_CID_CONTRAST, 0, contrast_max, 1, contrast_def); in sd_init_controls()
1218 V4L2_CID_AUTOGAIN, 0, 1, 1, 1); in sd_init_controls()
1220 V4L2_CID_GAIN, 0, 63, 1, 20); in sd_init_controls()
1225 V4L2_EXPOSURE_MANUAL, 0, in sd_init_controls()
1232 V4L2_CID_AUTO_WHITE_BALANCE, 0, 1, 1, 1); in sd_init_controls()
1236 V4L2_CID_SHARPNESS, 0, 63, 1, 0); in sd_init_controls()
1239 V4L2_CID_HFLIP, 0, 1, 1, hflip_def); in sd_init_controls()
1241 V4L2_CID_VFLIP, 0, 1, 1, 0); in sd_init_controls()
1244 V4L2_CID_POWER_LINE_FREQUENCY_50HZ, 0, in sd_init_controls()
1253 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, true); in sd_init_controls()
1258 return 0; in sd_init_controls()
1276 ov534_reg_write(gspca_dev, 0xe7, 0x3a); in sd_init()
1277 ov534_reg_write(gspca_dev, 0xe0, 0x08); in sd_init()
1281 ov534_reg_write(gspca_dev, OV534_REG_ADDRESS, 0x42); in sd_init()
1284 sccb_reg_write(gspca_dev, 0x12, 0x80); in sd_init()
1288 sccb_reg_read(gspca_dev, 0x0a); in sd_init()
1289 sensor_id = sccb_reg_read(gspca_dev, 0x0a) << 8; in sd_init()
1290 sccb_reg_read(gspca_dev, 0x0b); in sd_init()
1291 sensor_id |= sccb_reg_read(gspca_dev, 0x0b); in sd_init()
1294 if ((sensor_id & 0xfff0) == 0x7670) { in sd_init()
1346 sccb_reg_write(gspca_dev, 0x1e, 0x04); in sd_start()
1349 mode = gspca_dev->curr_mode; /* 0: 320x240, 1: 640x480 */ in sd_start()
1376 ov534_reg_write(gspca_dev, 0xe0, 0x00); in sd_start()
1382 ov534_reg_write(gspca_dev, 0xe0, 0x09); in sd_stopN()
1383 ov534_set_led(gspca_dev, 0); in sd_stopN()
1394 #define UVC_STREAM_FID (1 << 0)
1415 if (data[0] != 12 || len < 12) { in sd_pkt_scan()
1433 this_fid = (data[1] & UVC_STREAM_FID) ? 1 : 0; in sd_pkt_scan()
1439 NULL, 0); in sd_pkt_scan()
1446 sd->last_pts = 0; in sd_pkt_scan()
1473 } while (remaining_len > 0); in sd_pkt_scan()
1496 if (tpf->numerator == 0 || tpf->denominator == 0) in sd_set_streamparm()
1524 {USB_DEVICE(0x1415, 0x2000)},
1525 {USB_DEVICE(0x06f8, 0x3002)},