Attached is a patch against the 2.5.8 hub driver, making it provide the correct polling interval. Something like this needs to go into 2.5 (and also 2.4), and this works fine.
BUT: I'm wondering if maybe such logic shouldn't be put into usb_fill_int_urb() instead, to reduce the number of mistakes in device drivers. I've got to suspect most developers won't remember that polling intervals use a different encoding in endpoint descriptors for high speed devices. That would mean changing the "interval" parameter to that routine so it's what endpoint->bInterval contains, rather than a polling interval measured in frames (for full and low speed transfers) or microframes (for high speed ones). So the question: Given this patch and an equivalent one that pushes the "which bInterval encoding" logic into <linux/usb.h> and usb_fill_int_urb(), which should go into 2.5? 2.4? - Dave
hub-0420.patch
Description: Binary data