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