Lines Matching refs:cam
86 struct camera_data *cam = video_drvdata(file); in cpia2_open() local
89 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_open()
96 if (cpia2_allocate_buffers(cam)) { in cpia2_open()
103 if (cpia2_reset_camera(cam) < 0) { in cpia2_open()
109 cam->APP_len = 0; in cpia2_open()
110 cam->COM_len = 0; in cpia2_open()
113 cpia2_dbg_dump_registers(cam); in cpia2_open()
115 mutex_unlock(&cam->v4l2_lock); in cpia2_open()
127 struct camera_data *cam = video_get_drvdata(dev); in cpia2_close() local
129 mutex_lock(&cam->v4l2_lock); in cpia2_close()
130 if (video_is_registered(&cam->vdev) && v4l2_fh_is_singular_file(file)) { in cpia2_close()
131 cpia2_usb_stream_stop(cam); in cpia2_close()
134 cpia2_save_camera_state(cam); in cpia2_close()
136 cpia2_set_low_power(cam); in cpia2_close()
137 cpia2_free_buffers(cam); in cpia2_close()
140 if (cam->stream_fh == file->private_data) { in cpia2_close()
141 cam->stream_fh = NULL; in cpia2_close()
142 cam->mmapped = 0; in cpia2_close()
144 mutex_unlock(&cam->v4l2_lock); in cpia2_close()
156 struct camera_data *cam = video_drvdata(file); in cpia2_v4l_read() local
160 if(!cam) in cpia2_v4l_read()
163 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_v4l_read()
165 ret = cpia2_read(cam, buf, count, noblock); in cpia2_v4l_read()
166 mutex_unlock(&cam->v4l2_lock); in cpia2_v4l_read()
178 struct camera_data *cam = video_drvdata(filp); in cpia2_v4l_poll() local
181 mutex_lock(&cam->v4l2_lock); in cpia2_v4l_poll()
182 res = cpia2_poll(cam, filp, wait); in cpia2_v4l_poll()
183 mutex_unlock(&cam->v4l2_lock); in cpia2_v4l_poll()
188 static int sync(struct camera_data *cam, int frame_nr) in sync() argument
190 struct framebuf *frame = &cam->buffers[frame_nr]; in sync()
196 if (!cam->streaming) { in sync()
202 mutex_unlock(&cam->v4l2_lock); in sync()
203 wait_event_interruptible(cam->wq_stream, in sync()
204 !cam->streaming || in sync()
206 mutex_lock(&cam->v4l2_lock); in sync()
209 if (!video_is_registered(&cam->vdev)) in sync()
224 struct camera_data *cam = video_drvdata(file); in cpia2_querycap() local
228 if (cam->params.pnp_id.product == 0x151) in cpia2_querycap()
232 switch (cam->params.pnp_id.device_type) { in cpia2_querycap()
243 switch (cam->params.version.sensor_flags) { in cpia2_querycap()
264 if (usb_make_path(cam->dev, vc->bus_info, sizeof(vc->bus_info)) <0) in cpia2_querycap()
351 struct camera_data *cam = video_drvdata(file); in cpia2_try_fmt_vid_cap() local
359 f->fmt.pix.sizeimage = cam->frame_size; in cpia2_try_fmt_vid_cap()
413 struct camera_data *cam = video_drvdata(file); in cpia2_s_fmt_vid_cap() local
420 cam->pixelformat = f->fmt.pix.pixelformat; in cpia2_s_fmt_vid_cap()
424 cam->params.compression.inhibit_htables = 0; in cpia2_s_fmt_vid_cap()
432 if (f->fmt.pix.width != cam->width || in cpia2_s_fmt_vid_cap()
433 f->fmt.pix.height != cam->height) { in cpia2_s_fmt_vid_cap()
434 cam->width = f->fmt.pix.width; in cpia2_s_fmt_vid_cap()
435 cam->height = f->fmt.pix.height; in cpia2_s_fmt_vid_cap()
436 cam->params.roi.width = f->fmt.pix.width; in cpia2_s_fmt_vid_cap()
437 cam->params.roi.height = f->fmt.pix.height; in cpia2_s_fmt_vid_cap()
438 cpia2_set_format(cam); in cpia2_s_fmt_vid_cap()
441 for (frame = 0; frame < cam->num_frames; ++frame) { in cpia2_s_fmt_vid_cap()
442 if (cam->buffers[frame].status == FRAME_READING) in cpia2_s_fmt_vid_cap()
443 if ((err = sync(cam, frame)) < 0) in cpia2_s_fmt_vid_cap()
446 cam->buffers[frame].status = FRAME_EMPTY; in cpia2_s_fmt_vid_cap()
463 struct camera_data *cam = video_drvdata(file); in cpia2_g_fmt_vid_cap() local
465 f->fmt.pix.width = cam->width; in cpia2_g_fmt_vid_cap()
466 f->fmt.pix.height = cam->height; in cpia2_g_fmt_vid_cap()
467 f->fmt.pix.pixelformat = cam->pixelformat; in cpia2_g_fmt_vid_cap()
470 f->fmt.pix.sizeimage = cam->frame_size; in cpia2_g_fmt_vid_cap()
488 struct camera_data *cam = video_drvdata(file); in cpia2_cropcap() local
495 c->bounds.width = cam->width; in cpia2_cropcap()
496 c->bounds.height = cam->height; in cpia2_cropcap()
499 c->defrect.width = cam->width; in cpia2_cropcap()
500 c->defrect.height = cam->height; in cpia2_cropcap()
523 struct camera_data *cam = video_drvdata(file); in cpia2_g_parm() local
531 cap->readbuffers = cam->num_frames; in cpia2_g_parm()
533 if (cam->params.vp_params.frame_rate == framerate_controls[i].value) { in cpia2_g_parm()
542 struct camera_data *cam = video_drvdata(file); in cpia2_s_parm() local
554 if (cam->params.pnp_id.device_type == DEVICE_STV_672 && in cpia2_s_parm()
555 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500) in cpia2_s_parm()
569 return cpia2_set_fps(cam, framerate_controls[i].value); in cpia2_s_parm()
605 struct camera_data *cam = video_drvdata(file); in cpia2_enum_frameintervals() local
614 if (cam->params.pnp_id.device_type == DEVICE_STV_672 && in cpia2_enum_frameintervals()
615 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500) in cpia2_enum_frameintervals()
640 struct camera_data *cam = in cpia2_s_ctrl() local
652 cpia2_set_brightness(cam, ctrl->val); in cpia2_s_ctrl()
655 cpia2_set_contrast(cam, ctrl->val); in cpia2_s_ctrl()
658 cpia2_set_saturation(cam, ctrl->val); in cpia2_s_ctrl()
661 cpia2_set_property_mirror(cam, ctrl->val); in cpia2_s_ctrl()
664 cpia2_set_property_flip(cam, ctrl->val); in cpia2_s_ctrl()
667 return cpia2_set_flicker_mode(cam, flicker_table[ctrl->val]); in cpia2_s_ctrl()
669 return cpia2_set_gpio(cam, (cam->top_light->val << 6) | in cpia2_s_ctrl()
670 (cam->bottom_light->val << 7)); in cpia2_s_ctrl()
672 cam->params.compression.inhibit_htables = in cpia2_s_ctrl()
676 cam->params.vc_params.quality = ctrl->val; in cpia2_s_ctrl()
679 cam->params.camera_state.stream_mode = ctrl->val; in cpia2_s_ctrl()
698 struct camera_data *cam = video_drvdata(file); in cpia2_g_jpegcomp() local
705 if(!cam->params.compression.inhibit_htables) { in cpia2_g_jpegcomp()
709 parms->APPn = cam->APPn; in cpia2_g_jpegcomp()
710 parms->APP_len = cam->APP_len; in cpia2_g_jpegcomp()
711 if(cam->APP_len > 0) { in cpia2_g_jpegcomp()
712 memcpy(parms->APP_data, cam->APP_data, cam->APP_len); in cpia2_g_jpegcomp()
716 parms->COM_len = cam->COM_len; in cpia2_g_jpegcomp()
717 if(cam->COM_len > 0) { in cpia2_g_jpegcomp()
718 memcpy(parms->COM_data, cam->COM_data, cam->COM_len); in cpia2_g_jpegcomp()
740 struct camera_data *cam = video_drvdata(file); in cpia2_s_jpegcomp() local
745 cam->params.compression.inhibit_htables = in cpia2_s_jpegcomp()
750 parms->APP_len <= sizeof(cam->APP_data) && in cpia2_s_jpegcomp()
752 cam->APPn = parms->APPn; in cpia2_s_jpegcomp()
753 cam->APP_len = parms->APP_len; in cpia2_s_jpegcomp()
754 memcpy(cam->APP_data, parms->APP_data, parms->APP_len); in cpia2_s_jpegcomp()
761 cam->APP_len = 0; in cpia2_s_jpegcomp()
766 parms->COM_len <= sizeof(cam->COM_data)) { in cpia2_s_jpegcomp()
767 cam->COM_len = parms->COM_len; in cpia2_s_jpegcomp()
768 memcpy(cam->COM_data, parms->COM_data, parms->COM_len); in cpia2_s_jpegcomp()
789 struct camera_data *cam = video_drvdata(file); in cpia2_reqbufs() local
795 DBG("REQBUFS requested:%d returning:%d\n", req->count, cam->num_frames); in cpia2_reqbufs()
796 req->count = cam->num_frames; in cpia2_reqbufs()
812 struct camera_data *cam = video_drvdata(file); in cpia2_querybuf() local
815 buf->index > cam->num_frames) in cpia2_querybuf()
818 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer; in cpia2_querybuf()
819 buf->length = cam->frame_size; in cpia2_querybuf()
823 if(cam->mmapped) in cpia2_querybuf()
830 switch (cam->buffers[buf->index].status) { in cpia2_querybuf()
838 buf->bytesused = cam->buffers[buf->index].length; in cpia2_querybuf()
839 buf->timestamp = cam->buffers[buf->index].timestamp; in cpia2_querybuf()
840 buf->sequence = cam->buffers[buf->index].seq; in cpia2_querybuf()
862 struct camera_data *cam = video_drvdata(file); in cpia2_qbuf() local
866 buf->index > cam->num_frames) in cpia2_qbuf()
871 if(cam->buffers[buf->index].status == FRAME_READY) in cpia2_qbuf()
872 cam->buffers[buf->index].status = FRAME_EMPTY; in cpia2_qbuf()
885 static int find_earliest_filled_buffer(struct camera_data *cam) in find_earliest_filled_buffer() argument
889 for (i=0; i<cam->num_frames; i++) { in find_earliest_filled_buffer()
890 if(cam->buffers[i].status == FRAME_READY) { in find_earliest_filled_buffer()
896 tv1 = &cam->buffers[i].timestamp; in find_earliest_filled_buffer()
897 tv2 = &cam->buffers[found].timestamp; in find_earliest_filled_buffer()
918 struct camera_data *cam = video_drvdata(file); in cpia2_dqbuf() local
925 frame = find_earliest_filled_buffer(cam); in cpia2_dqbuf()
932 struct framebuf *cb=cam->curbuff; in cpia2_dqbuf()
933 mutex_unlock(&cam->v4l2_lock); in cpia2_dqbuf()
934 wait_event_interruptible(cam->wq_stream, in cpia2_dqbuf()
935 !video_is_registered(&cam->vdev) || in cpia2_dqbuf()
936 (cb=cam->curbuff)->status == FRAME_READY); in cpia2_dqbuf()
937 mutex_lock(&cam->v4l2_lock); in cpia2_dqbuf()
940 if (!video_is_registered(&cam->vdev)) in cpia2_dqbuf()
947 buf->bytesused = cam->buffers[buf->index].length; in cpia2_dqbuf()
951 buf->timestamp = cam->buffers[buf->index].timestamp; in cpia2_dqbuf()
952 buf->sequence = cam->buffers[buf->index].seq; in cpia2_dqbuf()
953 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer; in cpia2_dqbuf()
954 buf->length = cam->frame_size; in cpia2_dqbuf()
960 cam->buffers[buf->index].status, buf->sequence, buf->bytesused); in cpia2_dqbuf()
967 struct camera_data *cam = video_drvdata(file); in cpia2_streamon() local
970 DBG("VIDIOC_STREAMON, streaming=%d\n", cam->streaming); in cpia2_streamon()
971 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in cpia2_streamon()
974 if (!cam->streaming) { in cpia2_streamon()
975 ret = cpia2_usb_stream_start(cam, in cpia2_streamon()
976 cam->params.camera_state.stream_mode); in cpia2_streamon()
978 v4l2_ctrl_grab(cam->usb_alt, true); in cpia2_streamon()
985 struct camera_data *cam = video_drvdata(file); in cpia2_streamoff() local
988 DBG("VIDIOC_STREAMOFF, streaming=%d\n", cam->streaming); in cpia2_streamoff()
989 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in cpia2_streamoff()
992 if (cam->streaming) { in cpia2_streamoff()
993 ret = cpia2_usb_stream_stop(cam); in cpia2_streamoff()
995 v4l2_ctrl_grab(cam->usb_alt, false); in cpia2_streamoff()
1007 struct camera_data *cam = video_drvdata(file); in cpia2_mmap() local
1010 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_mmap()
1012 retval = cpia2_remap_buffer(cam, area); in cpia2_mmap()
1015 cam->stream_fh = file->private_data; in cpia2_mmap()
1016 mutex_unlock(&cam->v4l2_lock); in cpia2_mmap()
1026 static void reset_camera_struct_v4l(struct camera_data *cam) in reset_camera_struct_v4l() argument
1028 cam->width = cam->params.roi.width; in reset_camera_struct_v4l()
1029 cam->height = cam->params.roi.height; in reset_camera_struct_v4l()
1031 cam->frame_size = buffer_size; in reset_camera_struct_v4l()
1032 cam->num_frames = num_buffers; in reset_camera_struct_v4l()
1035 cam->params.flicker_control.flicker_mode_req = flicker_mode; in reset_camera_struct_v4l()
1038 cam->params.camera_state.stream_mode = alternate; in reset_camera_struct_v4l()
1040 cam->pixelformat = V4L2_PIX_FMT_JPEG; in reset_camera_struct_v4l()
1092 struct camera_data *cam = in cpia2_camera_release() local
1095 v4l2_ctrl_handler_free(&cam->hdl); in cpia2_camera_release()
1096 v4l2_device_unregister(&cam->v4l2_dev); in cpia2_camera_release()
1097 kfree(cam); in cpia2_camera_release()
1109 int cpia2_register_camera(struct camera_data *cam) in cpia2_register_camera() argument
1111 struct v4l2_ctrl_handler *hdl = &cam->hdl; in cpia2_register_camera()
1126 cam->params.pnp_id.device_type == DEVICE_STV_672 ? 1 : 0, in cpia2_register_camera()
1142 cam->usb_alt = v4l2_ctrl_new_custom(hdl, &cpia2_usb_alt, NULL); in cpia2_register_camera()
1144 if (cam->params.pnp_id.device_type != DEVICE_STV_672) in cpia2_register_camera()
1148 if (cam->params.pnp_id.device_type == DEVICE_STV_672) in cpia2_register_camera()
1153 if (cam->params.pnp_id.product == 0x151) { in cpia2_register_camera()
1154 cam->top_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops, in cpia2_register_camera()
1156 cam->bottom_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops, in cpia2_register_camera()
1158 v4l2_ctrl_cluster(2, &cam->top_light); in cpia2_register_camera()
1167 cam->vdev = cpia2_template; in cpia2_register_camera()
1168 video_set_drvdata(&cam->vdev, cam); in cpia2_register_camera()
1169 cam->vdev.lock = &cam->v4l2_lock; in cpia2_register_camera()
1170 cam->vdev.ctrl_handler = hdl; in cpia2_register_camera()
1171 cam->vdev.v4l2_dev = &cam->v4l2_dev; in cpia2_register_camera()
1173 reset_camera_struct_v4l(cam); in cpia2_register_camera()
1176 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) { in cpia2_register_camera()
1189 void cpia2_unregister_camera(struct camera_data *cam) in cpia2_unregister_camera() argument
1191 video_unregister_device(&cam->vdev); in cpia2_unregister_camera()