Re: Does USB isochronous mode work on EHCI port?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/04/2013 02:20 PM, Gary Thomas wrote:
> 
> 
> On Thursday, January 3, 2013 9:21:19 AM UTC-7, Felipe Balbi wrote:
> 
>     Hi,
> 
>     On Wednesday, January 2, 2013 10:44:50 PM UTC+2, Gary Thomas wrote:
> 
>         I have a video adapter attached to my EHCI port which runs full
>         speed (480Mb/s) isochronous mode.  Sadly, I never get any data
>         from the device (it uses the EM28xx driver).
>         This same device + driver works fine on my laptop and from what
>         I can tell looking at the module debug, it's failing when
>         waiting for the ISOC frame data to arrive.
> 
>         Should this work?  I recall lots of discussion in the past about
>         ISOC transfers not working on certain OMAP devices...
> 
> 
>     which kernel are you using ? Have you tested mainline kernel ?
> 
> 
> I'm using the TI/Ubuntu kernel ( ti-ubuntu-3.4.0-1489.17)
> 
> Using the mainline would be hard as there is a lot in this kernel that
> isn't in the mainline.
> 

+Xavier, Nicolas, Herve

Finally got a chance to try this out. I used uvccapture and luvcview for
my tests.

There is a problem with the TI/Ubuntu kernel. uvccapture works but
luvcview segfaults after a few VIDEOC_QBUF operations (see log in the
end). I don't see anything wrong with the USB traces though.

After disabling all CONFIG_VIDEOBUF options in kernel config (except
CONFIG_VIDEOBUF2_CORE=m, CONFIG_VIDEOBUF2_MEMOPS=m,
CONFIG_VIDEOBUF2_VMALLOC=m) and recompiling the kernel, I could get
luvcview to work.

So the problem is not in USB EHCI but in the DMA/DMAbuf implementation
of VIDEOBUF.

cheers,
-roger

--log--
> luvcview 
> luvcview 0.2.6
> 
> init kbd.
> SDL information:[   37.955749] uvcvideo: uvc_v4l2_open
> 
>   Video driver: fbcon
>   Hardware surfaces are available (3072k video memory)
> Device information:
>   Device path:  /dev/video0
> [   38.105346] usb 1-1.3: reset high-speed USB device number 4 using ehci-omap
> [   38.439178] uvcvideo: Resuming interface 0
> [   38.443542] uvcvideo: Resuming interface 1
> [   38.456970] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
> [   38.462310] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_FMT)
> [   38.467407] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_PARM)
> [   38.472717] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
> [   38.478057] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.484100] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.490112] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.496124] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.502075] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.508117] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.514129] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.520141] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.526092] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.532135] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.538146] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.544158] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.550140] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.556152] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.562164] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.568328] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.574340] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.580291] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.586334] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.592346] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.598358] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
> [   38.603698] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.609710] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.615753] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.621765] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.627716] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.633758] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.639770] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.645782] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.651763] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.657806] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.663940] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.669952] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.675964] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.681915] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.687927] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.693939] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.699951] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.705932] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.711975] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.717987] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
> [   38.723999] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
> [   38.729309] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
> [   38.734741] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_INPUT)
> [   38.740051] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUMINPUT)
> [   38.746154] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
> [   38.751617] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
> Stream settings:[   38.757171] uvcvideo: uvc_v4l2_ioctl(
> VIDIOC_ENUM_FMT)
> [   38.764068] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
>   Frame format: [   38.769500] uvcvideo: uvc_v4l2_ioctl(MJPG
> VIDIOC_TRY_FMT)
> [   38.776641] uvcvideo: Trying format 0x47504a4d (MJPG): 640x480.
> [   38.782928] uvcvideo: Using default frame interval 33333.3 us (30.0 fps).
> [   38.813446] uvcvideo: uvc_v4l2_ioctl(VIDIOC_S_FMT)
> [   38.818542] uvcvideo: Trying format 0x47504a4d (MJPG): 640x480.
> [   38.824859] uvcvideo: Using default frame interval 33333.3 us (30.0 fps).
> [   38.855560] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_PARM)
>   Frame size:   [   38.860748] uvcvideo: uvc_v4l2_ioctl(640x480
> VIDIOC_S_PARM)
> [   38.868072] uvcvideo: Setting frame interval to 1/30 (333333).
> [   38.897796] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_PARM)
>   Frame rate:   [   38.903045] uvcvideo: uvc_v4l2_ioctl(30 fps
> VIDIOC_REQBUFS)
> [   38.911071] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYBUF)
> [   38.916442] uvcvideo: uvc_v4l2_mmap
> [   38.920501] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYBUF)
> [   38.925903] uvcvideo: uvc_v4l2_mmap
> [   38.930023] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYBUF)
> [   38.935424] uvcvideo: uvc_v4l2_mmap
> [   38.939514] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYBUF)
> [   38.944915] uvcvideo: uvc_v4l2_mmap
> [   38.949005] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
> [   38.953979] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
> [   38.958984] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
> [   38.963958] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
> [   39.029357] uvcvideo: uvc_v4l2_release
> Segmentation fault


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux