Lines Matching refs:usbvision

118 static void usbvision_release(struct usb_usbvision *usbvision);
185 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_model() local
187 usbvision_device_data[usbvision->dev_model].model_string); in show_model()
196 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_hue() local
200 if (usbvision->user) in show_hue()
201 call_all(usbvision, core, g_ctrl, &ctrl); in show_hue()
211 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_contrast() local
215 if (usbvision->user) in show_contrast()
216 call_all(usbvision, core, g_ctrl, &ctrl); in show_contrast()
226 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_brightness() local
230 if (usbvision->user) in show_brightness()
231 call_all(usbvision, core, g_ctrl, &ctrl); in show_brightness()
241 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_saturation() local
245 if (usbvision->user) in show_saturation()
246 call_all(usbvision, core, g_ctrl, &ctrl); in show_saturation()
256 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_streaming() local
258 YES_NO(usbvision->streaming == stream_on ? 1 : 0)); in show_streaming()
267 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_compression() local
269 YES_NO(usbvision->isoc_mode == ISOC_MODE_COMPRESS)); in show_compression()
278 struct usb_usbvision *usbvision = video_get_drvdata(vdev); in show_device_bridge() local
279 return sprintf(buf, "%d\n", usbvision->bridge_type); in show_device_bridge()
347 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_v4l2_open() local
352 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) in usbvision_v4l2_open()
354 usbvision_reset_power_off_timer(usbvision); in usbvision_v4l2_open()
356 if (usbvision->user) in usbvision_v4l2_open()
360 err_code = usbvision_scratch_alloc(usbvision); in usbvision_v4l2_open()
364 err_code = usbvision_decompress_alloc(usbvision); in usbvision_v4l2_open()
368 usbvision_scratch_free(usbvision); in usbvision_v4l2_open()
369 usbvision_decompress_free(usbvision); in usbvision_v4l2_open()
375 if (usbvision->power == 0) { in usbvision_v4l2_open()
376 usbvision_power_on(usbvision); in usbvision_v4l2_open()
377 usbvision_i2c_register(usbvision); in usbvision_v4l2_open()
381 if (!usbvision->initialized) { in usbvision_v4l2_open()
383 setup_ok = usbvision_setup(usbvision, isoc_mode); in usbvision_v4l2_open()
385 usbvision->initialized = 1; in usbvision_v4l2_open()
391 usbvision_begin_streaming(usbvision); in usbvision_v4l2_open()
392 err_code = usbvision_init_isoc(usbvision); in usbvision_v4l2_open()
394 usbvision_muxsel(usbvision, 0); in usbvision_v4l2_open()
395 usbvision->user++; in usbvision_v4l2_open()
398 usbvision_i2c_unregister(usbvision); in usbvision_v4l2_open()
399 usbvision_power_off(usbvision); in usbvision_v4l2_open()
400 usbvision->initialized = 0; in usbvision_v4l2_open()
406 usbvision_empty_framequeues(usbvision); in usbvision_v4l2_open()
407 mutex_unlock(&usbvision->v4l2_lock); in usbvision_v4l2_open()
423 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_v4l2_close() local
427 mutex_lock(&usbvision->v4l2_lock); in usbvision_v4l2_close()
428 usbvision_audio_off(usbvision); in usbvision_v4l2_close()
429 usbvision_restart_isoc(usbvision); in usbvision_v4l2_close()
430 usbvision_stop_isoc(usbvision); in usbvision_v4l2_close()
432 usbvision_decompress_free(usbvision); in usbvision_v4l2_close()
433 usbvision_frames_free(usbvision); in usbvision_v4l2_close()
434 usbvision_empty_framequeues(usbvision); in usbvision_v4l2_close()
435 usbvision_scratch_free(usbvision); in usbvision_v4l2_close()
437 usbvision->user--; in usbvision_v4l2_close()
442 usbvision_set_power_off_timer(usbvision); in usbvision_v4l2_close()
443 usbvision->initialized = 0; in usbvision_v4l2_close()
446 if (usbvision->remove_pending) { in usbvision_v4l2_close()
448 usbvision_release(usbvision); in usbvision_v4l2_close()
451 mutex_unlock(&usbvision->v4l2_lock); in usbvision_v4l2_close()
468 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_register() local
472 err_code = usbvision_read_reg(usbvision, reg->reg&0xff); in vidioc_g_register()
474 dev_err(&usbvision->vdev.dev, in vidioc_g_register()
487 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_register() local
491 err_code = usbvision_write_reg(usbvision, reg->reg & 0xff, reg->val); in vidioc_s_register()
493 dev_err(&usbvision->vdev.dev, in vidioc_s_register()
505 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_querycap() local
509 usbvision_device_data[usbvision->dev_model].model_string, in vidioc_querycap()
511 usb_make_path(usbvision->dev, vc->bus_info, sizeof(vc->bus_info)); in vidioc_querycap()
516 (usbvision->have_tuner ? V4L2_CAP_TUNER : 0); in vidioc_querycap()
524 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_enum_input() local
527 if (vi->index >= usbvision->video_inputs) in vidioc_enum_input()
529 if (usbvision->have_tuner) in vidioc_enum_input()
538 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) { in vidioc_enum_input()
550 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) in vidioc_enum_input()
558 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) in vidioc_enum_input()
575 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_input() local
577 *input = usbvision->ctl_input; in vidioc_g_input()
583 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_input() local
585 if (input >= usbvision->video_inputs) in vidioc_s_input()
588 usbvision_muxsel(usbvision, input); in vidioc_s_input()
589 usbvision_set_input(usbvision); in vidioc_s_input()
590 usbvision_set_output(usbvision, in vidioc_s_input()
591 usbvision->curwidth, in vidioc_s_input()
592 usbvision->curheight); in vidioc_s_input()
598 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_std() local
600 usbvision->tvnorm_id = id; in vidioc_s_std()
602 call_all(usbvision, video, s_std, usbvision->tvnorm_id); in vidioc_s_std()
604 usbvision_muxsel(usbvision, usbvision->ctl_input); in vidioc_s_std()
611 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_std() local
613 *id = usbvision->tvnorm_id; in vidioc_g_std()
620 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_tuner() local
622 if (!usbvision->have_tuner || vt->index) /* Only tuner 0 */ in vidioc_g_tuner()
624 if (usbvision->radio) { in vidioc_g_tuner()
631 call_all(usbvision, tuner, g_tuner, vt); in vidioc_g_tuner()
639 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_tuner() local
642 if (!usbvision->have_tuner || vt->index) in vidioc_s_tuner()
645 call_all(usbvision, tuner, s_tuner, vt); in vidioc_s_tuner()
653 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_frequency() local
656 if (usbvision->radio) in vidioc_g_frequency()
660 freq->frequency = usbvision->freq; in vidioc_g_frequency()
668 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_frequency() local
671 if (!usbvision->have_tuner || freq->tuner) in vidioc_s_frequency()
674 usbvision->freq = freq->frequency; in vidioc_s_frequency()
675 call_all(usbvision, tuner, s_frequency, freq); in vidioc_s_frequency()
682 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_audio() local
684 if (usbvision->radio) in vidioc_g_audio()
703 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_queryctrl() local
705 call_all(usbvision, core, queryctrl, ctrl); in vidioc_queryctrl()
716 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_ctrl() local
718 call_all(usbvision, core, g_ctrl, ctrl); in vidioc_g_ctrl()
725 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_ctrl() local
727 call_all(usbvision, core, s_ctrl, ctrl); in vidioc_s_ctrl()
734 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_reqbufs() local
744 if (usbvision->streaming == stream_on) { in vidioc_reqbufs()
745 ret = usbvision_stream_interrupt(usbvision); in vidioc_reqbufs()
750 usbvision_frames_free(usbvision); in vidioc_reqbufs()
751 usbvision_empty_framequeues(usbvision); in vidioc_reqbufs()
752 vr->count = usbvision_frames_alloc(usbvision, vr->count); in vidioc_reqbufs()
754 usbvision->cur_frame = NULL; in vidioc_reqbufs()
762 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_querybuf() local
767 if (vb->index >= usbvision->num_frames) in vidioc_querybuf()
771 frame = &usbvision->frame[vb->index]; in vidioc_querybuf()
780 vb->m.offset = vb->index * PAGE_ALIGN(usbvision->max_frame_size); in vidioc_querybuf()
784 vb->length = usbvision->curwidth * in vidioc_querybuf()
785 usbvision->curheight * in vidioc_querybuf()
786 usbvision->palette.bytes_per_pixel; in vidioc_querybuf()
787 vb->timestamp = usbvision->frame[vb->index].timestamp; in vidioc_querybuf()
788 vb->sequence = usbvision->frame[vb->index].sequence; in vidioc_querybuf()
794 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_qbuf() local
799 if (vb->index >= usbvision->num_frames) in vidioc_qbuf()
802 frame = &usbvision->frame[vb->index]; in vidioc_qbuf()
815 frame->v4l2_format = usbvision->palette; in vidioc_qbuf()
817 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); in vidioc_qbuf()
818 list_add_tail(&usbvision->frame[vb->index].frame, &usbvision->inqueue); in vidioc_qbuf()
819 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); in vidioc_qbuf()
826 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_dqbuf() local
831 if (list_empty(&(usbvision->outqueue))) { in vidioc_dqbuf()
832 if (usbvision->streaming == stream_idle) in vidioc_dqbuf()
835 (usbvision->wait_frame, in vidioc_dqbuf()
836 !list_empty(&(usbvision->outqueue))); in vidioc_dqbuf()
841 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); in vidioc_dqbuf()
842 f = list_entry(usbvision->outqueue.next, in vidioc_dqbuf()
844 list_del(usbvision->outqueue.next); in vidioc_dqbuf()
845 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); in vidioc_dqbuf()
865 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_streamon() local
867 usbvision->streaming = stream_on; in vidioc_streamon()
868 call_all(usbvision, video, s_stream, 1); in vidioc_streamon()
876 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_streamoff() local
881 if (usbvision->streaming == stream_on) { in vidioc_streamoff()
882 usbvision_stream_interrupt(usbvision); in vidioc_streamoff()
884 call_all(usbvision, video, s_stream, 0); in vidioc_streamoff()
886 usbvision_empty_framequeues(usbvision); in vidioc_streamoff()
904 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_g_fmt_vid_cap() local
905 vf->fmt.pix.width = usbvision->curwidth; in vidioc_g_fmt_vid_cap()
906 vf->fmt.pix.height = usbvision->curheight; in vidioc_g_fmt_vid_cap()
907 vf->fmt.pix.pixelformat = usbvision->palette.format; in vidioc_g_fmt_vid_cap()
909 usbvision->curwidth * usbvision->palette.bytes_per_pixel; in vidioc_g_fmt_vid_cap()
910 vf->fmt.pix.sizeimage = vf->fmt.pix.bytesperline * usbvision->curheight; in vidioc_g_fmt_vid_cap()
920 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_try_fmt_vid_cap() local
927 usbvision->palette = usbvision_v4l2_format[format_idx]; in vidioc_try_fmt_vid_cap()
938 usbvision->palette.bytes_per_pixel; in vidioc_try_fmt_vid_cap()
947 struct usb_usbvision *usbvision = video_drvdata(file); in vidioc_s_fmt_vid_cap() local
955 if (usbvision->streaming == stream_on) { in vidioc_s_fmt_vid_cap()
956 ret = usbvision_stream_interrupt(usbvision); in vidioc_s_fmt_vid_cap()
960 usbvision_frames_free(usbvision); in vidioc_s_fmt_vid_cap()
961 usbvision_empty_framequeues(usbvision); in vidioc_s_fmt_vid_cap()
963 usbvision->cur_frame = NULL; in vidioc_s_fmt_vid_cap()
966 usbvision_set_output(usbvision, vf->fmt.pix.width, vf->fmt.pix.height); in vidioc_s_fmt_vid_cap()
974 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_read() local
983 if (!USBVISION_IS_OPERATIONAL(usbvision) || (buf == NULL)) in usbvision_read()
989 if (!usbvision->num_frames) { in usbvision_read()
992 usbvision_frames_free(usbvision); in usbvision_read()
993 usbvision_empty_framequeues(usbvision); in usbvision_read()
994 usbvision_frames_alloc(usbvision, USBVISION_NUMFRAMES); in usbvision_read()
997 if (usbvision->streaming != stream_on) { in usbvision_read()
999 usbvision->streaming = stream_on; in usbvision_read()
1000 call_all(usbvision, video, s_stream, 1); in usbvision_read()
1005 for (i = 0; i < usbvision->num_frames; i++) { in usbvision_read()
1006 frame = &usbvision->frame[i]; in usbvision_read()
1015 frame->v4l2_format = usbvision->palette; in usbvision_read()
1017 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); in usbvision_read()
1018 list_add_tail(&frame->frame, &usbvision->inqueue); in usbvision_read()
1019 spin_unlock_irqrestore(&usbvision->queue_lock, in usbvision_read()
1025 if (list_empty(&(usbvision->outqueue))) { in usbvision_read()
1030 (usbvision->wait_frame, in usbvision_read()
1031 !list_empty(&(usbvision->outqueue))); in usbvision_read()
1036 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); in usbvision_read()
1037 frame = list_entry(usbvision->outqueue.next, in usbvision_read()
1039 list_del(usbvision->outqueue.next); in usbvision_read()
1040 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); in usbvision_read()
1078 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_v4l2_read() local
1081 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) in usbvision_v4l2_read()
1084 mutex_unlock(&usbvision->v4l2_lock); in usbvision_v4l2_read()
1094 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_mmap() local
1098 if (!USBVISION_IS_OPERATIONAL(usbvision)) in usbvision_mmap()
1102 size != PAGE_ALIGN(usbvision->max_frame_size)) { in usbvision_mmap()
1106 for (i = 0; i < usbvision->num_frames; i++) { in usbvision_mmap()
1107 if (((PAGE_ALIGN(usbvision->max_frame_size)*i) >> PAGE_SHIFT) == in usbvision_mmap()
1111 if (i == usbvision->num_frames) { in usbvision_mmap()
1120 pos = usbvision->frame[i].data; in usbvision_mmap()
1136 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_v4l2_mmap() local
1139 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) in usbvision_v4l2_mmap()
1142 mutex_unlock(&usbvision->v4l2_lock); in usbvision_v4l2_mmap()
1152 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_radio_open() local
1157 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) in usbvision_radio_open()
1159 if (usbvision->user) { in usbvision_radio_open()
1160 dev_err(&usbvision->rdev.dev, in usbvision_radio_open()
1166 usbvision_reset_power_off_timer(usbvision); in usbvision_radio_open()
1167 if (usbvision->power == 0) { in usbvision_radio_open()
1168 usbvision_power_on(usbvision); in usbvision_radio_open()
1169 usbvision_i2c_register(usbvision); in usbvision_radio_open()
1174 err_code = usbvision_set_alternate(usbvision); in usbvision_radio_open()
1176 usbvision->last_error = err_code; in usbvision_radio_open()
1182 usbvision->radio = 1; in usbvision_radio_open()
1183 call_all(usbvision, tuner, s_radio); in usbvision_radio_open()
1184 usbvision_set_audio(usbvision, USBVISION_AUDIO_RADIO); in usbvision_radio_open()
1185 usbvision->user++; in usbvision_radio_open()
1190 usbvision_i2c_unregister(usbvision); in usbvision_radio_open()
1191 usbvision_power_off(usbvision); in usbvision_radio_open()
1192 usbvision->initialized = 0; in usbvision_radio_open()
1196 mutex_unlock(&usbvision->v4l2_lock); in usbvision_radio_open()
1203 struct usb_usbvision *usbvision = video_drvdata(file); in usbvision_radio_close() local
1208 mutex_lock(&usbvision->v4l2_lock); in usbvision_radio_close()
1210 usbvision->iface_alt = 0; in usbvision_radio_close()
1211 err_code = usb_set_interface(usbvision->dev, usbvision->iface, in usbvision_radio_close()
1212 usbvision->iface_alt); in usbvision_radio_close()
1214 usbvision_audio_off(usbvision); in usbvision_radio_close()
1215 usbvision->radio = 0; in usbvision_radio_close()
1216 usbvision->user--; in usbvision_radio_close()
1219 usbvision_set_power_off_timer(usbvision); in usbvision_radio_close()
1220 usbvision->initialized = 0; in usbvision_radio_close()
1223 if (usbvision->remove_pending) { in usbvision_radio_close()
1225 usbvision_release(usbvision); in usbvision_radio_close()
1229 mutex_unlock(&usbvision->v4l2_lock); in usbvision_radio_close()
1320 static void usbvision_vdev_init(struct usb_usbvision *usbvision, in usbvision_vdev_init() argument
1325 struct usb_device *usb_dev = usbvision->dev; in usbvision_vdev_init()
1328 dev_err(&usbvision->dev->dev, in usbvision_vdev_init()
1334 vdev->lock = &usbvision->v4l2_lock; in usbvision_vdev_init()
1335 vdev->v4l2_dev = &usbvision->v4l2_dev; in usbvision_vdev_init()
1337 video_set_drvdata(vdev, usbvision); in usbvision_vdev_init()
1341 static void usbvision_unregister_video(struct usb_usbvision *usbvision) in usbvision_unregister_video() argument
1344 if (video_is_registered(&usbvision->rdev)) { in usbvision_unregister_video()
1346 video_device_node_name(&usbvision->rdev)); in usbvision_unregister_video()
1347 video_unregister_device(&usbvision->rdev); in usbvision_unregister_video()
1351 if (video_is_registered(&usbvision->vdev)) { in usbvision_unregister_video()
1353 video_device_node_name(&usbvision->vdev)); in usbvision_unregister_video()
1354 video_unregister_device(&usbvision->vdev); in usbvision_unregister_video()
1359 static int usbvision_register_video(struct usb_usbvision *usbvision) in usbvision_register_video() argument
1362 usbvision_vdev_init(usbvision, &usbvision->vdev, in usbvision_register_video()
1364 if (video_register_device(&usbvision->vdev, VFL_TYPE_GRABBER, video_nr) < 0) in usbvision_register_video()
1367 usbvision->nr, video_device_node_name(&usbvision->vdev)); in usbvision_register_video()
1370 if (usbvision_device_data[usbvision->dev_model].radio) { in usbvision_register_video()
1372 usbvision_vdev_init(usbvision, &usbvision->rdev, in usbvision_register_video()
1374 if (video_register_device(&usbvision->rdev, VFL_TYPE_RADIO, radio_nr) < 0) in usbvision_register_video()
1377 usbvision->nr, video_device_node_name(&usbvision->rdev)); in usbvision_register_video()
1383 dev_err(&usbvision->dev->dev, in usbvision_register_video()
1385 usbvision->nr); in usbvision_register_video()
1386 usbvision_unregister_video(usbvision); in usbvision_register_video()
1402 struct usb_usbvision *usbvision; in usbvision_alloc() local
1404 usbvision = kzalloc(sizeof(struct usb_usbvision), GFP_KERNEL); in usbvision_alloc()
1405 if (usbvision == NULL) in usbvision_alloc()
1408 usbvision->dev = dev; in usbvision_alloc()
1409 if (v4l2_device_register(&intf->dev, &usbvision->v4l2_dev)) in usbvision_alloc()
1412 mutex_init(&usbvision->v4l2_lock); in usbvision_alloc()
1415 usbvision->ctrl_urb = usb_alloc_urb(USBVISION_URB_FRAMES, GFP_KERNEL); in usbvision_alloc()
1416 if (usbvision->ctrl_urb == NULL) in usbvision_alloc()
1418 init_waitqueue_head(&usbvision->ctrl_urb_wq); in usbvision_alloc()
1420 usbvision_init_power_off_timer(usbvision); in usbvision_alloc()
1422 return usbvision; in usbvision_alloc()
1425 v4l2_device_unregister(&usbvision->v4l2_dev); in usbvision_alloc()
1427 kfree(usbvision); in usbvision_alloc()
1438 static void usbvision_release(struct usb_usbvision *usbvision) in usbvision_release() argument
1442 usbvision_reset_power_off_timer(usbvision); in usbvision_release()
1444 usbvision->initialized = 0; in usbvision_release()
1446 usbvision_remove_sysfs(&usbvision->vdev); in usbvision_release()
1447 usbvision_unregister_video(usbvision); in usbvision_release()
1448 kfree(usbvision->alt_max_pkt_size); in usbvision_release()
1450 usb_free_urb(usbvision->ctrl_urb); in usbvision_release()
1452 v4l2_device_unregister(&usbvision->v4l2_dev); in usbvision_release()
1453 kfree(usbvision); in usbvision_release()
1461 static void usbvision_configure_video(struct usb_usbvision *usbvision) in usbvision_configure_video() argument
1465 if (usbvision == NULL) in usbvision_configure_video()
1468 model = usbvision->dev_model; in usbvision_configure_video()
1469 usbvision->palette = usbvision_v4l2_format[2]; /* V4L2_PIX_FMT_RGB24; */ in usbvision_configure_video()
1471 if (usbvision_device_data[usbvision->dev_model].vin_reg2_override) { in usbvision_configure_video()
1472 usbvision->vin_reg2_preset = in usbvision_configure_video()
1473 usbvision_device_data[usbvision->dev_model].vin_reg2; in usbvision_configure_video()
1475 usbvision->vin_reg2_preset = 0; in usbvision_configure_video()
1478 usbvision->tvnorm_id = usbvision_device_data[model].video_norm; in usbvision_configure_video()
1480 usbvision->video_inputs = usbvision_device_data[model].video_channels; in usbvision_configure_video()
1481 usbvision->ctl_input = 0; in usbvision_configure_video()
1486 usbvision_audio_off(usbvision); in usbvision_configure_video()
1489 usbvision_power_on(usbvision); in usbvision_configure_video()
1490 usbvision_i2c_register(usbvision); in usbvision_configure_video()
1508 struct usb_usbvision *usbvision = NULL; in usbvision_probe() local
1559 usbvision = usbvision_alloc(dev, intf); in usbvision_probe()
1560 if (usbvision == NULL) { in usbvision_probe()
1567 usbvision->bridge_type = BRIDGE_NT1004; in usbvision_probe()
1569 usbvision->bridge_type = BRIDGE_NT1005; in usbvision_probe()
1571 usbvision->bridge_type = BRIDGE_NT1003; in usbvision_probe()
1572 PDEBUG(DBG_PROBE, "bridge_type %d", usbvision->bridge_type); in usbvision_probe()
1577 usbvision->num_alt = uif->num_altsetting; in usbvision_probe()
1578 PDEBUG(DBG_PROBE, "Alternate settings: %i", usbvision->num_alt); in usbvision_probe()
1579 usbvision->alt_max_pkt_size = kmalloc(32 * usbvision->num_alt, GFP_KERNEL); in usbvision_probe()
1580 if (usbvision->alt_max_pkt_size == NULL) { in usbvision_probe()
1586 for (i = 0; i < usbvision->num_alt; i++) { in usbvision_probe()
1589 usbvision->alt_max_pkt_size[i] = in usbvision_probe()
1592 usbvision->alt_max_pkt_size[i]); in usbvision_probe()
1596 usbvision->nr = usbvision_nr++; in usbvision_probe()
1598 usbvision->have_tuner = usbvision_device_data[model].tuner; in usbvision_probe()
1599 if (usbvision->have_tuner) in usbvision_probe()
1600 usbvision->tuner_type = usbvision_device_data[model].tuner_type; in usbvision_probe()
1602 usbvision->dev_model = model; in usbvision_probe()
1603 usbvision->remove_pending = 0; in usbvision_probe()
1604 usbvision->iface = ifnum; in usbvision_probe()
1605 usbvision->iface_alt = 0; in usbvision_probe()
1606 usbvision->video_endp = endpoint->bEndpointAddress; in usbvision_probe()
1607 usbvision->isoc_packet_size = 0; in usbvision_probe()
1608 usbvision->usb_bandwidth = 0; in usbvision_probe()
1609 usbvision->user = 0; in usbvision_probe()
1610 usbvision->streaming = stream_off; in usbvision_probe()
1611 usbvision_configure_video(usbvision); in usbvision_probe()
1612 usbvision_register_video(usbvision); in usbvision_probe()
1614 usbvision_create_sysfs(&usbvision->vdev); in usbvision_probe()
1620 usbvision_release(usbvision); in usbvision_probe()
1637 struct usb_usbvision *usbvision = to_usbvision(usb_get_intfdata(intf)); in usbvision_disconnect() local
1641 if (usbvision == NULL) { in usbvision_disconnect()
1646 mutex_lock(&usbvision->v4l2_lock); in usbvision_disconnect()
1649 usbvision_stop_isoc(usbvision); in usbvision_disconnect()
1651 v4l2_device_disconnect(&usbvision->v4l2_dev); in usbvision_disconnect()
1653 if (usbvision->power) { in usbvision_disconnect()
1654 usbvision_i2c_unregister(usbvision); in usbvision_disconnect()
1655 usbvision_power_off(usbvision); in usbvision_disconnect()
1657 usbvision->remove_pending = 1; /* Now all ISO data will be ignored */ in usbvision_disconnect()
1659 usb_put_dev(usbvision->dev); in usbvision_disconnect()
1660 usbvision->dev = NULL; /* USB device is no more */ in usbvision_disconnect()
1662 mutex_unlock(&usbvision->v4l2_lock); in usbvision_disconnect()
1664 if (usbvision->user) { in usbvision_disconnect()
1667 wake_up_interruptible(&usbvision->wait_frame); in usbvision_disconnect()
1668 wake_up_interruptible(&usbvision->wait_stream); in usbvision_disconnect()
1670 usbvision_release(usbvision); in usbvision_disconnect()