Lines Matching refs:gspca_dev

21 	struct gspca_dev gspca_dev;	/* !! must be the first item */  member
64 static void reg_r(struct gspca_dev *gspca_dev, in reg_r() argument
69 usb_control_msg(gspca_dev->dev, in reg_r()
70 usb_rcvctrlpipe(gspca_dev->dev, 0), in reg_r()
74 index, gspca_dev->usb_buf, length, in reg_r()
91 static void spca506_Initi2c(struct gspca_dev *gspca_dev) in spca506_Initi2c() argument
93 reg_w(gspca_dev->dev, 0x07, SAA7113_I2C_BASE_WRITE, 0x0004); in spca506_Initi2c()
96 static void spca506_WriteI2c(struct gspca_dev *gspca_dev, __u16 valeur, in spca506_WriteI2c() argument
101 reg_w(gspca_dev->dev, 0x07, reg, 0x0001); in spca506_WriteI2c()
102 reg_w(gspca_dev->dev, 0x07, valeur, 0x0000); in spca506_WriteI2c()
104 reg_r(gspca_dev, 0x07, 0x0003, 2); in spca506_WriteI2c()
105 if ((gspca_dev->usb_buf[0] | gspca_dev->usb_buf[1]) == 0x00) in spca506_WriteI2c()
110 static void spca506_SetNormeInput(struct gspca_dev *gspca_dev, in spca506_SetNormeInput() argument
114 struct sd *sd = (struct sd *) gspca_dev; in spca506_SetNormeInput()
120 gspca_dbg(gspca_dev, D_STREAM, "** Open Set Norme **\n"); in spca506_SetNormeInput()
121 spca506_Initi2c(gspca_dev); in spca506_SetNormeInput()
132 reg_w(gspca_dev->dev, 0x08, videomask, 0x0000); in spca506_SetNormeInput()
133 spca506_WriteI2c(gspca_dev, (0xc0 | (channel & 0x0F)), 0x02); in spca506_SetNormeInput()
136 spca506_WriteI2c(gspca_dev, 0x33, 0x0e); in spca506_SetNormeInput()
139 spca506_WriteI2c(gspca_dev, 0x53, 0x0e); in spca506_SetNormeInput()
142 spca506_WriteI2c(gspca_dev, 0x03, 0x0e); in spca506_SetNormeInput()
147 gspca_dbg(gspca_dev, D_STREAM, "Set Video Byte to 0x%2x\n", videomask); in spca506_SetNormeInput()
148 gspca_dbg(gspca_dev, D_STREAM, "Set Norme: %08x Channel %d", in spca506_SetNormeInput()
152 static void spca506_GetNormeInput(struct gspca_dev *gspca_dev, in spca506_GetNormeInput() argument
155 struct sd *sd = (struct sd *) gspca_dev; in spca506_GetNormeInput()
161 gspca_dbg(gspca_dev, D_STREAM, "Get Norme: %d Channel %d\n", in spca506_GetNormeInput()
165 static void spca506_Setsize(struct gspca_dev *gspca_dev, __u16 code, in spca506_Setsize() argument
168 struct usb_device *dev = gspca_dev->dev; in spca506_Setsize()
170 gspca_dbg(gspca_dev, D_STREAM, "** SetSize **\n"); in spca506_Setsize()
197 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
202 cam = &gspca_dev->cam; in sd_config()
209 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
211 struct usb_device *dev = gspca_dev->dev; in sd_init()
219 spca506_SetNormeInput(gspca_dev, 0, 0); in sd_init()
245 spca506_Initi2c(gspca_dev); in sd_init()
246 spca506_WriteI2c(gspca_dev, 0x08, 0x01); in sd_init()
247 spca506_WriteI2c(gspca_dev, 0xc0, 0x02); in sd_init()
249 spca506_WriteI2c(gspca_dev, 0x33, 0x03); in sd_init()
250 spca506_WriteI2c(gspca_dev, 0x00, 0x04); in sd_init()
251 spca506_WriteI2c(gspca_dev, 0x00, 0x05); in sd_init()
252 spca506_WriteI2c(gspca_dev, 0x0d, 0x06); in sd_init()
253 spca506_WriteI2c(gspca_dev, 0xf0, 0x07); in sd_init()
254 spca506_WriteI2c(gspca_dev, 0x98, 0x08); in sd_init()
255 spca506_WriteI2c(gspca_dev, 0x03, 0x09); in sd_init()
256 spca506_WriteI2c(gspca_dev, 0x80, 0x0a); in sd_init()
257 spca506_WriteI2c(gspca_dev, 0x47, 0x0b); in sd_init()
258 spca506_WriteI2c(gspca_dev, 0x48, 0x0c); in sd_init()
259 spca506_WriteI2c(gspca_dev, 0x00, 0x0d); in sd_init()
260 spca506_WriteI2c(gspca_dev, 0x03, 0x0e); /* Chroma Pal adjust */ in sd_init()
261 spca506_WriteI2c(gspca_dev, 0x2a, 0x0f); in sd_init()
262 spca506_WriteI2c(gspca_dev, 0x00, 0x10); in sd_init()
263 spca506_WriteI2c(gspca_dev, 0x0c, 0x11); in sd_init()
264 spca506_WriteI2c(gspca_dev, 0xb8, 0x12); in sd_init()
265 spca506_WriteI2c(gspca_dev, 0x01, 0x13); in sd_init()
266 spca506_WriteI2c(gspca_dev, 0x00, 0x14); in sd_init()
267 spca506_WriteI2c(gspca_dev, 0x00, 0x15); in sd_init()
268 spca506_WriteI2c(gspca_dev, 0x00, 0x16); in sd_init()
269 spca506_WriteI2c(gspca_dev, 0x00, 0x17); in sd_init()
270 spca506_WriteI2c(gspca_dev, 0x00, 0x18); in sd_init()
271 spca506_WriteI2c(gspca_dev, 0x00, 0x19); in sd_init()
272 spca506_WriteI2c(gspca_dev, 0x00, 0x1a); in sd_init()
273 spca506_WriteI2c(gspca_dev, 0x00, 0x1b); in sd_init()
274 spca506_WriteI2c(gspca_dev, 0x00, 0x1c); in sd_init()
275 spca506_WriteI2c(gspca_dev, 0x00, 0x1d); in sd_init()
276 spca506_WriteI2c(gspca_dev, 0x00, 0x1e); in sd_init()
277 spca506_WriteI2c(gspca_dev, 0xa1, 0x1f); in sd_init()
278 spca506_WriteI2c(gspca_dev, 0x02, 0x40); in sd_init()
279 spca506_WriteI2c(gspca_dev, 0xff, 0x41); in sd_init()
280 spca506_WriteI2c(gspca_dev, 0xff, 0x42); in sd_init()
281 spca506_WriteI2c(gspca_dev, 0xff, 0x43); in sd_init()
282 spca506_WriteI2c(gspca_dev, 0xff, 0x44); in sd_init()
283 spca506_WriteI2c(gspca_dev, 0xff, 0x45); in sd_init()
284 spca506_WriteI2c(gspca_dev, 0xff, 0x46); in sd_init()
285 spca506_WriteI2c(gspca_dev, 0xff, 0x47); in sd_init()
286 spca506_WriteI2c(gspca_dev, 0xff, 0x48); in sd_init()
287 spca506_WriteI2c(gspca_dev, 0xff, 0x49); in sd_init()
288 spca506_WriteI2c(gspca_dev, 0xff, 0x4a); in sd_init()
289 spca506_WriteI2c(gspca_dev, 0xff, 0x4b); in sd_init()
290 spca506_WriteI2c(gspca_dev, 0xff, 0x4c); in sd_init()
291 spca506_WriteI2c(gspca_dev, 0xff, 0x4d); in sd_init()
292 spca506_WriteI2c(gspca_dev, 0xff, 0x4e); in sd_init()
293 spca506_WriteI2c(gspca_dev, 0xff, 0x4f); in sd_init()
294 spca506_WriteI2c(gspca_dev, 0xff, 0x50); in sd_init()
295 spca506_WriteI2c(gspca_dev, 0xff, 0x51); in sd_init()
296 spca506_WriteI2c(gspca_dev, 0xff, 0x52); in sd_init()
297 spca506_WriteI2c(gspca_dev, 0xff, 0x53); in sd_init()
298 spca506_WriteI2c(gspca_dev, 0xff, 0x54); in sd_init()
299 spca506_WriteI2c(gspca_dev, 0xff, 0x55); in sd_init()
300 spca506_WriteI2c(gspca_dev, 0xff, 0x56); in sd_init()
301 spca506_WriteI2c(gspca_dev, 0xff, 0x57); in sd_init()
302 spca506_WriteI2c(gspca_dev, 0x00, 0x58); in sd_init()
303 spca506_WriteI2c(gspca_dev, 0x54, 0x59); in sd_init()
304 spca506_WriteI2c(gspca_dev, 0x07, 0x5a); in sd_init()
305 spca506_WriteI2c(gspca_dev, 0x83, 0x5b); in sd_init()
306 spca506_WriteI2c(gspca_dev, 0x00, 0x5c); in sd_init()
307 spca506_WriteI2c(gspca_dev, 0x00, 0x5d); in sd_init()
308 spca506_WriteI2c(gspca_dev, 0x00, 0x5e); in sd_init()
309 spca506_WriteI2c(gspca_dev, 0x00, 0x5f); in sd_init()
310 spca506_WriteI2c(gspca_dev, 0x00, 0x60); in sd_init()
311 spca506_WriteI2c(gspca_dev, 0x05, 0x61); in sd_init()
312 spca506_WriteI2c(gspca_dev, 0x9f, 0x62); in sd_init()
313 gspca_dbg(gspca_dev, D_STREAM, "** Close Init *\n"); in sd_init()
317 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
319 struct usb_device *dev = gspca_dev->dev; in sd_start()
333 spca506_Initi2c(gspca_dev); in sd_start()
334 spca506_WriteI2c(gspca_dev, 0x08, 0x01); /* Increment Delay */ in sd_start()
336 spca506_WriteI2c(gspca_dev, 0x33, 0x03); in sd_start()
338 spca506_WriteI2c(gspca_dev, 0x00, 0x04); in sd_start()
340 spca506_WriteI2c(gspca_dev, 0x00, 0x05); in sd_start()
342 spca506_WriteI2c(gspca_dev, 0x0d, 0x06); in sd_start()
344 spca506_WriteI2c(gspca_dev, 0xf0, 0x07); in sd_start()
347 spca506_WriteI2c(gspca_dev, 0x98, 0x08); /* Sync Control */ in sd_start()
349 spca506_WriteI2c(gspca_dev, 0x03, 0x09); /* Luminance Control */ in sd_start()
350 spca506_WriteI2c(gspca_dev, 0x80, 0x0a); in sd_start()
352 spca506_WriteI2c(gspca_dev, 0x47, 0x0b); /* Luminance Contrast */ in sd_start()
353 spca506_WriteI2c(gspca_dev, 0x48, 0x0c); in sd_start()
355 spca506_WriteI2c(gspca_dev, 0x00, 0x0d); in sd_start()
357 spca506_WriteI2c(gspca_dev, 0x2a, 0x0f); in sd_start()
360 spca506_WriteI2c(gspca_dev, 0x00, 0x10); in sd_start()
362 spca506_WriteI2c(gspca_dev, 0x0c, 0x11); /* Output Control 1 */ in sd_start()
363 spca506_WriteI2c(gspca_dev, 0xb8, 0x12); /* Output Control 2 */ in sd_start()
364 spca506_WriteI2c(gspca_dev, 0x01, 0x13); /* Output Control 3 */ in sd_start()
365 spca506_WriteI2c(gspca_dev, 0x00, 0x14); /* reserved */ in sd_start()
366 spca506_WriteI2c(gspca_dev, 0x00, 0x15); /* VGATE START */ in sd_start()
367 spca506_WriteI2c(gspca_dev, 0x00, 0x16); /* VGATE STOP */ in sd_start()
368 spca506_WriteI2c(gspca_dev, 0x00, 0x17); /* VGATE Control (MSB) */ in sd_start()
369 spca506_WriteI2c(gspca_dev, 0x00, 0x18); in sd_start()
370 spca506_WriteI2c(gspca_dev, 0x00, 0x19); in sd_start()
371 spca506_WriteI2c(gspca_dev, 0x00, 0x1a); in sd_start()
372 spca506_WriteI2c(gspca_dev, 0x00, 0x1b); in sd_start()
373 spca506_WriteI2c(gspca_dev, 0x00, 0x1c); in sd_start()
374 spca506_WriteI2c(gspca_dev, 0x00, 0x1d); in sd_start()
375 spca506_WriteI2c(gspca_dev, 0x00, 0x1e); in sd_start()
376 spca506_WriteI2c(gspca_dev, 0xa1, 0x1f); in sd_start()
377 spca506_WriteI2c(gspca_dev, 0x02, 0x40); in sd_start()
378 spca506_WriteI2c(gspca_dev, 0xff, 0x41); in sd_start()
379 spca506_WriteI2c(gspca_dev, 0xff, 0x42); in sd_start()
380 spca506_WriteI2c(gspca_dev, 0xff, 0x43); in sd_start()
381 spca506_WriteI2c(gspca_dev, 0xff, 0x44); in sd_start()
382 spca506_WriteI2c(gspca_dev, 0xff, 0x45); in sd_start()
383 spca506_WriteI2c(gspca_dev, 0xff, 0x46); in sd_start()
384 spca506_WriteI2c(gspca_dev, 0xff, 0x47); in sd_start()
385 spca506_WriteI2c(gspca_dev, 0xff, 0x48); in sd_start()
386 spca506_WriteI2c(gspca_dev, 0xff, 0x49); in sd_start()
387 spca506_WriteI2c(gspca_dev, 0xff, 0x4a); in sd_start()
388 spca506_WriteI2c(gspca_dev, 0xff, 0x4b); in sd_start()
389 spca506_WriteI2c(gspca_dev, 0xff, 0x4c); in sd_start()
390 spca506_WriteI2c(gspca_dev, 0xff, 0x4d); in sd_start()
391 spca506_WriteI2c(gspca_dev, 0xff, 0x4e); in sd_start()
392 spca506_WriteI2c(gspca_dev, 0xff, 0x4f); in sd_start()
393 spca506_WriteI2c(gspca_dev, 0xff, 0x50); in sd_start()
394 spca506_WriteI2c(gspca_dev, 0xff, 0x51); in sd_start()
395 spca506_WriteI2c(gspca_dev, 0xff, 0x52); in sd_start()
396 spca506_WriteI2c(gspca_dev, 0xff, 0x53); in sd_start()
397 spca506_WriteI2c(gspca_dev, 0xff, 0x54); in sd_start()
398 spca506_WriteI2c(gspca_dev, 0xff, 0x55); in sd_start()
399 spca506_WriteI2c(gspca_dev, 0xff, 0x56); in sd_start()
400 spca506_WriteI2c(gspca_dev, 0xff, 0x57); in sd_start()
401 spca506_WriteI2c(gspca_dev, 0x00, 0x58); in sd_start()
402 spca506_WriteI2c(gspca_dev, 0x54, 0x59); in sd_start()
403 spca506_WriteI2c(gspca_dev, 0x07, 0x5a); in sd_start()
404 spca506_WriteI2c(gspca_dev, 0x83, 0x5b); in sd_start()
405 spca506_WriteI2c(gspca_dev, 0x00, 0x5c); in sd_start()
406 spca506_WriteI2c(gspca_dev, 0x00, 0x5d); in sd_start()
407 spca506_WriteI2c(gspca_dev, 0x00, 0x5e); in sd_start()
408 spca506_WriteI2c(gspca_dev, 0x00, 0x5f); in sd_start()
409 spca506_WriteI2c(gspca_dev, 0x00, 0x60); in sd_start()
410 spca506_WriteI2c(gspca_dev, 0x05, 0x61); in sd_start()
411 spca506_WriteI2c(gspca_dev, 0x9f, 0x62); in sd_start()
417 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) { in sd_start()
419 spca506_Setsize(gspca_dev, 0, 0x10, 0x10); in sd_start()
422 spca506_Setsize(gspca_dev, 1, 0x1a, 0x1a); in sd_start()
425 spca506_Setsize(gspca_dev, 2, 0x1c, 0x1c); in sd_start()
428 spca506_Setsize(gspca_dev, 4, 0x34, 0x34); in sd_start()
432 spca506_Setsize(gspca_dev, 5, 0x40, 0x40); in sd_start()
440 reg_r(gspca_dev, 0x04, 0x0001, 2); in sd_start()
441 gspca_dbg(gspca_dev, D_STREAM, "webcam started\n"); in sd_start()
442 spca506_GetNormeInput(gspca_dev, &norme, &channel); in sd_start()
443 spca506_SetNormeInput(gspca_dev, norme, channel); in sd_start()
447 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
449 struct usb_device *dev = gspca_dev->dev; in sd_stopN()
456 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
462 gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); in sd_pkt_scan()
465 gspca_frame_add(gspca_dev, FIRST_PACKET, data, len); in sd_pkt_scan()
473 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in sd_pkt_scan()
478 static void setbrightness(struct gspca_dev *gspca_dev, s32 val) in setbrightness() argument
480 spca506_Initi2c(gspca_dev); in setbrightness()
481 spca506_WriteI2c(gspca_dev, val, SAA7113_bright); in setbrightness()
482 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setbrightness()
485 static void setcontrast(struct gspca_dev *gspca_dev, s32 val) in setcontrast() argument
487 spca506_Initi2c(gspca_dev); in setcontrast()
488 spca506_WriteI2c(gspca_dev, val, SAA7113_contrast); in setcontrast()
489 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setcontrast()
492 static void setcolors(struct gspca_dev *gspca_dev, s32 val) in setcolors() argument
494 spca506_Initi2c(gspca_dev); in setcolors()
495 spca506_WriteI2c(gspca_dev, val, SAA7113_saturation); in setcolors()
496 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setcolors()
499 static void sethue(struct gspca_dev *gspca_dev, s32 val) in sethue() argument
501 spca506_Initi2c(gspca_dev); in sethue()
502 spca506_WriteI2c(gspca_dev, val, SAA7113_hue); in sethue()
503 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in sethue()
508 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
509 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
511 gspca_dev->usb_err = 0; in sd_s_ctrl()
513 if (!gspca_dev->streaming) in sd_s_ctrl()
518 setbrightness(gspca_dev, ctrl->val); in sd_s_ctrl()
521 setcontrast(gspca_dev, ctrl->val); in sd_s_ctrl()
524 setcolors(gspca_dev, ctrl->val); in sd_s_ctrl()
527 sethue(gspca_dev, ctrl->val); in sd_s_ctrl()
530 return gspca_dev->usb_err; in sd_s_ctrl()
537 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
539 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
541 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()