• Home
  • Raw
  • Download

Lines Matching full:cam

82 	struct camera_data *cam = video_drvdata(file);  in cpia2_open()  local
85 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_open()
92 if (cpia2_allocate_buffers(cam)) { in cpia2_open()
99 if (cpia2_reset_camera(cam) < 0) { in cpia2_open()
105 cam->APP_len = 0; in cpia2_open()
106 cam->COM_len = 0; in cpia2_open()
109 cpia2_dbg_dump_registers(cam); in cpia2_open()
111 mutex_unlock(&cam->v4l2_lock); in cpia2_open()
123 struct camera_data *cam = video_get_drvdata(dev); in cpia2_close() local
125 mutex_lock(&cam->v4l2_lock); in cpia2_close()
126 if (video_is_registered(&cam->vdev) && v4l2_fh_is_singular_file(file)) { in cpia2_close()
127 cpia2_usb_stream_stop(cam); in cpia2_close()
130 cpia2_save_camera_state(cam); in cpia2_close()
132 cpia2_set_low_power(cam); in cpia2_close()
133 cpia2_free_buffers(cam); in cpia2_close()
136 if (cam->stream_fh == file->private_data) { in cpia2_close()
137 cam->stream_fh = NULL; in cpia2_close()
138 cam->mmapped = 0; in cpia2_close()
140 mutex_unlock(&cam->v4l2_lock); in cpia2_close()
152 struct camera_data *cam = video_drvdata(file); in cpia2_v4l_read() local
156 if(!cam) in cpia2_v4l_read()
159 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_v4l_read()
161 ret = cpia2_read(cam, buf, count, noblock); in cpia2_v4l_read()
162 mutex_unlock(&cam->v4l2_lock); in cpia2_v4l_read()
174 struct camera_data *cam = video_drvdata(filp); in cpia2_v4l_poll() local
177 mutex_lock(&cam->v4l2_lock); in cpia2_v4l_poll()
178 res = cpia2_poll(cam, filp, wait); in cpia2_v4l_poll()
179 mutex_unlock(&cam->v4l2_lock); in cpia2_v4l_poll()
184 static int sync(struct camera_data *cam, int frame_nr) in sync() argument
186 struct framebuf *frame = &cam->buffers[frame_nr]; in sync()
192 if (!cam->streaming) { in sync()
198 mutex_unlock(&cam->v4l2_lock); in sync()
199 wait_event_interruptible(cam->wq_stream, in sync()
200 !cam->streaming || in sync()
202 mutex_lock(&cam->v4l2_lock); in sync()
205 if (!video_is_registered(&cam->vdev)) in sync()
220 struct camera_data *cam = video_drvdata(file); in cpia2_querycap() local
224 if (cam->params.pnp_id.product == 0x151) in cpia2_querycap()
228 switch (cam->params.pnp_id.device_type) { in cpia2_querycap()
239 switch (cam->params.version.sensor_flags) { in cpia2_querycap()
260 if (usb_make_path(cam->dev, vc->bus_info, sizeof(vc->bus_info)) <0) in cpia2_querycap()
347 struct camera_data *cam = video_drvdata(file); in cpia2_try_fmt_vid_cap() local
355 f->fmt.pix.sizeimage = cam->frame_size; in cpia2_try_fmt_vid_cap()
409 struct camera_data *cam = video_drvdata(file); in cpia2_s_fmt_vid_cap() local
416 cam->pixelformat = f->fmt.pix.pixelformat; in cpia2_s_fmt_vid_cap()
420 cam->params.compression.inhibit_htables = 0; in cpia2_s_fmt_vid_cap()
428 if (f->fmt.pix.width != cam->width || in cpia2_s_fmt_vid_cap()
429 f->fmt.pix.height != cam->height) { in cpia2_s_fmt_vid_cap()
430 cam->width = f->fmt.pix.width; in cpia2_s_fmt_vid_cap()
431 cam->height = f->fmt.pix.height; in cpia2_s_fmt_vid_cap()
432 cam->params.roi.width = f->fmt.pix.width; in cpia2_s_fmt_vid_cap()
433 cam->params.roi.height = f->fmt.pix.height; in cpia2_s_fmt_vid_cap()
434 cpia2_set_format(cam); in cpia2_s_fmt_vid_cap()
437 for (frame = 0; frame < cam->num_frames; ++frame) { in cpia2_s_fmt_vid_cap()
438 if (cam->buffers[frame].status == FRAME_READING) in cpia2_s_fmt_vid_cap()
439 if ((err = sync(cam, frame)) < 0) in cpia2_s_fmt_vid_cap()
442 cam->buffers[frame].status = FRAME_EMPTY; in cpia2_s_fmt_vid_cap()
459 struct camera_data *cam = video_drvdata(file); in cpia2_g_fmt_vid_cap() local
461 f->fmt.pix.width = cam->width; in cpia2_g_fmt_vid_cap()
462 f->fmt.pix.height = cam->height; in cpia2_g_fmt_vid_cap()
463 f->fmt.pix.pixelformat = cam->pixelformat; in cpia2_g_fmt_vid_cap()
466 f->fmt.pix.sizeimage = cam->frame_size; in cpia2_g_fmt_vid_cap()
484 struct camera_data *cam = video_drvdata(file); in cpia2_cropcap() local
491 c->bounds.width = cam->width; in cpia2_cropcap()
492 c->bounds.height = cam->height; in cpia2_cropcap()
495 c->defrect.width = cam->width; in cpia2_cropcap()
496 c->defrect.height = cam->height; in cpia2_cropcap()
519 struct camera_data *cam = video_drvdata(file); in cpia2_g_parm() local
527 cap->readbuffers = cam->num_frames; in cpia2_g_parm()
529 if (cam->params.vp_params.frame_rate == framerate_controls[i].value) { in cpia2_g_parm()
538 struct camera_data *cam = video_drvdata(file); in cpia2_s_parm() local
550 if (cam->params.pnp_id.device_type == DEVICE_STV_672 && in cpia2_s_parm()
551 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500) in cpia2_s_parm()
565 return cpia2_set_fps(cam, framerate_controls[i].value); in cpia2_s_parm()
601 struct camera_data *cam = video_drvdata(file); in cpia2_enum_frameintervals() local
610 if (cam->params.pnp_id.device_type == DEVICE_STV_672 && in cpia2_enum_frameintervals()
611 cam->params.version.sensor_flags == CPIA2_VP_SENSOR_FLAGS_500) in cpia2_enum_frameintervals()
636 struct camera_data *cam = in cpia2_s_ctrl() local
648 cpia2_set_brightness(cam, ctrl->val); in cpia2_s_ctrl()
651 cpia2_set_contrast(cam, ctrl->val); in cpia2_s_ctrl()
654 cpia2_set_saturation(cam, ctrl->val); in cpia2_s_ctrl()
657 cpia2_set_property_mirror(cam, ctrl->val); in cpia2_s_ctrl()
660 cpia2_set_property_flip(cam, ctrl->val); in cpia2_s_ctrl()
663 return cpia2_set_flicker_mode(cam, flicker_table[ctrl->val]); in cpia2_s_ctrl()
665 return cpia2_set_gpio(cam, (cam->top_light->val << 6) | in cpia2_s_ctrl()
666 (cam->bottom_light->val << 7)); in cpia2_s_ctrl()
668 cam->params.compression.inhibit_htables = in cpia2_s_ctrl()
672 cam->params.vc_params.quality = ctrl->val; in cpia2_s_ctrl()
675 cam->params.camera_state.stream_mode = ctrl->val; in cpia2_s_ctrl()
694 struct camera_data *cam = video_drvdata(file); in cpia2_g_jpegcomp() local
701 if(!cam->params.compression.inhibit_htables) { in cpia2_g_jpegcomp()
705 parms->APPn = cam->APPn; in cpia2_g_jpegcomp()
706 parms->APP_len = cam->APP_len; in cpia2_g_jpegcomp()
707 if(cam->APP_len > 0) { in cpia2_g_jpegcomp()
708 memcpy(parms->APP_data, cam->APP_data, cam->APP_len); in cpia2_g_jpegcomp()
712 parms->COM_len = cam->COM_len; in cpia2_g_jpegcomp()
713 if(cam->COM_len > 0) { in cpia2_g_jpegcomp()
714 memcpy(parms->COM_data, cam->COM_data, cam->COM_len); in cpia2_g_jpegcomp()
736 struct camera_data *cam = video_drvdata(file); in cpia2_s_jpegcomp() local
741 cam->params.compression.inhibit_htables = in cpia2_s_jpegcomp()
746 parms->APP_len <= sizeof(cam->APP_data) && in cpia2_s_jpegcomp()
748 cam->APPn = parms->APPn; in cpia2_s_jpegcomp()
749 cam->APP_len = parms->APP_len; in cpia2_s_jpegcomp()
750 memcpy(cam->APP_data, parms->APP_data, parms->APP_len); in cpia2_s_jpegcomp()
757 cam->APP_len = 0; in cpia2_s_jpegcomp()
762 parms->COM_len <= sizeof(cam->COM_data)) { in cpia2_s_jpegcomp()
763 cam->COM_len = parms->COM_len; in cpia2_s_jpegcomp()
764 memcpy(cam->COM_data, parms->COM_data, parms->COM_len); in cpia2_s_jpegcomp()
785 struct camera_data *cam = video_drvdata(file); in cpia2_reqbufs() local
791 DBG("REQBUFS requested:%d returning:%d\n", req->count, cam->num_frames); in cpia2_reqbufs()
792 req->count = cam->num_frames; in cpia2_reqbufs()
808 struct camera_data *cam = video_drvdata(file); in cpia2_querybuf() local
811 buf->index >= cam->num_frames) in cpia2_querybuf()
814 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer; in cpia2_querybuf()
815 buf->length = cam->frame_size; in cpia2_querybuf()
819 if(cam->mmapped) in cpia2_querybuf()
826 switch (cam->buffers[buf->index].status) { in cpia2_querybuf()
834 buf->bytesused = cam->buffers[buf->index].length; in cpia2_querybuf()
835 buf->timestamp = cam->buffers[buf->index].timestamp; in cpia2_querybuf()
836 buf->sequence = cam->buffers[buf->index].seq; in cpia2_querybuf()
858 struct camera_data *cam = video_drvdata(file); in cpia2_qbuf() local
862 buf->index >= cam->num_frames) in cpia2_qbuf()
867 if(cam->buffers[buf->index].status == FRAME_READY) in cpia2_qbuf()
868 cam->buffers[buf->index].status = FRAME_EMPTY; in cpia2_qbuf()
881 static int find_earliest_filled_buffer(struct camera_data *cam) in find_earliest_filled_buffer() argument
885 for (i=0; i<cam->num_frames; i++) { in find_earliest_filled_buffer()
886 if(cam->buffers[i].status == FRAME_READY) { in find_earliest_filled_buffer()
892 tv1 = &cam->buffers[i].timestamp; in find_earliest_filled_buffer()
893 tv2 = &cam->buffers[found].timestamp; in find_earliest_filled_buffer()
914 struct camera_data *cam = video_drvdata(file); in cpia2_dqbuf() local
921 frame = find_earliest_filled_buffer(cam); in cpia2_dqbuf()
928 struct framebuf *cb=cam->curbuff; in cpia2_dqbuf()
929 mutex_unlock(&cam->v4l2_lock); in cpia2_dqbuf()
930 wait_event_interruptible(cam->wq_stream, in cpia2_dqbuf()
931 !video_is_registered(&cam->vdev) || in cpia2_dqbuf()
932 (cb=cam->curbuff)->status == FRAME_READY); in cpia2_dqbuf()
933 mutex_lock(&cam->v4l2_lock); in cpia2_dqbuf()
936 if (!video_is_registered(&cam->vdev)) in cpia2_dqbuf()
943 buf->bytesused = cam->buffers[buf->index].length; in cpia2_dqbuf()
947 buf->timestamp = cam->buffers[buf->index].timestamp; in cpia2_dqbuf()
948 buf->sequence = cam->buffers[buf->index].seq; in cpia2_dqbuf()
949 buf->m.offset = cam->buffers[buf->index].data - cam->frame_buffer; in cpia2_dqbuf()
950 buf->length = cam->frame_size; in cpia2_dqbuf()
956 cam->buffers[buf->index].status, buf->sequence, buf->bytesused); in cpia2_dqbuf()
963 struct camera_data *cam = video_drvdata(file); in cpia2_streamon() local
966 DBG("VIDIOC_STREAMON, streaming=%d\n", cam->streaming); in cpia2_streamon()
967 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in cpia2_streamon()
970 if (!cam->streaming) { in cpia2_streamon()
971 ret = cpia2_usb_stream_start(cam, in cpia2_streamon()
972 cam->params.camera_state.stream_mode); in cpia2_streamon()
974 v4l2_ctrl_grab(cam->usb_alt, true); in cpia2_streamon()
981 struct camera_data *cam = video_drvdata(file); in cpia2_streamoff() local
984 DBG("VIDIOC_STREAMOFF, streaming=%d\n", cam->streaming); in cpia2_streamoff()
985 if (!cam->mmapped || type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in cpia2_streamoff()
988 if (cam->streaming) { in cpia2_streamoff()
989 ret = cpia2_usb_stream_stop(cam); in cpia2_streamoff()
991 v4l2_ctrl_grab(cam->usb_alt, false); in cpia2_streamoff()
1003 struct camera_data *cam = video_drvdata(file); in cpia2_mmap() local
1006 if (mutex_lock_interruptible(&cam->v4l2_lock)) in cpia2_mmap()
1008 retval = cpia2_remap_buffer(cam, area); in cpia2_mmap()
1011 cam->stream_fh = file->private_data; in cpia2_mmap()
1012 mutex_unlock(&cam->v4l2_lock); in cpia2_mmap()
1022 static void reset_camera_struct_v4l(struct camera_data *cam) in reset_camera_struct_v4l() argument
1024 cam->width = cam->params.roi.width; in reset_camera_struct_v4l()
1025 cam->height = cam->params.roi.height; in reset_camera_struct_v4l()
1027 cam->frame_size = buffer_size; in reset_camera_struct_v4l()
1028 cam->num_frames = num_buffers; in reset_camera_struct_v4l()
1031 cam->params.flicker_control.flicker_mode_req = flicker_mode; in reset_camera_struct_v4l()
1034 cam->params.camera_state.stream_mode = alternate; in reset_camera_struct_v4l()
1036 cam->pixelformat = V4L2_PIX_FMT_JPEG; in reset_camera_struct_v4l()
1088 struct camera_data *cam = in cpia2_camera_release() local
1091 v4l2_ctrl_handler_free(&cam->hdl); in cpia2_camera_release()
1092 v4l2_device_unregister(&cam->v4l2_dev); in cpia2_camera_release()
1093 kfree(cam); in cpia2_camera_release()
1105 int cpia2_register_camera(struct camera_data *cam) in cpia2_register_camera() argument
1107 struct v4l2_ctrl_handler *hdl = &cam->hdl; in cpia2_register_camera()
1122 cam->params.pnp_id.device_type == DEVICE_STV_672 ? 1 : 0, in cpia2_register_camera()
1138 cam->usb_alt = v4l2_ctrl_new_custom(hdl, &cpia2_usb_alt, NULL); in cpia2_register_camera()
1140 if (cam->params.pnp_id.device_type != DEVICE_STV_672) in cpia2_register_camera()
1144 if (cam->params.pnp_id.device_type == DEVICE_STV_672) in cpia2_register_camera()
1149 if (cam->params.pnp_id.product == 0x151) { in cpia2_register_camera()
1150 cam->top_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops, in cpia2_register_camera()
1152 cam->bottom_light = v4l2_ctrl_new_std(hdl, &cpia2_ctrl_ops, in cpia2_register_camera()
1154 v4l2_ctrl_cluster(2, &cam->top_light); in cpia2_register_camera()
1163 cam->vdev = cpia2_template; in cpia2_register_camera()
1164 video_set_drvdata(&cam->vdev, cam); in cpia2_register_camera()
1165 cam->vdev.lock = &cam->v4l2_lock; in cpia2_register_camera()
1166 cam->vdev.ctrl_handler = hdl; in cpia2_register_camera()
1167 cam->vdev.v4l2_dev = &cam->v4l2_dev; in cpia2_register_camera()
1169 reset_camera_struct_v4l(cam); in cpia2_register_camera()
1172 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) { in cpia2_register_camera()
1185 void cpia2_unregister_camera(struct camera_data *cam) in cpia2_unregister_camera() argument
1187 video_unregister_device(&cam->vdev); in cpia2_unregister_camera()