Lines Matching refs:gspca_dev
34 struct gspca_dev gspca_dev; /* !! must be the first item */ member
77 static void reg_r(struct gspca_dev *gspca_dev, in reg_r() argument
82 usb_control_msg(gspca_dev->dev, in reg_r()
83 usb_rcvctrlpipe(gspca_dev->dev, 0), in reg_r()
87 index, gspca_dev->usb_buf, length, in reg_r()
104 static void spca506_Initi2c(struct gspca_dev *gspca_dev) in spca506_Initi2c() argument
106 reg_w(gspca_dev->dev, 0x07, SAA7113_I2C_BASE_WRITE, 0x0004); in spca506_Initi2c()
109 static void spca506_WriteI2c(struct gspca_dev *gspca_dev, __u16 valeur, in spca506_WriteI2c() argument
114 reg_w(gspca_dev->dev, 0x07, reg, 0x0001); in spca506_WriteI2c()
115 reg_w(gspca_dev->dev, 0x07, valeur, 0x0000); in spca506_WriteI2c()
117 reg_r(gspca_dev, 0x07, 0x0003, 2); in spca506_WriteI2c()
118 if ((gspca_dev->usb_buf[0] | gspca_dev->usb_buf[1]) == 0x00) in spca506_WriteI2c()
123 static void spca506_SetNormeInput(struct gspca_dev *gspca_dev, in spca506_SetNormeInput() argument
127 struct sd *sd = (struct sd *) gspca_dev; in spca506_SetNormeInput()
134 spca506_Initi2c(gspca_dev); in spca506_SetNormeInput()
145 reg_w(gspca_dev->dev, 0x08, videomask, 0x0000); in spca506_SetNormeInput()
146 spca506_WriteI2c(gspca_dev, (0xc0 | (channel & 0x0F)), 0x02); in spca506_SetNormeInput()
149 spca506_WriteI2c(gspca_dev, 0x33, 0x0e); in spca506_SetNormeInput()
152 spca506_WriteI2c(gspca_dev, 0x53, 0x0e); in spca506_SetNormeInput()
155 spca506_WriteI2c(gspca_dev, 0x03, 0x0e); in spca506_SetNormeInput()
164 static void spca506_GetNormeInput(struct gspca_dev *gspca_dev, in spca506_GetNormeInput() argument
167 struct sd *sd = (struct sd *) gspca_dev; in spca506_GetNormeInput()
176 static void spca506_Setsize(struct gspca_dev *gspca_dev, __u16 code, in spca506_Setsize() argument
179 struct usb_device *dev = gspca_dev->dev; in spca506_Setsize()
208 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
213 cam = &gspca_dev->cam; in sd_config()
220 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
222 struct usb_device *dev = gspca_dev->dev; in sd_init()
230 spca506_SetNormeInput(gspca_dev, 0, 0); in sd_init()
256 spca506_Initi2c(gspca_dev); in sd_init()
257 spca506_WriteI2c(gspca_dev, 0x08, 0x01); in sd_init()
258 spca506_WriteI2c(gspca_dev, 0xc0, 0x02); in sd_init()
260 spca506_WriteI2c(gspca_dev, 0x33, 0x03); in sd_init()
261 spca506_WriteI2c(gspca_dev, 0x00, 0x04); in sd_init()
262 spca506_WriteI2c(gspca_dev, 0x00, 0x05); in sd_init()
263 spca506_WriteI2c(gspca_dev, 0x0d, 0x06); in sd_init()
264 spca506_WriteI2c(gspca_dev, 0xf0, 0x07); in sd_init()
265 spca506_WriteI2c(gspca_dev, 0x98, 0x08); in sd_init()
266 spca506_WriteI2c(gspca_dev, 0x03, 0x09); in sd_init()
267 spca506_WriteI2c(gspca_dev, 0x80, 0x0a); in sd_init()
268 spca506_WriteI2c(gspca_dev, 0x47, 0x0b); in sd_init()
269 spca506_WriteI2c(gspca_dev, 0x48, 0x0c); in sd_init()
270 spca506_WriteI2c(gspca_dev, 0x00, 0x0d); in sd_init()
271 spca506_WriteI2c(gspca_dev, 0x03, 0x0e); /* Chroma Pal adjust */ in sd_init()
272 spca506_WriteI2c(gspca_dev, 0x2a, 0x0f); in sd_init()
273 spca506_WriteI2c(gspca_dev, 0x00, 0x10); in sd_init()
274 spca506_WriteI2c(gspca_dev, 0x0c, 0x11); in sd_init()
275 spca506_WriteI2c(gspca_dev, 0xb8, 0x12); in sd_init()
276 spca506_WriteI2c(gspca_dev, 0x01, 0x13); in sd_init()
277 spca506_WriteI2c(gspca_dev, 0x00, 0x14); in sd_init()
278 spca506_WriteI2c(gspca_dev, 0x00, 0x15); in sd_init()
279 spca506_WriteI2c(gspca_dev, 0x00, 0x16); in sd_init()
280 spca506_WriteI2c(gspca_dev, 0x00, 0x17); in sd_init()
281 spca506_WriteI2c(gspca_dev, 0x00, 0x18); in sd_init()
282 spca506_WriteI2c(gspca_dev, 0x00, 0x19); in sd_init()
283 spca506_WriteI2c(gspca_dev, 0x00, 0x1a); in sd_init()
284 spca506_WriteI2c(gspca_dev, 0x00, 0x1b); in sd_init()
285 spca506_WriteI2c(gspca_dev, 0x00, 0x1c); in sd_init()
286 spca506_WriteI2c(gspca_dev, 0x00, 0x1d); in sd_init()
287 spca506_WriteI2c(gspca_dev, 0x00, 0x1e); in sd_init()
288 spca506_WriteI2c(gspca_dev, 0xa1, 0x1f); in sd_init()
289 spca506_WriteI2c(gspca_dev, 0x02, 0x40); in sd_init()
290 spca506_WriteI2c(gspca_dev, 0xff, 0x41); in sd_init()
291 spca506_WriteI2c(gspca_dev, 0xff, 0x42); in sd_init()
292 spca506_WriteI2c(gspca_dev, 0xff, 0x43); in sd_init()
293 spca506_WriteI2c(gspca_dev, 0xff, 0x44); in sd_init()
294 spca506_WriteI2c(gspca_dev, 0xff, 0x45); in sd_init()
295 spca506_WriteI2c(gspca_dev, 0xff, 0x46); in sd_init()
296 spca506_WriteI2c(gspca_dev, 0xff, 0x47); in sd_init()
297 spca506_WriteI2c(gspca_dev, 0xff, 0x48); in sd_init()
298 spca506_WriteI2c(gspca_dev, 0xff, 0x49); in sd_init()
299 spca506_WriteI2c(gspca_dev, 0xff, 0x4a); in sd_init()
300 spca506_WriteI2c(gspca_dev, 0xff, 0x4b); in sd_init()
301 spca506_WriteI2c(gspca_dev, 0xff, 0x4c); in sd_init()
302 spca506_WriteI2c(gspca_dev, 0xff, 0x4d); in sd_init()
303 spca506_WriteI2c(gspca_dev, 0xff, 0x4e); in sd_init()
304 spca506_WriteI2c(gspca_dev, 0xff, 0x4f); in sd_init()
305 spca506_WriteI2c(gspca_dev, 0xff, 0x50); in sd_init()
306 spca506_WriteI2c(gspca_dev, 0xff, 0x51); in sd_init()
307 spca506_WriteI2c(gspca_dev, 0xff, 0x52); in sd_init()
308 spca506_WriteI2c(gspca_dev, 0xff, 0x53); in sd_init()
309 spca506_WriteI2c(gspca_dev, 0xff, 0x54); in sd_init()
310 spca506_WriteI2c(gspca_dev, 0xff, 0x55); in sd_init()
311 spca506_WriteI2c(gspca_dev, 0xff, 0x56); in sd_init()
312 spca506_WriteI2c(gspca_dev, 0xff, 0x57); in sd_init()
313 spca506_WriteI2c(gspca_dev, 0x00, 0x58); in sd_init()
314 spca506_WriteI2c(gspca_dev, 0x54, 0x59); in sd_init()
315 spca506_WriteI2c(gspca_dev, 0x07, 0x5a); in sd_init()
316 spca506_WriteI2c(gspca_dev, 0x83, 0x5b); in sd_init()
317 spca506_WriteI2c(gspca_dev, 0x00, 0x5c); in sd_init()
318 spca506_WriteI2c(gspca_dev, 0x00, 0x5d); in sd_init()
319 spca506_WriteI2c(gspca_dev, 0x00, 0x5e); in sd_init()
320 spca506_WriteI2c(gspca_dev, 0x00, 0x5f); in sd_init()
321 spca506_WriteI2c(gspca_dev, 0x00, 0x60); in sd_init()
322 spca506_WriteI2c(gspca_dev, 0x05, 0x61); in sd_init()
323 spca506_WriteI2c(gspca_dev, 0x9f, 0x62); in sd_init()
328 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
330 struct usb_device *dev = gspca_dev->dev; in sd_start()
344 spca506_Initi2c(gspca_dev); in sd_start()
345 spca506_WriteI2c(gspca_dev, 0x08, 0x01); /* Increment Delay */ in sd_start()
347 spca506_WriteI2c(gspca_dev, 0x33, 0x03); in sd_start()
349 spca506_WriteI2c(gspca_dev, 0x00, 0x04); in sd_start()
351 spca506_WriteI2c(gspca_dev, 0x00, 0x05); in sd_start()
353 spca506_WriteI2c(gspca_dev, 0x0d, 0x06); in sd_start()
355 spca506_WriteI2c(gspca_dev, 0xf0, 0x07); in sd_start()
358 spca506_WriteI2c(gspca_dev, 0x98, 0x08); /* Sync Control */ in sd_start()
360 spca506_WriteI2c(gspca_dev, 0x03, 0x09); /* Luminance Control */ in sd_start()
361 spca506_WriteI2c(gspca_dev, 0x80, 0x0a); in sd_start()
363 spca506_WriteI2c(gspca_dev, 0x47, 0x0b); /* Luminance Contrast */ in sd_start()
364 spca506_WriteI2c(gspca_dev, 0x48, 0x0c); in sd_start()
366 spca506_WriteI2c(gspca_dev, 0x00, 0x0d); in sd_start()
368 spca506_WriteI2c(gspca_dev, 0x2a, 0x0f); in sd_start()
371 spca506_WriteI2c(gspca_dev, 0x00, 0x10); in sd_start()
373 spca506_WriteI2c(gspca_dev, 0x0c, 0x11); /* Output Control 1 */ in sd_start()
374 spca506_WriteI2c(gspca_dev, 0xb8, 0x12); /* Output Control 2 */ in sd_start()
375 spca506_WriteI2c(gspca_dev, 0x01, 0x13); /* Output Control 3 */ in sd_start()
376 spca506_WriteI2c(gspca_dev, 0x00, 0x14); /* reserved */ in sd_start()
377 spca506_WriteI2c(gspca_dev, 0x00, 0x15); /* VGATE START */ in sd_start()
378 spca506_WriteI2c(gspca_dev, 0x00, 0x16); /* VGATE STOP */ in sd_start()
379 spca506_WriteI2c(gspca_dev, 0x00, 0x17); /* VGATE Control (MSB) */ in sd_start()
380 spca506_WriteI2c(gspca_dev, 0x00, 0x18); in sd_start()
381 spca506_WriteI2c(gspca_dev, 0x00, 0x19); in sd_start()
382 spca506_WriteI2c(gspca_dev, 0x00, 0x1a); in sd_start()
383 spca506_WriteI2c(gspca_dev, 0x00, 0x1b); in sd_start()
384 spca506_WriteI2c(gspca_dev, 0x00, 0x1c); in sd_start()
385 spca506_WriteI2c(gspca_dev, 0x00, 0x1d); in sd_start()
386 spca506_WriteI2c(gspca_dev, 0x00, 0x1e); in sd_start()
387 spca506_WriteI2c(gspca_dev, 0xa1, 0x1f); in sd_start()
388 spca506_WriteI2c(gspca_dev, 0x02, 0x40); in sd_start()
389 spca506_WriteI2c(gspca_dev, 0xff, 0x41); in sd_start()
390 spca506_WriteI2c(gspca_dev, 0xff, 0x42); in sd_start()
391 spca506_WriteI2c(gspca_dev, 0xff, 0x43); in sd_start()
392 spca506_WriteI2c(gspca_dev, 0xff, 0x44); in sd_start()
393 spca506_WriteI2c(gspca_dev, 0xff, 0x45); in sd_start()
394 spca506_WriteI2c(gspca_dev, 0xff, 0x46); in sd_start()
395 spca506_WriteI2c(gspca_dev, 0xff, 0x47); in sd_start()
396 spca506_WriteI2c(gspca_dev, 0xff, 0x48); in sd_start()
397 spca506_WriteI2c(gspca_dev, 0xff, 0x49); in sd_start()
398 spca506_WriteI2c(gspca_dev, 0xff, 0x4a); in sd_start()
399 spca506_WriteI2c(gspca_dev, 0xff, 0x4b); in sd_start()
400 spca506_WriteI2c(gspca_dev, 0xff, 0x4c); in sd_start()
401 spca506_WriteI2c(gspca_dev, 0xff, 0x4d); in sd_start()
402 spca506_WriteI2c(gspca_dev, 0xff, 0x4e); in sd_start()
403 spca506_WriteI2c(gspca_dev, 0xff, 0x4f); in sd_start()
404 spca506_WriteI2c(gspca_dev, 0xff, 0x50); in sd_start()
405 spca506_WriteI2c(gspca_dev, 0xff, 0x51); in sd_start()
406 spca506_WriteI2c(gspca_dev, 0xff, 0x52); in sd_start()
407 spca506_WriteI2c(gspca_dev, 0xff, 0x53); in sd_start()
408 spca506_WriteI2c(gspca_dev, 0xff, 0x54); in sd_start()
409 spca506_WriteI2c(gspca_dev, 0xff, 0x55); in sd_start()
410 spca506_WriteI2c(gspca_dev, 0xff, 0x56); in sd_start()
411 spca506_WriteI2c(gspca_dev, 0xff, 0x57); in sd_start()
412 spca506_WriteI2c(gspca_dev, 0x00, 0x58); in sd_start()
413 spca506_WriteI2c(gspca_dev, 0x54, 0x59); in sd_start()
414 spca506_WriteI2c(gspca_dev, 0x07, 0x5a); in sd_start()
415 spca506_WriteI2c(gspca_dev, 0x83, 0x5b); in sd_start()
416 spca506_WriteI2c(gspca_dev, 0x00, 0x5c); in sd_start()
417 spca506_WriteI2c(gspca_dev, 0x00, 0x5d); in sd_start()
418 spca506_WriteI2c(gspca_dev, 0x00, 0x5e); in sd_start()
419 spca506_WriteI2c(gspca_dev, 0x00, 0x5f); in sd_start()
420 spca506_WriteI2c(gspca_dev, 0x00, 0x60); in sd_start()
421 spca506_WriteI2c(gspca_dev, 0x05, 0x61); in sd_start()
422 spca506_WriteI2c(gspca_dev, 0x9f, 0x62); in sd_start()
428 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) { in sd_start()
430 spca506_Setsize(gspca_dev, 0, 0x10, 0x10); in sd_start()
433 spca506_Setsize(gspca_dev, 1, 0x1a, 0x1a); in sd_start()
436 spca506_Setsize(gspca_dev, 2, 0x1c, 0x1c); in sd_start()
439 spca506_Setsize(gspca_dev, 4, 0x34, 0x34); in sd_start()
443 spca506_Setsize(gspca_dev, 5, 0x40, 0x40); in sd_start()
451 reg_r(gspca_dev, 0x04, 0x0001, 2); in sd_start()
453 spca506_GetNormeInput(gspca_dev, &norme, &channel); in sd_start()
454 spca506_SetNormeInput(gspca_dev, norme, channel); in sd_start()
458 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
460 struct usb_device *dev = gspca_dev->dev; in sd_stopN()
467 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
473 gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); in sd_pkt_scan()
476 gspca_frame_add(gspca_dev, FIRST_PACKET, data, len); in sd_pkt_scan()
484 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in sd_pkt_scan()
489 static void setbrightness(struct gspca_dev *gspca_dev, s32 val) in setbrightness() argument
491 spca506_Initi2c(gspca_dev); in setbrightness()
492 spca506_WriteI2c(gspca_dev, val, SAA7113_bright); in setbrightness()
493 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setbrightness()
496 static void setcontrast(struct gspca_dev *gspca_dev, s32 val) in setcontrast() argument
498 spca506_Initi2c(gspca_dev); in setcontrast()
499 spca506_WriteI2c(gspca_dev, val, SAA7113_contrast); in setcontrast()
500 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setcontrast()
503 static void setcolors(struct gspca_dev *gspca_dev, s32 val) in setcolors() argument
505 spca506_Initi2c(gspca_dev); in setcolors()
506 spca506_WriteI2c(gspca_dev, val, SAA7113_saturation); in setcolors()
507 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in setcolors()
510 static void sethue(struct gspca_dev *gspca_dev, s32 val) in sethue() argument
512 spca506_Initi2c(gspca_dev); in sethue()
513 spca506_WriteI2c(gspca_dev, val, SAA7113_hue); in sethue()
514 spca506_WriteI2c(gspca_dev, 0x01, 0x09); in sethue()
519 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
520 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
522 gspca_dev->usb_err = 0; in sd_s_ctrl()
524 if (!gspca_dev->streaming) in sd_s_ctrl()
529 setbrightness(gspca_dev, ctrl->val); in sd_s_ctrl()
532 setcontrast(gspca_dev, ctrl->val); in sd_s_ctrl()
535 setcolors(gspca_dev, ctrl->val); in sd_s_ctrl()
538 sethue(gspca_dev, ctrl->val); in sd_s_ctrl()
541 return gspca_dev->usb_err; in sd_s_ctrl()
548 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
550 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
552 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()