UVC streaming is failed on linux if using usb 3 hub.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi

We implemented uvc streaming application using our sensor on linux in super speed mode on cx3. There are also 2 usb virtual com ports. Everything is working fine while the cx3 is connected to super speed port on PC. We want to use a number of sensors so we connect the cx3 through usb 3 hub. The streaming is always failed after a short time. We get CY_U3P_ERROR_INVALID_SEQUENCE error in commit buffer and application reset doesn't help, we immediately get the same error after DMA channels recreate and reset of state machine. It happens only if we use hub. Are there a known problems using hubs with cx3? May be we should use specific hub model?

Thanks,

Roman Tcharny

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

We have seen such issues with a Linux system. If the USB connection is not proper or the hardware does not guarantee a proper USB throughput, you will see commit buffer failures. This occurs when the host is slow or there are USB retries and host is unable to keep up with the bandwidth. At some point of time all buffers in CX3 are filled and committing one more buffer is not possible as Host needs to consume previous buffers. This leads to a commit buffer failure.

Now once this happens, Linux system stops sending any IN tokens and it is unable to recover. If you try in Windows, the host recovers by discarding one frame and again starts issuing IN tokens to seamlessly stream video data. Check with Windows 10 machine and your device would recover with the Hub.

Regards,

Savan

View solution in original post

0 Likes
2 Replies
Anonymous
Not applicable

Hi,

Does any other UVC device work with the hub? If not, the issue is probably with the hub. Please check it to narrow down the cause of the issue. If the hub is a Cypress product, please post it as an appropriate forum section.

Regards,

- Madhu Sudhan

0 Likes
Anonymous
Not applicable

Hi,

We have seen such issues with a Linux system. If the USB connection is not proper or the hardware does not guarantee a proper USB throughput, you will see commit buffer failures. This occurs when the host is slow or there are USB retries and host is unable to keep up with the bandwidth. At some point of time all buffers in CX3 are filled and committing one more buffer is not possible as Host needs to consume previous buffers. This leads to a commit buffer failure.

Now once this happens, Linux system stops sending any IN tokens and it is unable to recover. If you try in Windows, the host recovers by discarding one frame and again starts issuing IN tokens to seamlessly stream video data. Check with Windows 10 machine and your device would recover with the Hub.

Regards,

Savan

0 Likes