Re: cxacru usb_bulk_msg() firmware upload 36x slower with OHCI vs.UHCI

From: Simon Arlott
Date: Mon Aug 30 2010 - 17:56:42 EST


On 22/11/09 22:17, Alan Stern wrote:
> On Sun, 22 Nov 2009, Simon Arlott wrote:
>> I've tried sending 64 and 2048 bytes at a time, with the same speed
>> (4ms and 128ms), so that time is just a coincidence.
>
> These timings indicate that one packet is getting transmitted every 4
> frames. In theory the slowness could be caused by either the host
> controller or the device, but you'd need a bus analyzer to tell which.
> Certainly there's no good reason for the controller to run that slowly,
> but there's also no good reason for the device to run that slowly only
> with OHCI.
>
>> Submitting it all as multiple asynchronous URBs in one go doesn't help
>> either. I've been trying to get EHCI working too (via two different
>> high speed hubs) but that's not working even if I add long delays.
>
> Have you tried using a non-high-speed hub, or forcing the port into
> full speed and adding a hub? That is, does the presence of a hub with
> OHCI make any difference?

Something has changed in the kernel between the last time I looked at
this issue and now. On both my OHCI hardware the firmware initialisation
runs at the same speed as UHCI did. It's even working via a hub on EHCI.

This may have something to do with cxacru trying to use an interrupt
transfer for a bulk endpoint, which now returns an error if
CONFIG_USB_DEBUG is enabled...

Commit f661c6f8c67bd55e93348f160d590ff9edf08904 is in urgent need of a
printk(); a patch follows this email.

--
Simon Arlott
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/