-
David Brownell authored
This patch: - Makes "usbnet" pay attention to device descriptors in the most common cases; there's less need to embed device hardware details. This lets it work with high speed devices, and should help interop with the newer ARM/PXA kernels "usb-eth" (same vid/pid, but different endpoints). - Adds some new CDC Ethernet support, which is partly enabled: the Zaurus SL-5500 code uses it, with the current FRAMING_Z flag overriding normal CDC framing on-the-wire. (Most of the other "minidrivers" use CDC framing, except Net1080 and GeneSys.) - Merges a patch from Johannes to recover from some net1080 framing errors by flushing the fifos ... the chip gets into a wierd mode, this makes the link more robust. (Thanks!) - Gets rid of a family of cpu/logfile saturating loops that could show up in early stages of disconnect processing, while we're getting rx/tx errors continuously since khubd hasn't tried to disconnect() us yet. (Pathological case, with lots of logging enabled: khubd never gets scheduled!) - Uses deeper queues at high speed, so the host controllers can stay busy transferring packets even when IRQs get held off for several milliseconds. That pipelining gives better throughput too -- 4x more with one device, says TTCP. With the possible exception of multicast support, this code should be a fine replacement to "cdc-ether" ... certainly its faster for high speed devices. Some later patch should likely do a switch-over. (Which would also resolve a Zaurus hotplugging bug: "cdc-ether" doesn't blacklist it.)
eca765b0