I have a UVC camera that will stall the control pipe when I try to access the extension unit. At first I thought this was a firmware issue because the kernel docs say that a device can't stall its control pipe. I did a little more digging and found that it isn't that absolute. The USB spec suggests that control pipe shouldn't but it can if it wants to raise a protocol error. I looked at the UVC source code in the kernel and found that it doesn't clear the stall when it gets EPIPE. I modified the UVC driver to call usb_clear_halt() after it gets EPIPE and this seems to resolve the issues that I had with my device. I'm thinking of submitting my fix back to the kernel maintainers but thought I'd post here first. Is there anything that I have overlooked?
Jacob Fehr SMART Technologies ULC
_______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
