Re: How can I limit full speed transfer to 64 bytes per ms?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 15 Dec 2010, Sergej Pupykin wrote:

> At Tue, 14 Dec 2010 12:54:54 -0500 (EST),
> Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > 
> > It would be very interesting to test your device under Windows and
> > Linux on a computer with an OHCI controller instead of UHCI.  With
> > OHCI, there is no way to tell the hardware to use slow transfers.
> 
> Here are OHCI sniffs:
> http://arch.pp.ru/~sergej/files/usb-dumps/usb-dumps.ohci.tar.gz
> 
> and unpacked:
> http://arch.pp.ru/~sergej/files/usb-dumps/usb-dumps.ohci/
> 
> On windows CSR based tool was used, on linux - dfu-util.
> 
> OHCI results are interesting: it works with OHCI pcmcia controller:
> 
> 02:00.1 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI])
> 	Subsystem: Ratoc System Inc Device 0035
> 	Flags: bus master, medium devsel, latency 64, IRQ 18
> 	Memory at 30001000 (32-bit, non-prefetchable) [size=4K]
> 	Capabilities: [40] Power Management version 2
> 	Kernel driver in use: ohci_hcd
> 	Kernel modules: ohci-hcd

The timings show that the NEC controller runs slower than the SiS 
controller.  Probably because it has to go over the PCMCIA bus.

> but does not with:
> 
> 00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f) (prog-if 10 [OHCI])
> 	Subsystem: ASUSTeK Computer Inc. Device 807a
> 	Flags: bus master, medium devsel, latency 32, IRQ 9
> 	Memory at d6800000 (32-bit, non-prefetchable) [size=4K]
> 	Kernel driver in use: ohci_hcd
> 	Kernel modules: ohci-hcd

This clearly indicates that there is a bug in the device, since it 
doesn't always work even with Windows.

> Also it works through external USB HUB.

If the hub runs at high speed then it changes everything, because then 
the timings are determined by the hub.  But if the hub runs at full 
speed then the timings are determined by the host controller, in which 
case the hub shouldn't make any difference.

> I analized logs and found that problems start on speed 64bytes packet
> per ~0.000055sec.

Hmm.  There are many places in the ohci-windows-sis log where the 
interval is <= 53 us but the device keeps on working.

> Visible difference between
> - ich4 uhci
> - ich4 uhci with fixed driver
> - nec ohci
> - sis ohci
> - sis ohci + external hub
> is transfer speed.

Yes.  Given that this is a bug in the device, I think the workaround 
you've already got is the best you could hope for.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux