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

Reply via email to