Lines Matching refs:gspca_dev

42 	struct gspca_dev gspca_dev;	/* !! must be the first item */  member
306 static u8 reg_r(struct gspca_dev *gspca_dev, in reg_r() argument
309 usb_control_msg(gspca_dev->dev, in reg_r()
310 usb_rcvctrlpipe(gspca_dev->dev, 0), in reg_r()
315 gspca_dev->usb_buf, 1, 500); in reg_r()
316 return gspca_dev->usb_buf[0]; in reg_r()
319 static void reg_w(struct gspca_dev *gspca_dev, in reg_w() argument
322 usb_control_msg(gspca_dev->dev, in reg_w()
323 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w()
330 static void reg_w_buf(struct gspca_dev *gspca_dev, in reg_w_buf() argument
334 memcpy(gspca_dev->usb_buf, buffer, len); in reg_w_buf()
335 usb_control_msg(gspca_dev->dev, in reg_w_buf()
336 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w_buf()
340 gspca_dev->usb_buf, len, 500); in reg_w_buf()
349 usb_control_msg(gspca_dev->dev, in reg_w_buf()
350 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w_buf()
360 static void reg_w_ixbuf(struct gspca_dev *gspca_dev, in reg_w_ixbuf() argument
368 p = tmpbuf = gspca_dev->usb_buf; in reg_w_ixbuf()
381 usb_control_msg(gspca_dev->dev, in reg_w_ixbuf()
382 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w_ixbuf()
391 static void om6802_sensor_init(struct gspca_dev *gspca_dev) in om6802_sensor_init() argument
415 reg_w_buf(gspca_dev, sensor_reset, sizeof sensor_reset); in om6802_sensor_init()
419 byte = reg_r(gspca_dev, 0x0060); in om6802_sensor_init()
424 byte = reg_r(gspca_dev, 0x0063); in om6802_sensor_init()
435 reg_w(gspca_dev, 0x3c80); in om6802_sensor_init()
436 reg_w_buf(gspca_dev, val, sizeof val); in om6802_sensor_init()
440 byte = reg_r(gspca_dev, 0x60); in om6802_sensor_init()
446 reg_w(gspca_dev, 0x3c80); in om6802_sensor_init()
450 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
453 struct cam *cam = &gspca_dev->cam; in sd_config()
461 static void setbrightness(struct gspca_dev *gspca_dev, s32 brightness) in setbrightness() argument
472 reg_w_buf(gspca_dev, set6, sizeof set6); in setbrightness()
475 static void setcontrast(struct gspca_dev *gspca_dev, s32 contrast) in setcontrast() argument
484 reg_w(gspca_dev, reg_to_write); in setcontrast()
487 static void setcolors(struct gspca_dev *gspca_dev, s32 val) in setcolors() argument
492 reg_w(gspca_dev, reg_to_write); in setcolors()
495 static void setgamma(struct gspca_dev *gspca_dev, s32 val) in setgamma() argument
498 reg_w_ixbuf(gspca_dev, 0x90, in setgamma()
502 static void setawb_n_RGB(struct gspca_dev *gspca_dev) in setawb_n_RGB() argument
504 struct sd *sd = (struct sd *) gspca_dev; in setawb_n_RGB()
530 reg_w_buf(gspca_dev, all_gain_reg, sizeof all_gain_reg); in setawb_n_RGB()
533 static void setsharpness(struct gspca_dev *gspca_dev, s32 val) in setsharpness() argument
539 reg_w(gspca_dev, reg_to_write); in setsharpness()
542 static void setfreq(struct gspca_dev *gspca_dev, s32 val) in setfreq() argument
544 struct sd *sd = (struct sd *) gspca_dev; in setfreq()
571 reg_w_buf(gspca_dev, freq, sizeof freq); in setfreq()
575 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
581 struct sd *sd = (struct sd *) gspca_dev; in sd_init()
595 sensor_id = (reg_r(gspca_dev, 0x06) << 8) in sd_init()
596 | reg_r(gspca_dev, 0x07); in sd_init()
620 reg_w_buf(gspca_dev, n1, sizeof n1); in sd_init()
623 reg_w_buf(gspca_dev, sensor_reset, sizeof sensor_reset); in sd_init()
624 test_byte = reg_r(gspca_dev, 0x0063); in sd_init()
633 reg_w_buf(gspca_dev, n2, sizeof n2); in sd_init()
638 test_byte = reg_r(gspca_dev, read_indexs[i]); in sd_init()
645 reg_w_buf(gspca_dev, sensor->n3, sizeof sensor->n3); in sd_init()
646 reg_w_buf(gspca_dev, sensor->n4, sensor->n4sz); in sd_init()
649 test_byte = reg_r(gspca_dev, 0x80); in sd_init()
652 reg_w(gspca_dev, 0x6c80); in sd_init()
655 reg_w_ixbuf(gspca_dev, 0xd0, sensor->data1, sizeof sensor->data1); in sd_init()
656 reg_w_ixbuf(gspca_dev, 0xc7, sensor->data2, sizeof sensor->data2); in sd_init()
657 reg_w_ixbuf(gspca_dev, 0xe0, sensor->data3, sizeof sensor->data3); in sd_init()
659 reg_w(gspca_dev, (sensor->reg80 << 8) + 0x80); in sd_init()
660 reg_w(gspca_dev, (sensor->reg80 << 8) + 0x80); in sd_init()
661 reg_w(gspca_dev, (sensor->reg8e << 8) + 0x8e); in sd_init()
662 reg_w(gspca_dev, (0x20 << 8) + 0x87); in sd_init()
663 reg_w(gspca_dev, (0x20 << 8) + 0x88); in sd_init()
664 reg_w(gspca_dev, (0x20 << 8) + 0x89); in sd_init()
666 reg_w_buf(gspca_dev, sensor->data5, sizeof sensor->data5); in sd_init()
667 reg_w_buf(gspca_dev, sensor->nset8, sizeof sensor->nset8); in sd_init()
668 reg_w_buf(gspca_dev, sensor->stream, sizeof sensor->stream); in sd_init()
671 test_byte = reg_r(gspca_dev, 0x80); in sd_init()
674 reg_w(gspca_dev, 0x6c80); in sd_init()
677 reg_w_ixbuf(gspca_dev, 0xd0, sensor->data1, sizeof sensor->data1); in sd_init()
678 reg_w_ixbuf(gspca_dev, 0xc7, sensor->data2, sizeof sensor->data2); in sd_init()
679 reg_w_ixbuf(gspca_dev, 0xe0, sensor->data3, sizeof sensor->data3); in sd_init()
684 static void setmirror(struct gspca_dev *gspca_dev, s32 val) in setmirror() argument
692 reg_w_buf(gspca_dev, hflipcmd, sizeof hflipcmd); in setmirror()
695 static void seteffect(struct gspca_dev *gspca_dev, s32 val) in seteffect() argument
718 reg_w_buf(gspca_dev, effects_table[idx], in seteffect()
722 reg_w(gspca_dev, 0x4aa6); in seteffect()
724 reg_w(gspca_dev, 0xfaa6); in seteffect()
729 static void poll_sensor(struct gspca_dev *gspca_dev) in poll_sensor() argument
745 reg_w_buf(gspca_dev, poll1, sizeof poll1); in poll_sensor()
746 reg_w_buf(gspca_dev, poll2, sizeof poll2); in poll_sensor()
747 reg_w_buf(gspca_dev, noise03, sizeof noise03); in poll_sensor()
750 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
752 struct sd *sd = (struct sd *) gspca_dev; in sd_start()
759 mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; in sd_start()
780 om6802_sensor_init(gspca_dev); in sd_start()
785 reg_w_buf(gspca_dev, tas5130a_sensor_init[i], in sd_start()
791 reg_w(gspca_dev, 0x3c80); in sd_start()
793 reg_w_buf(gspca_dev, tas5130a_sensor_init[i], in sd_start()
795 reg_w(gspca_dev, 0x3c80); in sd_start()
799 setfreq(gspca_dev, v4l2_ctrl_g_ctrl(sd->freq)); in sd_start()
800 reg_r(gspca_dev, 0x0012); in sd_start()
801 reg_w_buf(gspca_dev, t2, sizeof t2); in sd_start()
802 reg_w_ixbuf(gspca_dev, 0xb3, t3, sizeof t3); in sd_start()
803 reg_w(gspca_dev, 0x0013); in sd_start()
805 reg_w_buf(gspca_dev, sensor->stream, sizeof sensor->stream); in sd_start()
806 reg_w_buf(gspca_dev, sensor->stream, sizeof sensor->stream); in sd_start()
809 poll_sensor(gspca_dev); in sd_start()
814 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
816 struct sd *sd = (struct sd *) gspca_dev; in sd_stopN()
818 reg_w_buf(gspca_dev, sensor_data[sd->sensor].stream, in sd_stopN()
820 reg_w_buf(gspca_dev, sensor_data[sd->sensor].stream, in sd_stopN()
824 reg_w(gspca_dev, 0x0309); in sd_stopN()
829 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0); in sd_stopN()
830 input_sync(gspca_dev->input_dev); in sd_stopN()
836 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
840 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan()
848 input_report_key(gspca_dev->input_dev, in sd_pkt_scan()
850 input_sync(gspca_dev->input_dev); in sd_pkt_scan()
868 gspca_frame_add(gspca_dev, pkt_type, data, len); in sd_pkt_scan()
873 struct gspca_dev *gspca_dev = in sd_g_volatile_ctrl() local
874 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_g_volatile_ctrl()
875 struct sd *sd = (struct sd *)gspca_dev; in sd_g_volatile_ctrl()
878 gspca_dev->usb_err = 0; in sd_g_volatile_ctrl()
882 red_gain = reg_r(gspca_dev, 0x0087); in sd_g_volatile_ctrl()
888 blue_gain = reg_r(gspca_dev, 0x0088); in sd_g_volatile_ctrl()
894 green_gain = reg_r(gspca_dev, 0x0089); in sd_g_volatile_ctrl()
910 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
911 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
913 gspca_dev->usb_err = 0; in sd_s_ctrl()
915 if (!gspca_dev->streaming) in sd_s_ctrl()
920 setbrightness(gspca_dev, ctrl->val); in sd_s_ctrl()
923 setcontrast(gspca_dev, ctrl->val); in sd_s_ctrl()
926 setcolors(gspca_dev, ctrl->val); in sd_s_ctrl()
929 setgamma(gspca_dev, ctrl->val); in sd_s_ctrl()
932 setmirror(gspca_dev, ctrl->val); in sd_s_ctrl()
935 setsharpness(gspca_dev, ctrl->val); in sd_s_ctrl()
938 setfreq(gspca_dev, ctrl->val); in sd_s_ctrl()
941 reg_w(gspca_dev, ctrl->val ? 0xf48e : 0xb48e); in sd_s_ctrl()
944 setawb_n_RGB(gspca_dev); in sd_s_ctrl()
947 seteffect(gspca_dev, ctrl->val); in sd_s_ctrl()
950 return gspca_dev->usb_err; in sd_s_ctrl()
958 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
960 struct sd *sd = (struct sd *)gspca_dev; in sd_init_controls()
961 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
963 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()