I've been trying to use usbvideo for the webcam driver I'm writing, but have come up with a problem I'm hoping someone here will have an idea how to fix: The reverse engineering of the camera is not complete enough to determine if the camera supports isochronous usb transfers for video streaming. I expected to just send frame requests one after another, however usbvideo_startDataPump is pretty particular about what kind of data it expects. It works pretty well for the ibmcam stuff, but I noticed that the ultracam driver (the only other driver in my 2.4.17 tree I noticed using usbvideo) doesn't seem to support the streaming video at all (I'm guessing because the driver authors weren't sure how to stream the video, or knew that you couldn't stream video with isoc transfers). I don't really want to discard usbvideo, because it does most of my work for me (and has a nifty hex character overlay onto video function). I'd update usbvideo so that it supports serial frame grabbing, but I don't have an ibm camera to make sure I don't break the existing driver using usbvideo. So, does anybody have a good idea on how I can use usbvideo and support v4l streaming without isoc? The hardware I have now does bulk transfers for individual frames, can I do something similar to the isoc code where the usb core calls an interrupt function after the bulk transfer has finished transferring? I also noticed in the 2.4.17 version of usbvideo.c there is a text reference to IBM cameras in an error message on line 1065 and a hardcoded referenced to CPIA hardware on line 1096 both in usbvideo_AllocateDevice. (Sorry if these have already been corrected or are correct as is, I rarely keep up on the interrim patches)