Lines Matching refs:gspca_dev
365 struct gspca_dev gspca_dev; /* !! must be the first item */ member
409 static int cpia_usb_transferCmd(struct gspca_dev *gspca_dev, u8 *command) in cpia_usb_transferCmd() argument
418 pipe = usb_rcvctrlpipe(gspca_dev->dev, 0); in cpia_usb_transferCmd()
421 pipe = usb_sndctrlpipe(gspca_dev->dev, 0); in cpia_usb_transferCmd()
429 ret = usb_control_msg(gspca_dev->dev, pipe, in cpia_usb_transferCmd()
434 gspca_dev->usb_buf, databytes, 1000); in cpia_usb_transferCmd()
448 static int do_command(struct gspca_dev *gspca_dev, u16 command, in do_command() argument
451 struct sd *sd = (struct sd *) gspca_dev; in do_command()
483 ret = cpia_usb_transferCmd(gspca_dev, cmd); in do_command()
489 sd->params.version.firmwareVersion = gspca_dev->usb_buf[0]; in do_command()
490 sd->params.version.firmwareRevision = gspca_dev->usb_buf[1]; in do_command()
491 sd->params.version.vcVersion = gspca_dev->usb_buf[2]; in do_command()
492 sd->params.version.vcRevision = gspca_dev->usb_buf[3]; in do_command()
496 gspca_dev->usb_buf[0] | (gspca_dev->usb_buf[1] << 8); in do_command()
498 gspca_dev->usb_buf[2] | (gspca_dev->usb_buf[3] << 8); in do_command()
500 gspca_dev->usb_buf[4] | (gspca_dev->usb_buf[5] << 8); in do_command()
503 sd->params.status.systemState = gspca_dev->usb_buf[0]; in do_command()
504 sd->params.status.grabState = gspca_dev->usb_buf[1]; in do_command()
505 sd->params.status.streamState = gspca_dev->usb_buf[2]; in do_command()
506 sd->params.status.fatalError = gspca_dev->usb_buf[3]; in do_command()
507 sd->params.status.cmdError = gspca_dev->usb_buf[4]; in do_command()
508 sd->params.status.debugFlags = gspca_dev->usb_buf[5]; in do_command()
509 sd->params.status.vpStatus = gspca_dev->usb_buf[6]; in do_command()
510 sd->params.status.errorCode = gspca_dev->usb_buf[7]; in do_command()
513 sd->params.vpVersion.vpVersion = gspca_dev->usb_buf[0]; in do_command()
514 sd->params.vpVersion.vpRevision = gspca_dev->usb_buf[1]; in do_command()
516 gspca_dev->usb_buf[2] | (gspca_dev->usb_buf[3] << 8); in do_command()
519 sd->params.colourParams.brightness = gspca_dev->usb_buf[0]; in do_command()
520 sd->params.colourParams.contrast = gspca_dev->usb_buf[1]; in do_command()
521 sd->params.colourParams.saturation = gspca_dev->usb_buf[2]; in do_command()
524 sd->params.colourBalance.redGain = gspca_dev->usb_buf[0]; in do_command()
525 sd->params.colourBalance.greenGain = gspca_dev->usb_buf[1]; in do_command()
526 sd->params.colourBalance.blueGain = gspca_dev->usb_buf[2]; in do_command()
529 sd->params.exposure.gain = gspca_dev->usb_buf[0]; in do_command()
530 sd->params.exposure.fineExp = gspca_dev->usb_buf[1]; in do_command()
531 sd->params.exposure.coarseExpLo = gspca_dev->usb_buf[2]; in do_command()
532 sd->params.exposure.coarseExpHi = gspca_dev->usb_buf[3]; in do_command()
533 sd->params.exposure.redComp = gspca_dev->usb_buf[4]; in do_command()
534 sd->params.exposure.green1Comp = gspca_dev->usb_buf[5]; in do_command()
535 sd->params.exposure.green2Comp = gspca_dev->usb_buf[6]; in do_command()
536 sd->params.exposure.blueComp = gspca_dev->usb_buf[7]; in do_command()
541 a = ((gspca_dev->usb_buf[1] & 0x02) == 0); in do_command()
544 input_report_key(gspca_dev->input_dev, KEY_CAMERA, a); in do_command()
545 input_sync(gspca_dev->input_dev); in do_command()
551 do_command(gspca_dev, CPIA_COMMAND_WriteMCPort, in do_command()
553 do_command(gspca_dev, CPIA_COMMAND_WriteMCPort, in do_command()
558 sd->params.qx3.cradled = ((gspca_dev->usb_buf[2] & 0x40) == 0); in do_command()
566 static int do_command_extended(struct gspca_dev *gspca_dev, u16 command, in do_command_extended() argument
581 gspca_dev->usb_buf[0] = e; in do_command_extended()
582 gspca_dev->usb_buf[1] = f; in do_command_extended()
583 gspca_dev->usb_buf[2] = g; in do_command_extended()
584 gspca_dev->usb_buf[3] = h; in do_command_extended()
585 gspca_dev->usb_buf[4] = i; in do_command_extended()
586 gspca_dev->usb_buf[5] = j; in do_command_extended()
587 gspca_dev->usb_buf[6] = k; in do_command_extended()
588 gspca_dev->usb_buf[7] = l; in do_command_extended()
590 return cpia_usb_transferCmd(gspca_dev, cmd); in do_command_extended()
624 static void reset_camera_params(struct gspca_dev *gspca_dev) in reset_camera_params() argument
626 struct sd *sd = (struct sd *) gspca_dev; in reset_camera_params()
703 static void printstatus(struct gspca_dev *gspca_dev, struct cam_params *params) in printstatus() argument
712 static int goto_low_power(struct gspca_dev *gspca_dev) in goto_low_power() argument
714 struct sd *sd = (struct sd *) gspca_dev; in goto_low_power()
717 ret = do_command(gspca_dev, CPIA_COMMAND_GotoLoPower, 0, 0, 0, 0); in goto_low_power()
721 ret = do_command(gspca_dev, CPIA_COMMAND_GetCameraStatus, 0, 0, 0, 0); in goto_low_power()
729 printstatus(gspca_dev, &sd->params); in goto_low_power()
738 static int goto_high_power(struct gspca_dev *gspca_dev) in goto_high_power() argument
740 struct sd *sd = (struct sd *) gspca_dev; in goto_high_power()
743 ret = do_command(gspca_dev, CPIA_COMMAND_GotoHiPower, 0, 0, 0, 0); in goto_high_power()
752 ret = do_command(gspca_dev, CPIA_COMMAND_GetCameraStatus, 0, 0, 0, 0); in goto_high_power()
759 printstatus(gspca_dev, &sd->params); in goto_high_power()
767 static int get_version_information(struct gspca_dev *gspca_dev) in get_version_information() argument
772 ret = do_command(gspca_dev, CPIA_COMMAND_GetCPIAVersion, 0, 0, 0, 0); in get_version_information()
777 return do_command(gspca_dev, CPIA_COMMAND_GetPnPID, 0, 0, 0, 0); in get_version_information()
780 static int save_camera_state(struct gspca_dev *gspca_dev) in save_camera_state() argument
784 ret = do_command(gspca_dev, CPIA_COMMAND_GetColourBalance, 0, 0, 0, 0); in save_camera_state()
788 return do_command(gspca_dev, CPIA_COMMAND_GetExposure, 0, 0, 0, 0); in save_camera_state()
791 static int command_setformat(struct gspca_dev *gspca_dev) in command_setformat() argument
793 struct sd *sd = (struct sd *) gspca_dev; in command_setformat()
796 ret = do_command(gspca_dev, CPIA_COMMAND_SetFormat, in command_setformat()
803 return do_command(gspca_dev, CPIA_COMMAND_SetROI, in command_setformat()
808 static int command_setcolourparams(struct gspca_dev *gspca_dev) in command_setcolourparams() argument
810 struct sd *sd = (struct sd *) gspca_dev; in command_setcolourparams()
811 return do_command(gspca_dev, CPIA_COMMAND_SetColourParams, in command_setcolourparams()
817 static int command_setapcor(struct gspca_dev *gspca_dev) in command_setapcor() argument
819 struct sd *sd = (struct sd *) gspca_dev; in command_setapcor()
820 return do_command(gspca_dev, CPIA_COMMAND_SetApcor, in command_setapcor()
827 static int command_setvloffset(struct gspca_dev *gspca_dev) in command_setvloffset() argument
829 struct sd *sd = (struct sd *) gspca_dev; in command_setvloffset()
830 return do_command(gspca_dev, CPIA_COMMAND_SetVLOffset, in command_setvloffset()
837 static int command_setexposure(struct gspca_dev *gspca_dev) in command_setexposure() argument
839 struct sd *sd = (struct sd *) gspca_dev; in command_setexposure()
842 ret = do_command_extended(gspca_dev, CPIA_COMMAND_SetExposure, in command_setexposure()
859 ret = do_command_extended(gspca_dev, CPIA_COMMAND_SetExposure, in command_setexposure()
873 static int command_setcolourbalance(struct gspca_dev *gspca_dev) in command_setcolourbalance() argument
875 struct sd *sd = (struct sd *) gspca_dev; in command_setcolourbalance()
880 ret = do_command(gspca_dev, CPIA_COMMAND_SetColourBalance, in command_setcolourbalance()
888 return do_command(gspca_dev, CPIA_COMMAND_SetColourBalance, in command_setcolourbalance()
892 return do_command(gspca_dev, CPIA_COMMAND_SetColourBalance, in command_setcolourbalance()
896 return do_command(gspca_dev, CPIA_COMMAND_SetColourBalance, in command_setcolourbalance()
903 static int command_setcompressiontarget(struct gspca_dev *gspca_dev) in command_setcompressiontarget() argument
905 struct sd *sd = (struct sd *) gspca_dev; in command_setcompressiontarget()
907 return do_command(gspca_dev, CPIA_COMMAND_SetCompressionTarget, in command_setcompressiontarget()
913 static int command_setyuvtresh(struct gspca_dev *gspca_dev) in command_setyuvtresh() argument
915 struct sd *sd = (struct sd *) gspca_dev; in command_setyuvtresh()
917 return do_command(gspca_dev, CPIA_COMMAND_SetYUVThresh, in command_setyuvtresh()
922 static int command_setcompressionparams(struct gspca_dev *gspca_dev) in command_setcompressionparams() argument
924 struct sd *sd = (struct sd *) gspca_dev; in command_setcompressionparams()
926 return do_command_extended(gspca_dev, in command_setcompressionparams()
939 static int command_setcompression(struct gspca_dev *gspca_dev) in command_setcompression() argument
941 struct sd *sd = (struct sd *) gspca_dev; in command_setcompression()
943 return do_command(gspca_dev, CPIA_COMMAND_SetCompression, in command_setcompression()
948 static int command_setsensorfps(struct gspca_dev *gspca_dev) in command_setsensorfps() argument
950 struct sd *sd = (struct sd *) gspca_dev; in command_setsensorfps()
952 return do_command(gspca_dev, CPIA_COMMAND_SetSensorFPS, in command_setsensorfps()
957 static int command_setflickerctrl(struct gspca_dev *gspca_dev) in command_setflickerctrl() argument
959 struct sd *sd = (struct sd *) gspca_dev; in command_setflickerctrl()
961 return do_command(gspca_dev, CPIA_COMMAND_SetFlickerCtrl, in command_setflickerctrl()
968 static int command_setecptiming(struct gspca_dev *gspca_dev) in command_setecptiming() argument
970 struct sd *sd = (struct sd *) gspca_dev; in command_setecptiming()
972 return do_command(gspca_dev, CPIA_COMMAND_SetECPTiming, in command_setecptiming()
976 static int command_pause(struct gspca_dev *gspca_dev) in command_pause() argument
978 return do_command(gspca_dev, CPIA_COMMAND_EndStreamCap, 0, 0, 0, 0); in command_pause()
981 static int command_resume(struct gspca_dev *gspca_dev) in command_resume() argument
983 struct sd *sd = (struct sd *) gspca_dev; in command_resume()
985 return do_command(gspca_dev, CPIA_COMMAND_InitStreamCap, in command_resume()
989 static int command_setlights(struct gspca_dev *gspca_dev) in command_setlights() argument
991 struct sd *sd = (struct sd *) gspca_dev; in command_setlights()
997 ret = do_command(gspca_dev, CPIA_COMMAND_WriteVCReg, in command_setlights()
1002 return do_command(gspca_dev, CPIA_COMMAND_WriteMCPort, 2, 0, in command_setlights()
1006 static int set_flicker(struct gspca_dev *gspca_dev, int on, int apply) in set_flicker() argument
1024 struct sd *sd = (struct sd *) gspca_dev; in set_flicker()
1118 ret = command_setexposure(gspca_dev); in set_flicker()
1122 ret = command_setapcor(gspca_dev); in set_flicker()
1126 ret = command_setvloffset(gspca_dev); in set_flicker()
1130 ret = command_setflickerctrl(gspca_dev); in set_flicker()
1141 static void monitor_exposure(struct gspca_dev *gspca_dev) in monitor_exposure() argument
1143 struct sd *sd = (struct sd *) gspca_dev; in monitor_exposure()
1159 ret = cpia_usb_transferCmd(gspca_dev, cmd); in monitor_exposure()
1164 exp_acc = gspca_dev->usb_buf[0]; in monitor_exposure()
1165 bcomp = gspca_dev->usb_buf[1]; in monitor_exposure()
1375 command_setexposure(gspca_dev); in monitor_exposure()
1378 command_setsensorfps(gspca_dev); in monitor_exposure()
1381 command_setflickerctrl(gspca_dev); in monitor_exposure()
1392 static void restart_flicker(struct gspca_dev *gspca_dev) in restart_flicker() argument
1394 struct sd *sd = (struct sd *) gspca_dev; in restart_flicker()
1424 set_flicker(gspca_dev, 1, 1); in restart_flicker()
1429 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
1432 struct sd *sd = (struct sd *) gspca_dev; in sd_config()
1436 reset_camera_params(gspca_dev); in sd_config()
1441 cam = &gspca_dev->cam; in sd_config()
1445 goto_low_power(gspca_dev); in sd_config()
1448 get_version_information(gspca_dev); in sd_config()
1468 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
1470 struct sd *sd = (struct sd *) gspca_dev; in sd_start()
1474 if (goto_low_power(gspca_dev)) { in sd_start()
1478 printstatus(gspca_dev, &sd->params); in sd_start()
1483 ret = goto_high_power(gspca_dev); in sd_start()
1487 ret = do_command(gspca_dev, CPIA_COMMAND_DiscardFrame, in sd_start()
1492 ret = goto_low_power(gspca_dev); in sd_start()
1501 get_version_information(gspca_dev); in sd_start()
1508 ret = do_command(gspca_dev, CPIA_COMMAND_ModifyCameraStatus, in sd_start()
1514 ret = goto_high_power(gspca_dev); in sd_start()
1519 ret = do_command(gspca_dev, CPIA_COMMAND_GetCameraStatus, 0, 0, 0, 0); in sd_start()
1531 ret = do_command(gspca_dev, CPIA_COMMAND_GetVPVersion, 0, 0, 0, 0); in sd_start()
1538 priv = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; in sd_start()
1556 (gspca_dev->pixfmt.width >> 3); in sd_start()
1558 (gspca_dev->pixfmt.height >> 2); in sd_start()
1561 ret = do_command(gspca_dev, CPIA_COMMAND_SetGrabMode, in sd_start()
1567 ret = do_command(gspca_dev, CPIA_COMMAND_SetCompression, in sd_start()
1572 ret = command_setcompressiontarget(gspca_dev); in sd_start()
1575 ret = command_setcolourparams(gspca_dev); in sd_start()
1578 ret = command_setformat(gspca_dev); in sd_start()
1581 ret = command_setyuvtresh(gspca_dev); in sd_start()
1584 ret = command_setecptiming(gspca_dev); in sd_start()
1587 ret = command_setcompressionparams(gspca_dev); in sd_start()
1590 ret = command_setexposure(gspca_dev); in sd_start()
1593 ret = command_setcolourbalance(gspca_dev); in sd_start()
1596 ret = command_setsensorfps(gspca_dev); in sd_start()
1599 ret = command_setapcor(gspca_dev); in sd_start()
1602 ret = command_setflickerctrl(gspca_dev); in sd_start()
1605 ret = command_setvloffset(gspca_dev); in sd_start()
1610 ret = command_resume(gspca_dev); in sd_start()
1625 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
1627 struct sd *sd = (struct sd *) gspca_dev; in sd_stopN()
1629 command_pause(gspca_dev); in sd_stopN()
1632 save_camera_state(gspca_dev); in sd_stopN()
1635 goto_low_power(gspca_dev); in sd_stopN()
1638 do_command(gspca_dev, CPIA_COMMAND_GetCameraStatus, 0, 0, 0, 0); in sd_stopN()
1646 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0); in sd_stopN()
1647 input_sync(gspca_dev->input_dev); in sd_stopN()
1653 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
1655 struct sd *sd = (struct sd *) gspca_dev; in sd_init()
1661 ret = sd_start(gspca_dev); in sd_init()
1668 command_setlights(gspca_dev); in sd_init()
1670 sd_stopN(gspca_dev); in sd_init()
1688 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
1692 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan()
1710 image = gspca_dev->image; in sd_pkt_scan()
1712 gspca_dev->image_len > 4 && in sd_pkt_scan()
1713 image[gspca_dev->image_len - 4] == 0xff && in sd_pkt_scan()
1714 image[gspca_dev->image_len - 3] == 0xff && in sd_pkt_scan()
1715 image[gspca_dev->image_len - 2] == 0xff && in sd_pkt_scan()
1716 image[gspca_dev->image_len - 1] == 0xff) in sd_pkt_scan()
1717 gspca_frame_add(gspca_dev, LAST_PACKET, in sd_pkt_scan()
1720 gspca_frame_add(gspca_dev, FIRST_PACKET, data, len); in sd_pkt_scan()
1724 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in sd_pkt_scan()
1727 static void sd_dq_callback(struct gspca_dev *gspca_dev) in sd_dq_callback() argument
1729 struct sd *sd = (struct sd *) gspca_dev; in sd_dq_callback()
1736 command_setcompression(gspca_dev); in sd_dq_callback()
1740 restart_flicker(gspca_dev); in sd_dq_callback()
1745 monitor_exposure(gspca_dev); in sd_dq_callback()
1748 do_command(gspca_dev, CPIA_COMMAND_GetExposure, 0, 0, 0, 0); in sd_dq_callback()
1749 do_command(gspca_dev, CPIA_COMMAND_ReadMCPorts, 0, 0, 0, 0); in sd_dq_callback()
1754 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
1755 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
1756 struct sd *sd = (struct sd *)gspca_dev; in sd_s_ctrl()
1758 gspca_dev->usb_err = 0; in sd_s_ctrl()
1760 if (!gspca_dev->streaming && ctrl->id != V4L2_CID_POWER_LINE_FREQUENCY) in sd_s_ctrl()
1768 gspca_dev->usb_err = command_setcolourparams(gspca_dev); in sd_s_ctrl()
1769 if (!gspca_dev->usb_err) in sd_s_ctrl()
1770 gspca_dev->usb_err = command_setflickerctrl(gspca_dev); in sd_s_ctrl()
1774 gspca_dev->usb_err = command_setcolourparams(gspca_dev); in sd_s_ctrl()
1778 gspca_dev->usb_err = command_setcolourparams(gspca_dev); in sd_s_ctrl()
1787 gspca_dev->usb_err = set_flicker(gspca_dev, in sd_s_ctrl()
1789 gspca_dev->streaming); in sd_s_ctrl()
1793 gspca_dev->usb_err = command_setlights(gspca_dev); in sd_s_ctrl()
1797 gspca_dev->usb_err = command_setlights(gspca_dev); in sd_s_ctrl()
1801 gspca_dev->usb_err = command_setcompressiontarget(gspca_dev); in sd_s_ctrl()
1804 return gspca_dev->usb_err; in sd_s_ctrl()
1811 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
1813 struct sd *sd = (struct sd *)gspca_dev; in sd_init_controls()
1814 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
1830 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()