Lines Matching +full:0 +full:x78
14 * 0x08 Unknown compressor related, must always be 8 except when not
16 * 0x1b Auto white balance related, bit 0 is AWB enable (inverted)
18 * 0x78 Global control, bit 6 controls the LED (inverted)
19 * 0x80 Compression balance, interesting settings:
20 * 0x01 Use this to allow the camera to switch to higher compr.
22 * 0x1c From usb captures under Windows for 640x480
23 * 0x2a Values >= this switch the camera to a lower compression,
29 * 0x3f From usb captures under Windows for 320x240
30 * 0x69 From usb captures under Windows for 160x120
35 * 0x02 Clock divider 2-63, fps =~ 60 / val. Must be a multiple of 3 on
37 * 0x0f Master gain 1-245, low value = high gain
38 * 0x10 Another gain 0-15, limited influence (1-2x gain I guess)
39 * 0x21 Bitfield: 0-1 unused, 2-3 vflip/hflip, 4-5 unknown, 6-7 unused
42 * 0x27 Seems to toggle various gains on / off, Setting bit 7 seems to
43 * completely disable the analog amplification block. Set to 0x68
44 * for max gain, 0x14 for minimal gain.
90 .priv = 0},
94 #define END_OF_SEQUENCE 0
97 0xff, 0x01,
98 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
99 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
100 0x78, 0x44, /* Bit_0=start stream, Bit_6=LED */
101 0xff, 0x04,
102 0x27, 0x80,
103 0x28, 0xca,
104 0x29, 0x53,
105 0x2a, 0x0e,
106 0xff, 0x01,
107 0x3e, 0x20,
112 0xff, 1, 0x01, /* page 1 */
113 0x02, 43, 0x48, 0x0a, 0x40, 0x08, 0x00, 0x00, 0x08, 0x00,
114 0x06, 0xff, 0x11, 0xff, 0x5a, 0x30, 0x90, 0x4c,
115 0x00, 0x07, 0x00, 0x0a, 0x10, 0x00, 0xa0, 0x10,
116 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00,
117 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
118 0x00, 0x00, 0x00,
119 0x3e, 42, 0x00, 0x00, 0x78, 0x52, 0x4a, 0x52, 0x78, 0x6e,
120 0x48, 0x46, 0x48, 0x6e, 0x5f, 0x49, 0x42, 0x49,
121 0x5f, 0x5f, 0x49, 0x42, 0x49, 0x5f, 0x6e, 0x48,
122 0x46, 0x48, 0x6e, 0x78, 0x52, 0x4a, 0x52, 0x78,
123 0x00, 0x00, 0x09, 0x1b, 0x34, 0x49, 0x5c, 0x9b,
124 0xd0, 0xff,
125 0x78, 6, 0x44, 0x00, 0xf2, 0x01, 0x01, 0x80,
126 0x7f, 18, 0x2a, 0x1c, 0x00, 0xc8, 0x02, 0x58, 0x03, 0x84,
127 0x12, 0x00, 0x1a, 0x04, 0x08, 0x0c, 0x10, 0x14,
128 0x18, 0x20,
129 0x96, 3, 0x01, 0x08, 0x04,
130 0xa0, 4, 0x44, 0x44, 0x44, 0x04,
131 0xf0, 13, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x20, 0x00,
132 0x3f, 0x00, 0x0a, 0x01, 0x00,
133 0xff, 1, 0x04, /* page 4 */
134 0, LOAD_PAGE4, /* load the page 4 */
135 0x11, 1, 0x01,
136 0, END_OF_SEQUENCE /* end of sequence */
139 #define SKIP 0xaa
142 SKIP, SKIP, 0x04, 0x54, 0x07, 0x2b, 0x09, 0x0f,
143 0x09, 0x00, SKIP, SKIP, 0x07, 0x00, 0x00, 0x62,
144 0x08, SKIP, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x00, 0x03, 0xa0, 0x01, 0xf4, SKIP,
146 SKIP, 0x00, 0x08, SKIP, 0x03, SKIP, 0x00, 0x68,
147 0xca, 0x10, 0x06, 0x78, 0x00, 0x00, 0x00, 0x00,
148 0x23, 0x28, 0x04, 0x11, 0x00, 0x00
157 if (gspca_dev->usb_err < 0) in reg_w_buf()
161 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w_buf()
162 0, /* request */ in reg_w_buf()
164 0, /* value */ in reg_w_buf()
167 if (ret < 0) { in reg_w_buf()
168 pr_err("reg_w_buf() failed index 0x%02x, error %d\n", in reg_w_buf()
181 if (gspca_dev->usb_err < 0) in reg_w()
183 gspca_dev->usb_buf[0] = value; in reg_w()
185 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w()
186 0, /* request */ in reg_w()
188 0, index, gspca_dev->usb_buf, 1, in reg_w()
190 if (ret < 0) { in reg_w()
191 pr_err("reg_w() failed index 0x%02x, value 0x%02x, error %d\n", in reg_w()
200 while (--len >= 0) { in reg_w_seq()
201 reg_w(gspca_dev, seq[0], seq[1]); in reg_w_seq()
211 int ret = 0; in reg_w_page()
213 if (gspca_dev->usb_err < 0) in reg_w_page()
215 for (index = 0; index < len; index++) { in reg_w_page()
218 gspca_dev->usb_buf[0] = page[index]; in reg_w_page()
220 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w_page()
221 0, /* request */ in reg_w_page()
223 0, index, gspca_dev->usb_buf, 1, in reg_w_page()
225 if (ret < 0) { in reg_w_page()
226 pr_err("reg_w_page() failed index 0x%02x, value 0x%02x, error %d\n", in reg_w_page()
255 while (len > 0) { in reg_w_var()
282 return 0; in sd_config()
287 reg_w(gspca_dev, 0xff, 0x04); in setcontrast()
288 reg_w(gspca_dev, 0x10, val); in setcontrast()
289 /* load registers to sensor (Bit 0, auto clear) */ in setcontrast()
290 reg_w(gspca_dev, 0x11, 0x01); in setcontrast()
295 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */ in setgain()
296 reg_w(gspca_dev, 0x0e, 0x00); in setgain()
297 reg_w(gspca_dev, 0x0f, gspca_dev->gain->maximum - val + 1); in setgain()
299 /* load registers to sensor (Bit 0, auto clear) */ in setgain()
300 reg_w(gspca_dev, 0x11, 0x01); in setgain()
305 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */ in setexposure()
306 reg_w(gspca_dev, 0x02, val); in setexposure()
308 /* load registers to sensor (Bit 0, auto clear) */ in setexposure()
309 reg_w(gspca_dev, 0x11, 0x01); in setexposure()
312 * Page 1 register 8 must always be 0x08 except when not in in setexposure()
315 reg_w(gspca_dev, 0xff, 0x01); in setexposure()
317 reg_w(gspca_dev, 0x08, 0x09); in setexposure()
319 reg_w(gspca_dev, 0x08, 0x08); in setexposure()
323 * want / use 0x1c, but for 640x480@30fps we must allow the in setexposure()
328 reg_w(gspca_dev, 0x80, 0x01); in setexposure()
330 reg_w(gspca_dev, 0x80, 0x1c); in setexposure()
332 /* load registers to sensor (Bit 0, auto clear) */ in setexposure()
333 reg_w(gspca_dev, 0x11, 0x01); in setexposure()
340 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */ in sethvflip()
341 data = (hflip ? 0x04 : 0x00) | in sethvflip()
342 (vflip ? 0x08 : 0x00); in sethvflip()
343 reg_w(gspca_dev, 0x21, data); in sethvflip()
345 /* load registers to sensor (Bit 0, auto clear) */ in sethvflip()
346 reg_w(gspca_dev, 0x11, 0x01); in sethvflip()
362 gspca_dev->usb_err = 0; in sd_s_ctrl()
375 return 0; in sd_s_ctrl()
410 V4L2_CID_CONTRAST, 0, 15, 1, 7); in sd_init_controls()
412 V4L2_CID_AUTOGAIN, 0, 1, 1, 1); in sd_init_controls()
417 V4L2_CID_GAIN, 0, 244, 1, in sd_init_controls()
420 V4L2_CID_HFLIP, 0, 1, 1, 0); in sd_init_controls()
427 v4l2_ctrl_auto_cluster(3, &gspca_dev->autogain, 0, false); in sd_init_controls()
428 return 0; in sd_init_controls()
436 sd->sof_read = 0; in sd_start()
448 reg_w(gspca_dev, 0xff, 0x01); in sd_start()
449 reg_w(gspca_dev, 0x17, 0x20); in sd_start()
450 reg_w(gspca_dev, 0x87, 0x10); in sd_start()
453 reg_w(gspca_dev, 0xff, 0x01); in sd_start()
454 reg_w(gspca_dev, 0x17, 0x30); in sd_start()
455 reg_w(gspca_dev, 0x87, 0x11); in sd_start()
457 case 0: /* 640x480 */ in sd_start()
458 reg_w(gspca_dev, 0xff, 0x01); in sd_start()
459 reg_w(gspca_dev, 0x17, 0x00); in sd_start()
460 reg_w(gspca_dev, 0x87, 0x12); in sd_start()
464 sd->sof_read = 0; in sd_start()
465 sd->autogain_ignore_frames = 0; in sd_start()
469 reg_w(gspca_dev, 0xff, 0x01); in sd_start()
470 reg_w(gspca_dev, 0x78, 0x05); in sd_start()
477 reg_w(gspca_dev, 0xff, 0x04); in sd_stopN()
478 reg_w(gspca_dev, 0x27, 0x80); in sd_stopN()
479 reg_w(gspca_dev, 0x28, 0xca); in sd_stopN()
480 reg_w(gspca_dev, 0x29, 0x53); in sd_stopN()
481 reg_w(gspca_dev, 0x2a, 0x0e); in sd_stopN()
482 reg_w(gspca_dev, 0xff, 0x01); in sd_stopN()
483 reg_w(gspca_dev, 0x3e, 0x20); in sd_stopN()
484 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ in sd_stopN()
485 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ in sd_stopN()
486 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ in sd_stopN()
501 if (sd->autogain_ignore_frames > 0) in do_autogain()
510 0xff, 0xd8, /* SOI: Start of Image */
512 0xff, 0xc0, /* SOF0: Start of Frame (Baseline DCT) */
513 0x00, 0x11, /* length = 17 bytes (including this length field) */
514 0x08 /* Precision: 8 */
521 0x03, /* Number of image components: 3 */
522 0x01, 0x21, 0x00, /* ID=1, Subsampling 1x1, Quantization table: 0 */
523 0x02, 0x11, 0x01, /* ID=2, Subsampling 2x1, Quantization table: 1 */
524 0x03, 0x11, 0x01, /* ID=3, Subsampling 2x1, Quantization table: 1 */
526 0xff, 0xda, /* SOS: Start Of Scan */
527 0x00, 0x0c, /* length = 12 bytes (including this length field) */
528 0x03, /* number of components: 3 */
529 0x01, 0x00, /* selector 1, table 0x00 */
530 0x02, 0x11, /* selector 2, table 0x11 */
531 0x03, 0x11, /* selector 3, table 0x11 */
532 0x00, 0x3f, /* Spectral selection: 0 .. 63 */
533 0x00 /* Successive approximation: 0 */
544 tmpbuf[0] = lines >> 8; in pac_start_frame()
545 tmpbuf[1] = lines & 0xff; in pac_start_frame()
547 tmpbuf[3] = samples_per_line & 0xff; in pac_start_frame()
579 if (n < 0) { in sd_pkt_scan()
581 n = 0; in sd_pkt_scan()
587 && image[gspca_dev->image_len - 2] == 0xff in sd_pkt_scan()
588 && image[gspca_dev->image_len - 1] == 0xd9) in sd_pkt_scan()
589 gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); in sd_pkt_scan()
619 data0 = data[0]; in sd_int_pkt_scan()
621 if ((data0 == 0x00 && data1 == 0x11) || in sd_int_pkt_scan()
622 (data0 == 0x22 && data1 == 0x33) || in sd_int_pkt_scan()
623 (data0 == 0x44 && data1 == 0x55) || in sd_int_pkt_scan()
624 (data0 == 0x66 && data1 == 0x77) || in sd_int_pkt_scan()
625 (data0 == 0x88 && data1 == 0x99) || in sd_int_pkt_scan()
626 (data0 == 0xaa && data1 == 0xbb) || in sd_int_pkt_scan()
627 (data0 == 0xcc && data1 == 0xdd) || in sd_int_pkt_scan()
628 (data0 == 0xee && data1 == 0xff)) { in sd_int_pkt_scan()
631 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0); in sd_int_pkt_scan()
633 ret = 0; in sd_int_pkt_scan()
657 {USB_DEVICE(0x093a, 0x2600)},
658 {USB_DEVICE(0x093a, 0x2601)},
659 {USB_DEVICE(0x093a, 0x2603)},
660 {USB_DEVICE(0x093a, 0x2608)},
661 {USB_DEVICE(0x093a, 0x260e)},
662 {USB_DEVICE(0x093a, 0x260f)},