On Fri, 2008-08-01 at 14:22 +0100, Tim Foster wrote:
> Btw. in terms of getting the webcam to work, I did get the gstreamer
> v4l2 plugin to compile on Solaris[4], but can't seem to work out how to
> get anything useful from the webcam itself:
<snip>
> - it's a standard usbvc so it /should/ work I think - anyone know
> anything about the usbvc driver? I'd be happy to help debug this...
- and by that, I mean I can supply truss output (like the below, which
is the output of:
$ truss -t ioctl gst-launch v4l2src !
video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace
and the corresponding fbt trace into the usbvc driver )
is this of any use to anyone?
cheers,
tim
-------------- next part --------------
Script started on 1 August 2008 14:31:16 GMT
timf at beag[231] script rm typescriptscript
,width=320,height=240 ! ffmpegcolorspace
<
ioctl(3, TCGETA, 0x0804759C) Err#25 ENOTTY
Setting pipeline to PAUSED ...
ioctl(6, (('@'<<24)|('h'<<16)|('V'<<8)|0), 0x0806AD10) = 0
ioctl(6, _IOWRN('V', 26, 80), 0x080471EC) = 0
ioctl(6, _IOWRN('V', 26, 80), 0x080471EC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 25, 64), 0x0804714C) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IOWRN('V', 36, 68), 0x080470FC) Err#22 EINVAL
ioctl(6, _IORN('V', 23, 8), 0x08047294) Err#22 EINVAL
ioctl(6, _IORN('V', 38, 4), 0x0804726C) = 0
ioctl(6, _IOWRN('V', 2, 64), 0x080E2630) = 0
ioctl(6, _IOWRN('V', 2, 64), 0x0807B588) = 0
ioctl(6, _IOWRN('V', 2, 64), 0x0807B5D0) Err#22 EINVAL
ioctl(6, _IOWRN('V', 64, 208), 0x080470F0) Err#25 ENOTTY
ioctl(6, _IOWRN('V', 5, 208), 0x080470F0) Err#14 EFAULT
ioctl(6, _IOWRN('V', 64, 208), 0x080470F0) Err#25 ENOTTY
ioctl(6, _IOWRN('V', 5, 208), 0x080470F0) Err#14 EFAULT
(gst-launch-0.10:1000): GStreamer-WARNING **: pad v4l2src0:src returned caps
which are not a real subset of its template caps
ioctl(6, _IOWRN('V', 4, 208), 0x08047100) = 0
ioctl(6, _IOWRN('V', 5, 208), 0x08047100) Err#14 EFAULT
Pipeline is live and does not need PREROLL ...
/1: ioctl(1, TCGETA, 0x0804761C) = 0
ERROR: from element /pipeline0/v4l2src0: Device '/dev/video0' cannot capture at
320x240
Additional debug info:
v4l2src_calls.c(1264): gst_v4l2src_set_capture (): /pipeline0/v4l2src0:
Call to S_FMT failed for YUYV @ 320x240: Bad address
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...
timf at beag[232]
script done on 1 August 2008 14:31:20 GMT
-------------- next part --------------
timf at beag:~# dtrace -Fn fbt:usbvc::entry,fbt:usbvc::return
dtrace: description 'fbt:usbvc::entry,fbt:usbvc::return' matched 154 probes
CPU FUNCTION
0 -> usbvc_open
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_pm_busy_component
0 <- usbvc_pm_busy_component
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_open
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_query_ctrl
0 -> usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_match_ctrl
0 <- usbvc_v4l2_query_ctrl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_set_format
0 -> usbvc_match_image_size
0 <- usbvc_match_image_size
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 <- usbvc_v4l2_set_format
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_set_format
0 -> usbvc_match_image_size
0 <- usbvc_match_image_size
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 <- usbvc_v4l2_set_format
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_get_format
0 <- usbvc_v4l2_get_format
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_ioctl
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_v4l2_ioctl
0 -> usbvc_v4l2_set_format
0 -> usbvc_match_image_size
0 <- usbvc_match_image_size
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 -> usbvc_vs_set_probe_commit
0 <- usbvc_vs_set_probe_commit
0 -> usbvc_vs_get_probe
0 <- usbvc_vs_get_probe
0 <- usbvc_v4l2_set_format
0 <- usbvc_v4l2_ioctl
0 -> usbvc_release_access
0 <- usbvc_release_access
0 <- usbvc_ioctl
0 -> usbvc_close
0 -> usbvc_serialize_access
0 <- usbvc_serialize_access
0 -> usbvc_close_isoc_pipe
0 <- usbvc_close_isoc_pipe
0 -> usbvc_free_read_bufs
0 -> usbvc_free_read_buf
0 <- usbvc_free_read_buf
0 <- usbvc_free_read_bufs
0 -> usbvc_free_map_bufs
0 <- usbvc_free_map_bufs
0 -> usbvc_release_access
0 <- usbvc_release_access
0 -> usbvc_pm_idle_component
0 <- usbvc_pm_idle_component
0 <- usbvc_close