Lines Matching refs:gspca_dev

86 	struct gspca_dev gspca_dev;  /* !! must be the first item */
107 static void sd_stopN(struct gspca_dev *gspca_dev);
108 static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
109 static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
110 static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val);
111 static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val);
112 static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val);
113 static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val);
114 static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val);
115 static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val);
116 static int sd_setmin_clockdiv(struct gspca_dev *gspca_dev, __s32 val);
117 static int sd_getmin_clockdiv(struct gspca_dev *gspca_dev, __s32 *val);
118 static void setbrightness(struct gspca_dev *gspca_dev);
119 static void setexposure(struct gspca_dev *gspca_dev);
120 static void setgain(struct gspca_dev *gspca_dev);
121 static void setcontrast(struct gspca_dev *gspca_dev);
263 /* the bytes to write are in gspca_dev->usb_buf */
264 static int mr_write(struct gspca_dev *gspca_dev, int len)
268 rc = usb_bulk_msg(gspca_dev->dev,
269 usb_sndbulkpipe(gspca_dev->dev, 4),
270 gspca_dev->usb_buf, len, NULL, 500);
273 gspca_dev->usb_buf[0], rc);
277 /* the bytes are read into gspca_dev->usb_buf */
278 static int mr_read(struct gspca_dev *gspca_dev, int len)
282 rc = usb_bulk_msg(gspca_dev->dev,
283 usb_rcvbulkpipe(gspca_dev->dev, 3),
284 gspca_dev->usb_buf, len, NULL, 500);
287 gspca_dev->usb_buf[0], rc);
291 static int sensor_write_reg(struct gspca_dev *gspca_dev, u8 reg, u8 flags,
294 gspca_dev->usb_buf[0] = 0x1f;
295 gspca_dev->usb_buf[1] = flags;
296 gspca_dev->usb_buf[2] = reg;
297 memcpy(gspca_dev->usb_buf + 3, data, len);
299 return mr_write(gspca_dev, len + 3);
302 static int sensor_write_regs(struct gspca_dev *gspca_dev,
308 rc = sensor_write_reg(gspca_dev, data[i].reg, data[i].flags,
317 static int sensor_write1(struct gspca_dev *gspca_dev, u8 reg, u8 data)
319 struct sd *sd = (struct sd *) gspca_dev;
325 rc = sensor_write_reg(gspca_dev, reg, 0x01, &buf, 1);
328 rc = sensor_write_reg(gspca_dev, reg, 0x00, &buf, 1);
335 rc = sensor_write_reg(gspca_dev, confirm_reg, 0x00, &buf, 1);
342 static int cam_get_response16(struct gspca_dev *gspca_dev, u8 reg, int verbose)
346 gspca_dev->usb_buf[0] = reg;
347 err_code = mr_write(gspca_dev, 1);
351 err_code = mr_read(gspca_dev, 16);
357 gspca_dev->usb_buf[0],
358 gspca_dev->usb_buf[1],
359 gspca_dev->usb_buf[2]);
364 static int zero_the_pointer(struct gspca_dev *gspca_dev)
366 __u8 *data = gspca_dev->usb_buf;
371 err_code = cam_get_response16(gspca_dev, 0x21, 0);
377 err_code = mr_write(gspca_dev, 2);
381 err_code = cam_get_response16(gspca_dev, 0x21, 0);
387 err_code = mr_write(gspca_dev, 2);
391 err_code = cam_get_response16(gspca_dev, 0x21, 0);
397 err_code = mr_write(gspca_dev, 2);
401 err_code = cam_get_response16(gspca_dev, 0x21, 0);
407 err_code = mr_write(gspca_dev, 2);
412 err_code = cam_get_response16(gspca_dev, 0x21, 0);
425 err_code = mr_write(gspca_dev, 2);
429 err_code = cam_get_response16(gspca_dev, 0x21, 0);
437 err_code = mr_write(gspca_dev, 1);
441 err_code = mr_read(gspca_dev, 16);
448 static int stream_start(struct gspca_dev *gspca_dev)
450 gspca_dev->usb_buf[0] = 0x01;
451 gspca_dev->usb_buf[1] = 0x01;
452 return mr_write(gspca_dev, 2);
455 static void stream_stop(struct gspca_dev *gspca_dev)
457 gspca_dev->usb_buf[0] = 0x01;
458 gspca_dev->usb_buf[1] = 0x00;
459 if (mr_write(gspca_dev, 2) < 0)
463 static void lcd_stop(struct gspca_dev *gspca_dev)
465 gspca_dev->usb_buf[0] = 0x19;
466 gspca_dev->usb_buf[1] = 0x54;
467 if (mr_write(gspca_dev, 2) < 0)
471 static int isoc_enable(struct gspca_dev *gspca_dev)
473 gspca_dev->usb_buf[0] = 0x00;
474 gspca_dev->usb_buf[1] = 0x4d; /* ISOC transferring enable... */
475 return mr_write(gspca_dev, 2);
479 static int sd_config(struct gspca_dev *gspca_dev,
482 struct sd *sd = (struct sd *) gspca_dev;
487 cam = &gspca_dev->cam;
500 err_code = zero_the_pointer(gspca_dev);
504 err_code = stream_start(gspca_dev);
509 err_code = cam_get_response16(gspca_dev, 0x07, 1);
537 switch (gspca_dev->usb_buf[0]) {
546 gspca_dev->usb_buf[1]);
559 * Name gspca_dev->usb_buf[] sd->sensor_type
576 if (gspca_dev->usb_buf[0] == 0x01) {
578 } else if ((gspca_dev->usb_buf[0] != 0x03) &&
579 (gspca_dev->usb_buf[0] != 0x04)) {
581 gspca_dev->usb_buf[0]);
586 if ((gspca_dev->usb_buf[0] == 0x03) &&
587 (gspca_dev->usb_buf[1] == 0x50))
589 if (gspca_dev->usb_buf[0] == 0x04) {
591 switch (gspca_dev->usb_buf[1]) {
601 gspca_dev->usb_buf[1]);
610 sd_stopN(gspca_dev);
622 gspca_dev->ctrl_dis = (1 << NORM_BRIGHTNESS_IDX) |
627 gspca_dev->ctrl_dis = (1 << ARGUS_QC_BRIGHTNESS_IDX) |
634 gspca_dev->ctrl_dis = (1 << NORM_BRIGHTNESS_IDX) |
642 gspca_dev->ctrl_dis = (1 << NORM_BRIGHTNESS_IDX) |
649 gspca_dev->ctrl_dis = (1 << NORM_BRIGHTNESS_IDX) |
653 gspca_dev->ctrl_dis = (1 << ARGUS_QC_BRIGHTNESS_IDX) |
668 static int sd_init(struct gspca_dev *gspca_dev)
673 static int start_cif_cam(struct gspca_dev *gspca_dev)
675 struct sd *sd = (struct sd *) gspca_dev;
676 __u8 *data = gspca_dev->usb_buf;
698 switch (gspca_dev->width) {
719 err_code = mr_write(gspca_dev, 11);
742 err_code = sensor_write_regs(gspca_dev, cif_sensor0_init_data,
764 gspca_dev->usb_buf[0] = 0x0a;
765 gspca_dev->usb_buf[1] = 0x00;
766 err_code = mr_write(gspca_dev, 2);
769 err_code = sensor_write_regs(gspca_dev, cif_sensor1_init_data,
775 static int start_vga_cam(struct gspca_dev *gspca_dev)
777 struct sd *sd = (struct sd *) gspca_dev;
778 __u8 *data = gspca_dev->usb_buf;
795 switch (gspca_dev->width) {
829 err_code = mr_write(gspca_dev, 11);
842 err_code = sensor_write_regs(gspca_dev, vga_sensor0_init_data,
871 err_code = sensor_write_regs(gspca_dev, color_adj,
874 err_code = sensor_write_regs(gspca_dev, color_no_adj,
880 err_code = sensor_write_regs(gspca_dev, vga_sensor1_init_data,
922 err_code = sensor_write_regs(gspca_dev, vga_sensor2_init_data,
928 static int sd_start(struct gspca_dev *gspca_dev)
930 struct sd *sd = (struct sd *) gspca_dev;
939 err_code = zero_the_pointer(gspca_dev);
943 err_code = stream_start(gspca_dev);
948 err_code = start_cif_cam(gspca_dev);
950 err_code = start_vga_cam(gspca_dev);
955 setbrightness(gspca_dev);
956 setcontrast(gspca_dev);
957 setexposure(gspca_dev);
958 setgain(gspca_dev);
960 return isoc_enable(gspca_dev);
963 static void sd_stopN(struct gspca_dev *gspca_dev)
965 struct sd *sd = (struct sd *) gspca_dev;
967 stream_stop(gspca_dev);
969 zero_the_pointer(gspca_dev);
971 lcd_stop(gspca_dev);
974 static void setbrightness(struct gspca_dev *gspca_dev)
976 struct sd *sd = (struct sd *) gspca_dev;
989 if ((gspca_dev->ctrl_dis & (1 << NORM_BRIGHTNESS_IDX)) &&
990 (gspca_dev->ctrl_dis & (1 << ARGUS_QC_BRIGHTNESS_IDX)))
1000 sensor_write1(gspca_dev, sign_reg, 0x00);
1003 sensor_write1(gspca_dev, sign_reg, 0x01);
1010 sensor_write1(gspca_dev, value_reg, val);
1013 static void setexposure(struct gspca_dev *gspca_dev)
1015 struct sd *sd = (struct sd *) gspca_dev;
1019 if (gspca_dev->ctrl_dis & (1 << EXPOSURE_IDX))
1026 sensor_write1(gspca_dev, 3, exposure >> 4);
1027 sensor_write1(gspca_dev, 4, exposure & 0x0f);
1031 sensor_write1(gspca_dev, 3, exposure >> 8);
1032 sensor_write1(gspca_dev, 4, exposure & 0xff);
1044 if (clockdiv < sd->min_clockdiv && gspca_dev->width >= 320)
1063 sensor_write_reg(gspca_dev, 0x0e, 0, buf, 2);
1064 sensor_write1(gspca_dev, 0x02, clockdiv);
1068 static void setgain(struct gspca_dev *gspca_dev)
1070 struct sd *sd = (struct sd *) gspca_dev;
1073 if ((gspca_dev->ctrl_dis & (1 << GAIN_IDX)) &&
1074 (gspca_dev->ctrl_dis & (1 << SAKAR_CS_GAIN_IDX)))
1078 sensor_write1(gspca_dev, 0x0e, sd->gain);
1081 sensor_write1(gspca_dev, gainreg, sd->gain >> 8);
1082 sensor_write1(gspca_dev, gainreg + 1, sd->gain & 0xff);
1085 sensor_write1(gspca_dev, 0x10, sd->gain);
1088 static void setcontrast(struct gspca_dev *gspca_dev)
1090 struct sd *sd = (struct sd *) gspca_dev;
1092 if (gspca_dev->ctrl_dis & (1 << CONTRAST_IDX))
1095 sensor_write1(gspca_dev, 0x1c, sd->contrast);
1099 static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
1101 struct sd *sd = (struct sd *) gspca_dev;
1104 if (gspca_dev->streaming)
1105 setbrightness(gspca_dev);
1109 static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
1111 struct sd *sd = (struct sd *) gspca_dev;
1117 static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val)
1119 struct sd *sd = (struct sd *) gspca_dev;
1122 if (gspca_dev->streaming)
1123 setexposure(gspca_dev);
1127 static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val)
1129 struct sd *sd = (struct sd *) gspca_dev;
1135 static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val)
1137 struct sd *sd = (struct sd *) gspca_dev;
1140 if (gspca_dev->streaming)
1141 setgain(gspca_dev);
1145 static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val)
1147 struct sd *sd = (struct sd *) gspca_dev;
1153 static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
1155 struct sd *sd = (struct sd *) gspca_dev;
1158 if (gspca_dev->streaming)
1159 setcontrast(gspca_dev);
1164 static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val)
1166 struct sd *sd = (struct sd *) gspca_dev;
1172 static int sd_setmin_clockdiv(struct gspca_dev *gspca_dev, __s32 val)
1174 struct sd *sd = (struct sd *) gspca_dev;
1177 if (gspca_dev->streaming)
1178 setexposure(gspca_dev);
1182 static int sd_getmin_clockdiv(struct gspca_dev *gspca_dev, __s32 *val)
1184 struct sd *sd = (struct sd *) gspca_dev;
1193 static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1197 struct sd *sd = (struct sd *) gspca_dev;
1210 gspca_frame_add(gspca_dev, LAST_PACKET,
1213 gspca_frame_add(gspca_dev, FIRST_PACKET,
1218 gspca_frame_add(gspca_dev, INTER_PACKET, data, len);