Lines Matching refs:gspca_dev
20 struct gspca_dev gspca_dev; /* !! must be the first item */
58 /* the bytes to write are in gspca_dev->usb_buf */
59 static int sn9c2028_command(struct gspca_dev *gspca_dev, u8 *command)
63 gspca_dbg(gspca_dev, D_USBO, "sending command %02x%02x%02x%02x%02x%02x\n",
67 memcpy(gspca_dev->usb_buf, command, 6);
68 rc = usb_control_msg(gspca_dev->dev,
69 usb_sndctrlpipe(gspca_dev->dev, 0),
72 2, 0, gspca_dev->usb_buf, 6, 500);
75 gspca_dev->usb_buf[0], rc);
82 static int sn9c2028_read1(struct gspca_dev *gspca_dev)
86 rc = usb_control_msg(gspca_dev->dev,
87 usb_rcvctrlpipe(gspca_dev->dev, 0),
90 1, 0, gspca_dev->usb_buf, 1, 500);
95 gspca_dbg(gspca_dev, D_USBI, "read1 response %02x\n",
96 gspca_dev->usb_buf[0]);
97 return gspca_dev->usb_buf[0];
100 static int sn9c2028_read4(struct gspca_dev *gspca_dev, u8 *reading)
103 rc = usb_control_msg(gspca_dev->dev,
104 usb_rcvctrlpipe(gspca_dev->dev, 0),
107 4, 0, gspca_dev->usb_buf, 4, 500);
112 memcpy(reading, gspca_dev->usb_buf, 4);
113 gspca_dbg(gspca_dev, D_USBI, "read4 response %02x%02x%02x%02x\n",
118 static int sn9c2028_long_command(struct gspca_dev *gspca_dev, u8 *command)
123 status = sn9c2028_command(gspca_dev, command);
129 status = sn9c2028_read1(gspca_dev);
136 status = sn9c2028_read4(gspca_dev, reading);
142 status = sn9c2028_read1(gspca_dev);
149 static int sn9c2028_short_command(struct gspca_dev *gspca_dev, u8 *command)
153 err_code = sn9c2028_command(gspca_dev, command);
157 err_code = sn9c2028_read1(gspca_dev);
165 static int sd_config(struct gspca_dev *gspca_dev,
168 struct sd *sd = (struct sd *) gspca_dev;
169 struct cam *cam = &gspca_dev->cam;
171 gspca_dbg(gspca_dev, D_PROBE, "SN9C2028 camera detected (vid/pid 0x%04X:0x%04X)\n",
178 gspca_dbg(gspca_dev, D_PROBE, "Genius Smart 300 camera\n");
181 gspca_dbg(gspca_dev, D_PROBE, "Genius Videocam Live v2\n");
184 gspca_dbg(gspca_dev, D_PROBE, "DC31VC\n");
187 gspca_dbg(gspca_dev, D_PROBE, "Spy camera\n");
190 gspca_dbg(gspca_dev, D_PROBE, "CIF camera\n");
193 gspca_dbg(gspca_dev, D_PROBE, "Mini-Shotz ms-350 camera\n");
196 gspca_dbg(gspca_dev, D_PROBE, "Vivitar 3350b type camera\n");
216 static int sd_init(struct gspca_dev *gspca_dev)
220 sn9c2028_read1(gspca_dev);
221 sn9c2028_read1(gspca_dev);
222 status = sn9c2028_read1(gspca_dev);
227 static int run_start_commands(struct gspca_dev *gspca_dev,
235 err_code = sn9c2028_long_command(gspca_dev,
239 err_code = sn9c2028_short_command(gspca_dev,
243 err_code = sn9c2028_command(gspca_dev,
253 static void set_gain(struct gspca_dev *gspca_dev, s32 g)
255 struct sd *sd = (struct sd *) gspca_dev;
261 if (!gspca_dev->streaming)
267 run_start_commands(gspca_dev, genius_vcam_live_gain_cmds,
277 struct gspca_dev *gspca_dev =
278 container_of(ctrl->handler, struct gspca_dev, ctrl_handler);
279 struct sd *sd = (struct sd *)gspca_dev;
281 gspca_dev->usb_err = 0;
283 if (!gspca_dev->streaming)
289 set_gain(gspca_dev, ctrl->val);
293 set_gain(gspca_dev, sd->gain->val);
296 return gspca_dev->usb_err;
304 static int sd_init_controls(struct gspca_dev *gspca_dev)
306 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;
307 struct sd *sd = (struct sd *)gspca_dev;
309 gspca_dev->vdev.ctrl_handler = hdl;
325 static int start_spy_cam(struct gspca_dev *gspca_dev)
386 return run_start_commands(gspca_dev, spy_start_commands,
390 static int start_cif_cam(struct gspca_dev *gspca_dev)
463 return run_start_commands(gspca_dev, cif_start_commands,
467 static int start_ms350_cam(struct gspca_dev *gspca_dev)
531 return run_start_commands(gspca_dev, ms350_start_commands,
535 static int start_genius_cam(struct gspca_dev *gspca_dev)
603 return run_start_commands(gspca_dev, genius_start_commands,
607 static int start_genius_videocam_live(struct gspca_dev *gspca_dev)
610 struct sd *sd = (struct sd *) gspca_dev;
709 r = run_start_commands(gspca_dev, genius_vcam_live_start_commands,
715 set_gain(gspca_dev, v4l2_ctrl_g_ctrl(sd->gain));
720 static int start_vivitar_cam(struct gspca_dev *gspca_dev)
798 return run_start_commands(gspca_dev, vivitar_start_commands,
802 static int sd_start(struct gspca_dev *gspca_dev)
804 struct sd *sd = (struct sd *) gspca_dev;
811 err_code = start_genius_cam(gspca_dev);
814 err_code = start_genius_videocam_live(gspca_dev);
817 err_code = start_spy_cam(gspca_dev);
820 err_code = start_cif_cam(gspca_dev);
823 err_code = start_ms350_cam(gspca_dev);
826 err_code = start_vivitar_cam(gspca_dev);
838 static void sd_stopN(struct gspca_dev *gspca_dev)
843 result = sn9c2028_read1(gspca_dev);
845 gspca_err(gspca_dev, "Camera Stop read failed\n");
849 result = sn9c2028_command(gspca_dev, data);
851 gspca_err(gspca_dev, "Camera Stop command failed\n");
854 static void do_autogain(struct gspca_dev *gspca_dev, int avg_lum)
856 struct sd *sd = (struct sd *) gspca_dev;
877 static void sd_dqcallback(struct gspca_dev *gspca_dev)
879 struct sd *sd = (struct sd *) gspca_dev;
884 do_autogain(gspca_dev, sd->avg_lum);
890 static void sd_pkt_scan(struct gspca_dev *gspca_dev,
896 sof = sn9c2028_find_sof(gspca_dev, data, len);
906 gspca_frame_add(gspca_dev, LAST_PACKET, data, n);
908 gspca_frame_add(gspca_dev, FIRST_PACKET,
913 gspca_frame_add(gspca_dev, INTER_PACKET, data, len);