Lines Matching refs:cam

73 	struct camera_data *cam = video_drvdata(file);
76 if (mutex_lock_interruptible(&cam->v4l2_lock))
83 if (cpia2_allocate_buffers(cam)) {
90 if (cpia2_reset_camera(cam) < 0) {
96 cam->APP_len = 0;
97 cam->COM_len = 0;
100 cpia2_dbg_dump_registers(cam);
102 mutex_unlock(&cam->v4l2_lock);
114 struct camera_data *cam = video_get_drvdata(dev);
116 mutex_lock(&cam->v4l2_lock);
117 if (video_is_registered(&cam->vdev) && v4l2_fh_is_singular_file(file)) {
118 cpia2_usb_stream_stop(cam);
121 cpia2_save_camera_state(cam);
123 cpia2_set_low_power(cam);
124 cpia2_free_buffers(cam);
127 if (cam->stream_fh == file->private_data) {
128 cam->stream_fh = NULL;
129 cam->mmapped = 0;
131 mutex_unlock(&cam->v4l2_lock);
143 struct camera_data *cam = video_drvdata(file);
147 if(!cam)
150 if (mutex_lock_interruptible(&cam->v4l2_lock))
152 ret = cpia2_read(cam, buf, count, noblock);
153 mutex_unlock(&cam->v4l2_lock);
165 struct camera_data *cam = video_drvdata(filp);
168 mutex_lock(&cam->v4l2_lock);
169 res = cpia2_poll(cam, filp, wait);
170 mutex_unlock(&cam->v4l2_lock);
175 static int sync(struct camera_data *cam, int frame_nr)
177 struct framebuf *frame = &cam->buffers[frame_nr];
183 if (!cam->streaming) {
189 mutex_unlock(&cam->v4l2_lock);
190 wait_event_interruptible(cam->wq_stream,
191 !cam->streaming ||
193 mutex_lock(&cam->v4l2_lock);
196 if (!video_is_registered(&cam->vdev))
211 struct camera_data *cam = video_drvdata(file);
215 if (cam->params.pnp_id.product == 0x151)
219 switch (cam->params.pnp_id.device_type) {
230 switch (cam->params.version.sensor_flags) {
251 if (usb_make_path(cam->dev, vc->bus_info, sizeof(vc->bus_info)) <0)
316 struct camera_data *cam = video_drvdata(file);
324 f->fmt.pix.sizeimage = cam->frame_size;
377 struct camera_data *cam = video_drvdata(file);
384 cam->pixelformat = f->fmt.pix.pixelformat;
388 cam->params.compression.inhibit_htables = 0;
396 if (f->fmt.pix.width != cam->width ||
397 f->fmt.pix.height != cam->height) {
398 cam->width = f->fmt.pix.width;
399 cam->height = f->fmt.pix.height;
400 cam->params.roi.width = f->fmt.pix.width;
401 cam->params.roi.height = f->fmt.pix.height;
402 cpia2_set_format(cam);
405 for (frame = 0; frame < cam->num_frames; ++frame) {
406 if (cam->buffers[frame].status == FRAME_READING)
407 if ((err = sync(cam, frame)) < 0)
410 cam->buffers[frame].status = FRAME_EMPTY;
427 struct camera_data *cam = video_drvdata(file);
429 f->fmt.pix.width = cam->width;
430 f->fmt.pix.height = cam->height;
431 f->fmt.pix.pixelformat = cam->pixelformat;
434 f->fmt.pix.sizeimage = cam->frame_size;
452 struct camera_data *cam = video_drvdata(file);
462 s->r.width = cam->width;
463 s->r.height = cam->height;
487 struct camera_data *cam = video_drvdata(file);
495 cap->readbuffers = cam->num_frames;
497 if (cam->params.vp_params.frame_rate == framerate_controls[i].value) {
506 struct camera_data *cam = video_drvdata(file);
518 if (cam->params.pnp_id.device_type == DEVICE_STV_672 &&
519 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500)
533 return cpia2_set_fps(cam, framerate_controls[i].value);
569 struct camera_data *cam = video_drvdata(file);
578 if (cam->params.pnp_id.device_type == DEVICE_STV_672 &&
579 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500)
604 struct camera_data *cam =
616 cpia2_set_brightness(cam, ctrl->val);
619 cpia2_set_contrast(cam, ctrl->val);
622 cpia2_set_saturation(cam, ctrl->val);
625 cpia2_set_property_mirror(cam, ctrl->val);
628 cpia2_set_property_flip(cam, ctrl->val);
631 return cpia2_set_flicker_mode(cam, flicker_table[ctrl->val]);
633 return cpia2_set_gpio(cam, (cam->top_light->val << 6) |
634 (cam->bottom_light->val << 7));
636 cam->params.compression.inhibit_htables =
640 cam->params.vc_params.quality = ctrl->val;
643 cam->params.camera_state.stream_mode = ctrl->val;
662 struct camera_data *cam = video_drvdata(file);
669 if(!cam->params.compression.inhibit_htables) {
673 parms->APPn = cam->APPn;
674 parms->APP_len = cam->APP_len;
675 if(cam->APP_len > 0) {
676 memcpy(parms->APP_data, cam->APP_data, cam->APP_len);
680 parms->COM_len = cam->COM_len;
681 if(cam->COM_len > 0) {
682 memcpy(parms->COM_data, cam->COM_data, cam->COM_len);
704 struct camera_data *cam = video_drvdata(file);
709 cam->params.compression.inhibit_htables =
714 parms->APP_len <= sizeof(cam->APP_data) &&
716 cam->APPn = parms->APPn;
717 cam->APP_len = parms->APP_len;
718 memcpy(cam->APP_data, parms->APP_data, parms->APP_len);
725 cam->APP_len = 0;
730 parms->COM_len <= sizeof(cam->COM_data)) {
731 cam->COM_len = parms->COM_len;
732 memcpy(cam->COM_data, parms->COM_data, parms->COM_len);
753 struct camera_data *cam = video_drvdata(file);
759 DBG("REQBUFS requested:%d returning:%d\n", req->count, cam->num_frames);
760 req->count = cam->num_frames;
776 struct camera_data *cam = video_drvdata(file);
779 buf->index >= cam->num_frames)
782 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer;
783 buf->length = cam->frame_size;
787 if(cam->mmapped)
794 switch (cam->buffers[buf->index].status) {
802 buf->bytesused = cam->buffers[buf->index].length;
803 v4l2_buffer_set_timestamp(buf, cam->buffers[buf->index].ts);
804 buf->sequence = cam->buffers[buf->index].seq;
826 struct camera_data *cam = video_drvdata(file);
830 buf->index >= cam->num_frames)
835 if(cam->buffers[buf->index].status == FRAME_READY)
836 cam->buffers[buf->index].status = FRAME_EMPTY;
849 static int find_earliest_filled_buffer(struct camera_data *cam)
853 for (i=0; i<cam->num_frames; i++) {
854 if(cam->buffers[i].status == FRAME_READY) {
859 if (cam->buffers[i].ts < cam->buffers[found].ts)
877 struct camera_data *cam = video_drvdata(file);
884 frame = find_earliest_filled_buffer(cam);
891 struct framebuf *cb=cam->curbuff;
892 mutex_unlock(&cam->v4l2_lock);
893 wait_event_interruptible(cam->wq_stream,
894 !video_is_registered(&cam->vdev) ||
895 (cb=cam->curbuff)->status == FRAME_READY);
896 mutex_lock(&cam->v4l2_lock);
899 if (!video_is_registered(&cam->vdev))
906 buf->bytesused = cam->buffers[buf->index].length;
910 v4l2_buffer_set_timestamp(buf, cam->buffers[buf->index].ts);
911 buf->sequence = cam->buffers[buf->index].seq;
912 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer;
913 buf->length = cam->frame_size;
919 cam->buffers[buf->index].status, buf->sequence, buf->bytesused);
926 struct camera_data *cam = video_drvdata(file);
929 DBG("VIDIOC_STREAMON, streaming=%d\n", cam->streaming);
930 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
933 if (!cam->streaming) {
934 ret = cpia2_usb_stream_start(cam,
935 cam->params.camera_state.stream_mode);
937 v4l2_ctrl_grab(cam->usb_alt, true);
944 struct camera_data *cam = video_drvdata(file);
947 DBG("VIDIOC_STREAMOFF, streaming=%d\n", cam->streaming);
948 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
951 if (cam->streaming) {
952 ret = cpia2_usb_stream_stop(cam);
954 v4l2_ctrl_grab(cam->usb_alt, false);
966 struct camera_data *cam = video_drvdata(file);
969 if (mutex_lock_interruptible(&cam->v4l2_lock))
971 retval = cpia2_remap_buffer(cam, area);
974 cam->stream_fh = file->private_data;
975 mutex_unlock(&cam->v4l2_lock);
985 static void reset_camera_struct_v4l(struct camera_data *cam)
987 cam->width = cam->params.roi.width;
988 cam->height = cam->params.roi.height;
990 cam->frame_size = buffer_size;
991 cam->num_frames = num_buffers;
994 cam->params.flicker_control.flicker_mode_req = flicker_mode;
997 cam->params.camera_state.stream_mode = alternate;
999 cam->pixelformat = V4L2_PIX_FMT_JPEG;
1051 struct camera_data *cam =
1054 v4l2_ctrl_handler_free(&cam->hdl);
1055 v4l2_device_unregister(&cam->v4l2_dev);
1056 kfree(cam);
1068 int cpia2_register_camera(struct camera_data *cam)
1070 struct v4l2_ctrl_handler *hdl = &cam->hdl;
1085 cam->params.pnp_id.device_type == DEVICE_STV_672 ? 1 : 0,
1101 cam->usb_alt = v4l2_ctrl_new_custom(hdl, &cpia2_usb_alt, NULL);
1103 if (cam->params.pnp_id.device_type != DEVICE_STV_672)
1107 if (cam->params.pnp_id.device_type == DEVICE_STV_672)
1112 if (cam->params.pnp_id.product == 0x151) {
1113 cam->top_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops,
1115 cam->bottom_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops,
1117 v4l2_ctrl_cluster(2, &cam->top_light);
1126 cam->vdev = cpia2_template;
1127 video_set_drvdata(&cam->vdev, cam);
1128 cam->vdev.lock = &cam->v4l2_lock;
1129 cam->vdev.ctrl_handler = hdl;
1130 cam->vdev.v4l2_dev = &cam->v4l2_dev;
1131 cam->vdev.device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
1134 reset_camera_struct_v4l(cam);
1137 if (video_register_device(&cam->vdev, VFL_TYPE_VIDEO, video_nr) < 0) {
1150 void cpia2_unregister_camera(struct camera_data *cam)
1152 video_unregister_device(&cam->vdev);