Lines Matching refs:gspca_dev

86 	struct gspca_dev gspca_dev;	/* !! must be the first item */  member
116 static int sq905_command(struct gspca_dev *gspca_dev, u16 index) in sq905_command() argument
120 gspca_dev->usb_buf[0] = '\0'; in sq905_command()
121 ret = usb_control_msg(gspca_dev->dev, in sq905_command()
122 usb_sndctrlpipe(gspca_dev->dev, 0), in sq905_command()
125 SQ905_COMMAND, index, gspca_dev->usb_buf, 1, in sq905_command()
132 ret = usb_control_msg(gspca_dev->dev, in sq905_command()
133 usb_sndctrlpipe(gspca_dev->dev, 0), in sq905_command()
136 SQ905_PING, 0, gspca_dev->usb_buf, 1, in sq905_command()
149 static int sq905_ack_frame(struct gspca_dev *gspca_dev) in sq905_ack_frame() argument
153 gspca_dev->usb_buf[0] = '\0'; in sq905_ack_frame()
154 ret = usb_control_msg(gspca_dev->dev, in sq905_ack_frame()
155 usb_sndctrlpipe(gspca_dev->dev, 0), in sq905_ack_frame()
158 SQ905_READ_DONE, 0, gspca_dev->usb_buf, 1, in sq905_ack_frame()
172 sq905_read_data(struct gspca_dev *gspca_dev, u8 *data, int size, int need_lock) in sq905_read_data() argument
177 gspca_dev->usb_buf[0] = '\0'; in sq905_read_data()
179 mutex_lock(&gspca_dev->usb_lock); in sq905_read_data()
180 ret = usb_control_msg(gspca_dev->dev, in sq905_read_data()
181 usb_sndctrlpipe(gspca_dev->dev, 0), in sq905_read_data()
184 SQ905_BULK_READ, size, gspca_dev->usb_buf, in sq905_read_data()
187 mutex_unlock(&gspca_dev->usb_lock); in sq905_read_data()
192 ret = usb_bulk_msg(gspca_dev->dev, in sq905_read_data()
193 usb_rcvbulkpipe(gspca_dev->dev, 0x81), in sq905_read_data()
215 struct gspca_dev *gspca_dev = &dev->gspca_dev; in sq905_dostream() local
231 frame_sz = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].sizeimage in sq905_dostream()
234 while (gspca_dev->present && gspca_dev->streaming) { in sq905_dostream()
236 if (gspca_dev->frozen) in sq905_dostream()
248 while (bytes_left > 0 && gspca_dev->present) { in sq905_dostream()
251 ret = sq905_read_data(gspca_dev, buffer, data_len, 1); in sq905_dostream()
271 gspca_frame_add(gspca_dev, packet_type, in sq905_dostream()
277 gspca_frame_add(gspca_dev, LAST_PACKET, in sq905_dostream()
280 if (gspca_dev->present) { in sq905_dostream()
282 mutex_lock(&gspca_dev->usb_lock); in sq905_dostream()
283 ret = sq905_ack_frame(gspca_dev); in sq905_dostream()
284 mutex_unlock(&gspca_dev->usb_lock); in sq905_dostream()
290 if (gspca_dev->present) { in sq905_dostream()
291 mutex_lock(&gspca_dev->usb_lock); in sq905_dostream()
292 sq905_command(gspca_dev, SQ905_CLEAR); in sq905_dostream()
293 mutex_unlock(&gspca_dev->usb_lock); in sq905_dostream()
299 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
302 struct cam *cam = &gspca_dev->cam; in sd_config()
303 struct sd *dev = (struct sd *) gspca_dev; in sd_config()
316 static void sd_stop0(struct gspca_dev *gspca_dev) in sd_stop0() argument
318 struct sd *dev = (struct sd *) gspca_dev; in sd_stop0()
321 mutex_unlock(&gspca_dev->usb_lock); in sd_stop0()
325 mutex_lock(&gspca_dev->usb_lock); in sd_stop0()
329 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
337 ret = sq905_command(gspca_dev, SQ905_CLEAR); in sd_init()
340 ret = sq905_command(gspca_dev, SQ905_ID); in sd_init()
343 ret = sq905_read_data(gspca_dev, gspca_dev->usb_buf, 4, 0); in sd_init()
349 ident = be32_to_cpup((__be32 *)gspca_dev->usb_buf); in sd_init()
350 ret = sq905_command(gspca_dev, SQ905_CLEAR); in sd_init()
354 gspca_dev->cam.cam_mode = sq905_mode; in sd_init()
355 gspca_dev->cam.nmodes = ARRAY_SIZE(sq905_mode); in sd_init()
357 gspca_dev->cam.nmodes--; in sd_init()
360 gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP; in sd_init()
362 gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP | in sd_init()
368 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
370 struct sd *dev = (struct sd *) gspca_dev; in sd_start()
374 switch (gspca_dev->curr_mode) { in sd_start()
378 ret = sq905_command(&dev->gspca_dev, SQ905_CAPTURE_HIGH); in sd_start()
382 ret = sq905_command(&dev->gspca_dev, SQ905_CAPTURE_MED); in sd_start()
386 ret = sq905_command(&dev->gspca_dev, SQ905_CAPTURE_LOW); in sd_start()