Lines Matching refs:dev
128 int stk_camera_write_reg(struct stk_camera *dev, u16 index, u8 value) in stk_camera_write_reg() argument
130 struct usb_device *udev = dev->udev; in stk_camera_write_reg()
147 int stk_camera_read_reg(struct stk_camera *dev, u16 index, int *value) in stk_camera_read_reg() argument
149 struct usb_device *udev = dev->udev; in stk_camera_read_reg()
166 static int stk_start_stream(struct stk_camera *dev) in stk_start_stream() argument
172 if (!is_present(dev)) in stk_start_stream()
174 if (!is_memallocd(dev) || !is_initialised(dev)) { in stk_start_stream()
178 ret = usb_set_interface(dev->udev, 0, 5); in stk_start_stream()
182 if (stk_sensor_wakeup(dev)) in stk_start_stream()
185 stk_camera_read_reg(dev, 0x0116, &value_116); in stk_start_stream()
186 stk_camera_read_reg(dev, 0x0117, &value_117); in stk_start_stream()
188 stk_camera_write_reg(dev, 0x0116, 0x0000); in stk_start_stream()
189 stk_camera_write_reg(dev, 0x0117, 0x0000); in stk_start_stream()
191 stk_camera_read_reg(dev, 0x0100, &value); in stk_start_stream()
192 stk_camera_write_reg(dev, 0x0100, value | 0x80); in stk_start_stream()
194 stk_camera_write_reg(dev, 0x0116, value_116); in stk_start_stream()
195 stk_camera_write_reg(dev, 0x0117, value_117); in stk_start_stream()
197 if (dev->isobufs[i].urb) { in stk_start_stream()
198 ret = usb_submit_urb(dev->isobufs[i].urb, GFP_KERNEL); in stk_start_stream()
199 atomic_inc(&dev->urbs_used); in stk_start_stream()
204 set_streaming(dev); in stk_start_stream()
208 static int stk_stop_stream(struct stk_camera *dev) in stk_stop_stream() argument
212 if (is_present(dev)) { in stk_stop_stream()
213 stk_camera_read_reg(dev, 0x0100, &value); in stk_stop_stream()
214 stk_camera_write_reg(dev, 0x0100, value & ~0x80); in stk_stop_stream()
215 if (dev->isobufs != NULL) { in stk_stop_stream()
217 if (dev->isobufs[i].urb) in stk_stop_stream()
218 usb_kill_urb(dev->isobufs[i].urb); in stk_stop_stream()
221 unset_streaming(dev); in stk_stop_stream()
223 if (usb_set_interface(dev->udev, 0, 0)) in stk_stop_stream()
225 if (stk_sensor_sleep(dev)) in stk_stop_stream()
269 static int stk_initialise(struct stk_camera *dev) in stk_initialise() argument
273 if (!is_present(dev)) in stk_initialise()
275 if (is_initialised(dev)) in stk_initialise()
279 ret = stk_camera_write_reg(dev, rv->reg, rv->val); in stk_initialise()
284 if (stk_sensor_init(dev) == 0) { in stk_initialise()
285 set_initialised(dev); in stk_initialise()
307 struct stk_camera *dev; in stk_isoc_handler() local
310 dev = (struct stk_camera *) urb->context; in stk_isoc_handler()
312 if (dev == NULL) { in stk_isoc_handler()
319 atomic_dec(&dev->urbs_used); in stk_isoc_handler()
323 spin_lock_irqsave(&dev->spinlock, flags); in stk_isoc_handler()
330 if (list_empty(&dev->sio_avail)) { in stk_isoc_handler()
336 fb = list_first_entry(&dev->sio_avail, in stk_isoc_handler()
367 && fb->v4lbuf.bytesused != dev->frame_size) { in stk_isoc_handler()
374 } else if (fb->v4lbuf.bytesused == dev->frame_size) { in stk_isoc_handler()
375 if (list_is_singular(&dev->sio_avail)) { in stk_isoc_handler()
380 list_move_tail(dev->sio_avail.next, in stk_isoc_handler()
381 &dev->sio_full); in stk_isoc_handler()
382 wake_up(&dev->wait_frame); in stk_isoc_handler()
383 fb = list_first_entry(&dev->sio_avail, in stk_isoc_handler()
395 if (framelen + fb->v4lbuf.bytesused > dev->frame_size) { in stk_isoc_handler()
401 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_isoc_handler()
403 spin_lock_irqsave(&dev->spinlock, flags); in stk_isoc_handler()
411 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_isoc_handler()
412 urb->dev = dev->udev; in stk_isoc_handler()
422 static int stk_prepare_iso(struct stk_camera *dev) in stk_prepare_iso() argument
429 if (dev == NULL) in stk_prepare_iso()
431 udev = dev->udev; in stk_prepare_iso()
433 if (dev->isobufs) in stk_prepare_iso()
436 dev->isobufs = kcalloc(MAX_ISO_BUFS, sizeof(*dev->isobufs), in stk_prepare_iso()
438 if (dev->isobufs == NULL) { in stk_prepare_iso()
443 if (dev->isobufs[i].data == NULL) { in stk_prepare_iso()
450 dev->isobufs[i].data = kbuf; in stk_prepare_iso()
453 if (dev->isobufs[i].urb == NULL) { in stk_prepare_iso()
459 dev->isobufs[i].urb = urb; in stk_prepare_iso()
462 usb_kill_urb(dev->isobufs[i].urb); in stk_prepare_iso()
463 urb = dev->isobufs[i].urb; in stk_prepare_iso()
466 urb->dev = udev; in stk_prepare_iso()
467 urb->pipe = usb_rcvisocpipe(udev, dev->isoc_ep); in stk_prepare_iso()
469 urb->transfer_buffer = dev->isobufs[i].data; in stk_prepare_iso()
472 urb->context = dev; in stk_prepare_iso()
481 set_memallocd(dev); in stk_prepare_iso()
485 for (i = 0; i < MAX_ISO_BUFS && dev->isobufs[i].data; i++) in stk_prepare_iso()
486 kfree(dev->isobufs[i].data); in stk_prepare_iso()
487 for (i = 0; i < MAX_ISO_BUFS && dev->isobufs[i].urb; i++) in stk_prepare_iso()
488 usb_free_urb(dev->isobufs[i].urb); in stk_prepare_iso()
489 kfree(dev->isobufs); in stk_prepare_iso()
490 dev->isobufs = NULL; in stk_prepare_iso()
494 static void stk_clean_iso(struct stk_camera *dev) in stk_clean_iso() argument
498 if (dev == NULL || dev->isobufs == NULL) in stk_clean_iso()
504 urb = dev->isobufs[i].urb; in stk_clean_iso()
506 if (atomic_read(&dev->urbs_used) && is_present(dev)) in stk_clean_iso()
510 kfree(dev->isobufs[i].data); in stk_clean_iso()
512 kfree(dev->isobufs); in stk_clean_iso()
513 dev->isobufs = NULL; in stk_clean_iso()
514 unset_memallocd(dev); in stk_clean_iso()
517 static int stk_setup_siobuf(struct stk_camera *dev, int index) in stk_setup_siobuf() argument
519 struct stk_sio_buffer *buf = dev->sio_bufs + index; in stk_setup_siobuf()
521 buf->v4lbuf.length = PAGE_ALIGN(dev->frame_size); in stk_setup_siobuf()
526 buf->dev = dev; in stk_setup_siobuf()
536 static int stk_free_sio_buffers(struct stk_camera *dev) in stk_free_sio_buffers() argument
541 if (dev->n_sbufs == 0 || dev->sio_bufs == NULL) in stk_free_sio_buffers()
546 for (i = 0; i < dev->n_sbufs; i++) { in stk_free_sio_buffers()
547 if (dev->sio_bufs[i].mapcount > 0) in stk_free_sio_buffers()
553 spin_lock_irqsave(&dev->spinlock, flags); in stk_free_sio_buffers()
554 INIT_LIST_HEAD(&dev->sio_avail); in stk_free_sio_buffers()
555 INIT_LIST_HEAD(&dev->sio_full); in stk_free_sio_buffers()
556 nbufs = dev->n_sbufs; in stk_free_sio_buffers()
557 dev->n_sbufs = 0; in stk_free_sio_buffers()
558 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_free_sio_buffers()
560 vfree(dev->sio_bufs[i].buffer); in stk_free_sio_buffers()
561 kfree(dev->sio_bufs); in stk_free_sio_buffers()
562 dev->sio_bufs = NULL; in stk_free_sio_buffers()
566 static int stk_prepare_sio_buffers(struct stk_camera *dev, unsigned n_sbufs) in stk_prepare_sio_buffers() argument
569 if (dev->sio_bufs != NULL) in stk_prepare_sio_buffers()
572 dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer), in stk_prepare_sio_buffers()
574 if (dev->sio_bufs == NULL) in stk_prepare_sio_buffers()
577 if (stk_setup_siobuf(dev, i)) in stk_prepare_sio_buffers()
578 return (dev->n_sbufs > 1 ? 0 : -ENOMEM); in stk_prepare_sio_buffers()
579 dev->n_sbufs = i+1; in stk_prepare_sio_buffers()
585 static int stk_allocate_buffers(struct stk_camera *dev, unsigned n_sbufs) in stk_allocate_buffers() argument
588 err = stk_prepare_iso(dev); in stk_allocate_buffers()
590 stk_clean_iso(dev); in stk_allocate_buffers()
593 err = stk_prepare_sio_buffers(dev, n_sbufs); in stk_allocate_buffers()
595 stk_free_sio_buffers(dev); in stk_allocate_buffers()
601 static void stk_free_buffers(struct stk_camera *dev) in stk_free_buffers() argument
603 stk_clean_iso(dev); in stk_free_buffers()
604 stk_free_sio_buffers(dev); in stk_free_buffers()
612 struct stk_camera *dev = video_drvdata(fp); in v4l_stk_open() local
615 if (dev == NULL || !is_present(dev)) in v4l_stk_open()
618 if (mutex_lock_interruptible(&dev->lock)) in v4l_stk_open()
620 if (!dev->first_init) in v4l_stk_open()
621 stk_camera_write_reg(dev, 0x0, 0x24); in v4l_stk_open()
623 dev->first_init = 0; in v4l_stk_open()
627 usb_autopm_get_interface(dev->interface); in v4l_stk_open()
628 mutex_unlock(&dev->lock); in v4l_stk_open()
634 struct stk_camera *dev = video_drvdata(fp); in v4l_stk_release() local
636 mutex_lock(&dev->lock); in v4l_stk_release()
637 if (dev->owner == fp) { in v4l_stk_release()
638 stk_stop_stream(dev); in v4l_stk_release()
639 stk_free_buffers(dev); in v4l_stk_release()
640 stk_camera_write_reg(dev, 0x0, 0x49); /* turn off the LED */ in v4l_stk_release()
641 unset_initialised(dev); in v4l_stk_release()
642 dev->owner = NULL; in v4l_stk_release()
645 if (is_present(dev)) in v4l_stk_release()
646 usb_autopm_put_interface(dev->interface); in v4l_stk_release()
647 mutex_unlock(&dev->lock); in v4l_stk_release()
658 struct stk_camera *dev = video_drvdata(fp); in stk_read() local
660 if (!is_present(dev)) in stk_read()
662 if (dev->owner && (!dev->reading || dev->owner != fp)) in stk_read()
664 dev->owner = fp; in stk_read()
665 if (!is_streaming(dev)) { in stk_read()
666 if (stk_initialise(dev) in stk_read()
667 || stk_allocate_buffers(dev, 3) in stk_read()
668 || stk_start_stream(dev)) in stk_read()
670 dev->reading = 1; in stk_read()
671 spin_lock_irqsave(&dev->spinlock, flags); in stk_read()
672 for (i = 0; i < dev->n_sbufs; i++) { in stk_read()
673 list_add_tail(&dev->sio_bufs[i].list, &dev->sio_avail); in stk_read()
674 dev->sio_bufs[i].v4lbuf.flags = V4L2_BUF_FLAG_QUEUED; in stk_read()
676 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_read()
679 if (fp->f_flags & O_NONBLOCK && list_empty(&dev->sio_full)) in stk_read()
681 ret = wait_event_interruptible(dev->wait_frame, in stk_read()
682 !list_empty(&dev->sio_full) || !is_present(dev)); in stk_read()
685 if (!is_present(dev)) in stk_read()
688 if (count + *f_pos > dev->frame_size) in stk_read()
689 count = dev->frame_size - *f_pos; in stk_read()
690 spin_lock_irqsave(&dev->spinlock, flags); in stk_read()
691 if (list_empty(&dev->sio_full)) { in stk_read()
692 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_read()
696 sbuf = list_first_entry(&dev->sio_full, struct stk_sio_buffer, list); in stk_read()
697 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_read()
704 if (*f_pos >= dev->frame_size) { in stk_read()
706 spin_lock_irqsave(&dev->spinlock, flags); in stk_read()
707 list_move_tail(&sbuf->list, &dev->sio_avail); in stk_read()
708 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_read()
716 struct stk_camera *dev = video_drvdata(fp); in v4l_stk_read() local
719 if (mutex_lock_interruptible(&dev->lock)) in v4l_stk_read()
722 mutex_unlock(&dev->lock); in v4l_stk_read()
728 struct stk_camera *dev = video_drvdata(fp); in v4l_stk_poll() local
731 poll_wait(fp, &dev->wait_frame, wait); in v4l_stk_poll()
733 if (!is_present(dev)) in v4l_stk_poll()
736 if (!list_empty(&dev->sio_full)) in v4l_stk_poll()
765 struct stk_camera *dev = video_drvdata(fp); in v4l_stk_mmap() local
771 for (i = 0; i < dev->n_sbufs; i++) { in v4l_stk_mmap()
772 if (dev->sio_bufs[i].v4lbuf.m.offset == offset) { in v4l_stk_mmap()
773 sbuf = dev->sio_bufs + i; in v4l_stk_mmap()
795 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_querycap() local
799 usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); in stk_vidioc_querycap()
832 struct stk_camera *dev = in stk_s_ctrl() local
837 return stk_sensor_set_brightness(dev, ctrl->val); in stk_s_ctrl()
840 dev->vsettings.hflip = !ctrl->val; in stk_s_ctrl()
842 dev->vsettings.hflip = ctrl->val; in stk_s_ctrl()
846 dev->vsettings.vflip = !ctrl->val; in stk_s_ctrl()
848 dev->vsettings.vflip = ctrl->val; in stk_s_ctrl()
903 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_g_fmt_vid_cap() local
907 stk_sizes[i].m != dev->vsettings.mode; i++) in stk_vidioc_g_fmt_vid_cap()
917 pix_format->pixelformat = dev->vsettings.palette; in stk_vidioc_g_fmt_vid_cap()
918 if (dev->vsettings.palette == V4L2_PIX_FMT_SBGGR8) in stk_vidioc_g_fmt_vid_cap()
976 static int stk_setup_format(struct stk_camera *dev) in stk_setup_format() argument
980 if (dev->vsettings.palette == V4L2_PIX_FMT_SBGGR8) in stk_setup_format()
985 stk_sizes[i].m != dev->vsettings.mode) in stk_setup_format()
992 stk_camera_write_reg(dev, 0x001b, 0x0e); in stk_setup_format()
993 if (dev->vsettings.mode == MODE_SXGA) in stk_setup_format()
994 stk_camera_write_reg(dev, 0x001c, 0x0e); in stk_setup_format()
996 stk_camera_write_reg(dev, 0x001c, 0x46); in stk_setup_format()
1001 stk_camera_write_reg(dev, 0x0115, in stk_setup_format()
1003 stk_camera_write_reg(dev, 0x0114, in stk_setup_format()
1005 stk_camera_write_reg(dev, 0x0117, in stk_setup_format()
1007 stk_camera_write_reg(dev, 0x0116, in stk_setup_format()
1009 return stk_sensor_configure(dev); in stk_setup_format()
1017 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_s_fmt_vid_cap() local
1019 if (dev == NULL) in stk_vidioc_s_fmt_vid_cap()
1021 if (!is_present(dev)) in stk_vidioc_s_fmt_vid_cap()
1023 if (is_streaming(dev)) in stk_vidioc_s_fmt_vid_cap()
1025 if (dev->owner) in stk_vidioc_s_fmt_vid_cap()
1031 dev->vsettings.palette = fmtd->fmt.pix.pixelformat; in stk_vidioc_s_fmt_vid_cap()
1032 stk_free_buffers(dev); in stk_vidioc_s_fmt_vid_cap()
1033 dev->frame_size = fmtd->fmt.pix.sizeimage; in stk_vidioc_s_fmt_vid_cap()
1034 dev->vsettings.mode = stk_sizes[idx].m; in stk_vidioc_s_fmt_vid_cap()
1036 stk_initialise(dev); in stk_vidioc_s_fmt_vid_cap()
1037 return stk_setup_format(dev); in stk_vidioc_s_fmt_vid_cap()
1043 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_reqbufs() local
1045 if (dev == NULL) in stk_vidioc_reqbufs()
1049 if (is_streaming(dev) in stk_vidioc_reqbufs()
1050 || (dev->owner && dev->owner != filp)) in stk_vidioc_reqbufs()
1052 stk_free_buffers(dev); in stk_vidioc_reqbufs()
1054 stk_camera_write_reg(dev, 0x0, 0x49); /* turn off the LED */ in stk_vidioc_reqbufs()
1055 unset_initialised(dev); in stk_vidioc_reqbufs()
1056 dev->owner = NULL; in stk_vidioc_reqbufs()
1059 dev->owner = filp; in stk_vidioc_reqbufs()
1068 stk_allocate_buffers(dev, rb->count); in stk_vidioc_reqbufs()
1069 rb->count = dev->n_sbufs; in stk_vidioc_reqbufs()
1076 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_querybuf() local
1079 if (buf->index >= dev->n_sbufs) in stk_vidioc_querybuf()
1081 sbuf = dev->sio_bufs + buf->index; in stk_vidioc_querybuf()
1089 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_qbuf() local
1096 if (buf->index >= dev->n_sbufs) in stk_vidioc_qbuf()
1098 sbuf = dev->sio_bufs + buf->index; in stk_vidioc_qbuf()
1103 spin_lock_irqsave(&dev->spinlock, flags); in stk_vidioc_qbuf()
1104 list_add_tail(&sbuf->list, &dev->sio_avail); in stk_vidioc_qbuf()
1106 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_vidioc_qbuf()
1113 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_dqbuf() local
1118 if (!is_streaming(dev)) in stk_vidioc_dqbuf()
1121 if (filp->f_flags & O_NONBLOCK && list_empty(&dev->sio_full)) in stk_vidioc_dqbuf()
1123 ret = wait_event_interruptible(dev->wait_frame, in stk_vidioc_dqbuf()
1124 !list_empty(&dev->sio_full) || !is_present(dev)); in stk_vidioc_dqbuf()
1127 if (!is_present(dev)) in stk_vidioc_dqbuf()
1130 spin_lock_irqsave(&dev->spinlock, flags); in stk_vidioc_dqbuf()
1131 sbuf = list_first_entry(&dev->sio_full, struct stk_sio_buffer, list); in stk_vidioc_dqbuf()
1133 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_vidioc_dqbuf()
1136 sbuf->v4lbuf.sequence = ++dev->sequence; in stk_vidioc_dqbuf()
1146 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_streamon() local
1147 if (is_streaming(dev)) in stk_vidioc_streamon()
1149 if (dev->sio_bufs == NULL) in stk_vidioc_streamon()
1151 dev->sequence = 0; in stk_vidioc_streamon()
1152 return stk_start_stream(dev); in stk_vidioc_streamon()
1158 struct stk_camera *dev = video_drvdata(filp); in stk_vidioc_streamoff() local
1161 stk_stop_stream(dev); in stk_vidioc_streamoff()
1162 spin_lock_irqsave(&dev->spinlock, flags); in stk_vidioc_streamoff()
1163 INIT_LIST_HEAD(&dev->sio_avail); in stk_vidioc_streamoff()
1164 INIT_LIST_HEAD(&dev->sio_full); in stk_vidioc_streamoff()
1165 for (i = 0; i < dev->n_sbufs; i++) { in stk_vidioc_streamoff()
1166 INIT_LIST_HEAD(&dev->sio_bufs[i].list); in stk_vidioc_streamoff()
1167 dev->sio_bufs[i].v4lbuf.flags = 0; in stk_vidioc_streamoff()
1169 spin_unlock_irqrestore(&dev->spinlock, flags); in stk_vidioc_streamoff()
1241 struct stk_camera *dev = vdev_to_camera(vd); in stk_v4l_dev_release() local
1243 if (dev->sio_bufs != NULL || dev->isobufs != NULL) in stk_v4l_dev_release()
1245 usb_put_intf(dev->interface); in stk_v4l_dev_release()
1246 kfree(dev); in stk_v4l_dev_release()
1257 static int stk_register_video_device(struct stk_camera *dev) in stk_register_video_device() argument
1261 dev->vdev = stk_v4l_data; in stk_register_video_device()
1262 dev->vdev.lock = &dev->lock; in stk_register_video_device()
1263 dev->vdev.v4l2_dev = &dev->v4l2_dev; in stk_register_video_device()
1264 video_set_drvdata(&dev->vdev, dev); in stk_register_video_device()
1265 err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1); in stk_register_video_device()
1270 video_device_node_name(&dev->vdev)); in stk_register_video_device()
1284 struct stk_camera *dev = NULL; in stk_camera_probe() local
1289 dev = kzalloc(sizeof(struct stk_camera), GFP_KERNEL); in stk_camera_probe()
1290 if (dev == NULL) { in stk_camera_probe()
1294 err = v4l2_device_register(&interface->dev, &dev->v4l2_dev); in stk_camera_probe()
1296 dev_err(&udev->dev, "couldn't register v4l2_device\n"); in stk_camera_probe()
1297 kfree(dev); in stk_camera_probe()
1300 hdl = &dev->hdl; in stk_camera_probe()
1310 dev_err(&udev->dev, "couldn't register control\n"); in stk_camera_probe()
1313 dev->v4l2_dev.ctrl_handler = hdl; in stk_camera_probe()
1315 spin_lock_init(&dev->spinlock); in stk_camera_probe()
1316 mutex_init(&dev->lock); in stk_camera_probe()
1317 init_waitqueue_head(&dev->wait_frame); in stk_camera_probe()
1318 dev->first_init = 1; /* webcam LED management */ in stk_camera_probe()
1320 dev->udev = udev; in stk_camera_probe()
1321 dev->interface = interface; in stk_camera_probe()
1325 dev->vsettings.hflip = hflip; in stk_camera_probe()
1327 dev->vsettings.hflip = 1; in stk_camera_probe()
1329 dev->vsettings.hflip = 0; in stk_camera_probe()
1331 dev->vsettings.vflip = vflip; in stk_camera_probe()
1333 dev->vsettings.vflip = 1; in stk_camera_probe()
1335 dev->vsettings.vflip = 0; in stk_camera_probe()
1336 dev->n_sbufs = 0; in stk_camera_probe()
1337 set_present(dev); in stk_camera_probe()
1347 if (!dev->isoc_ep in stk_camera_probe()
1350 dev->isoc_ep = usb_endpoint_num(endpoint); in stk_camera_probe()
1354 if (!dev->isoc_ep) { in stk_camera_probe()
1359 dev->vsettings.palette = V4L2_PIX_FMT_RGB565; in stk_camera_probe()
1360 dev->vsettings.mode = MODE_VGA; in stk_camera_probe()
1361 dev->frame_size = 640 * 480 * 2; in stk_camera_probe()
1363 INIT_LIST_HEAD(&dev->sio_avail); in stk_camera_probe()
1364 INIT_LIST_HEAD(&dev->sio_full); in stk_camera_probe()
1366 usb_set_intfdata(interface, dev); in stk_camera_probe()
1368 err = stk_register_video_device(dev); in stk_camera_probe()
1376 v4l2_device_unregister(&dev->v4l2_dev); in stk_camera_probe()
1377 kfree(dev); in stk_camera_probe()
1383 struct stk_camera *dev = usb_get_intfdata(interface); in stk_camera_disconnect() local
1386 unset_present(dev); in stk_camera_disconnect()
1388 wake_up_interruptible(&dev->wait_frame); in stk_camera_disconnect()
1391 video_device_node_name(&dev->vdev)); in stk_camera_disconnect()
1393 video_unregister_device(&dev->vdev); in stk_camera_disconnect()
1394 v4l2_ctrl_handler_free(&dev->hdl); in stk_camera_disconnect()
1395 v4l2_device_unregister(&dev->v4l2_dev); in stk_camera_disconnect()
1401 struct stk_camera *dev = usb_get_intfdata(intf); in stk_camera_suspend() local
1402 if (is_streaming(dev)) { in stk_camera_suspend()
1403 stk_stop_stream(dev); in stk_camera_suspend()
1405 set_streaming(dev); in stk_camera_suspend()
1412 struct stk_camera *dev = usb_get_intfdata(intf); in stk_camera_resume() local
1413 if (!is_initialised(dev)) in stk_camera_resume()
1415 unset_initialised(dev); in stk_camera_resume()
1416 stk_initialise(dev); in stk_camera_resume()
1417 stk_camera_write_reg(dev, 0x0, 0x49); in stk_camera_resume()
1418 stk_setup_format(dev); in stk_camera_resume()
1419 if (is_streaming(dev)) in stk_camera_resume()
1420 stk_start_stream(dev); in stk_camera_resume()