On 11/02/15 13:22, Sebastian Huber wrote:
On 30/10/15 15:53, Hans Petter Selasky wrote:
On 10/30/15 14:38, Sebastian Huber wrote:
Tested on an Altera Cyclone V development kit. Here the controller has
16 host channels. This change significantly reduced the time spent in
the dwc_otg_interrupt_poll_locked() function.
Thank you for your optimisation patch:
After an update of the USB stack from 9.3 to current it worked out of
the box. Thanks a lot for your great USB stack!
It seems that this driver doesn't support DMA. I see a quite high CPU
utilization in this area:
That's sounds right.
Adding DMA support is some extra work, because there are many USB
endpoint combinations that needs to work. Also HOST and DEVICE mode
needs to be tested. One problem with the DWC OTG is that you cannot
switch individual so-called channels into DMA mode. It is either all-DMA
or no DMA. That makes it more difficult to add. If you want to add DMA
support I will be happy to add patches to the tree for that, but the
patches must be such that it is possible to select DMA or PIO mode.
For some kinds of USB traffic, like USB keyboards, USB audio and USB
mice, PIO mode is optimal, because the amount of data transferred per
interrupt is minimal. For mass storage and ethernet you would like to
have DMA support. Or have a dedicated CPU for USB.
Possibly the next USB controller driver to be added to FreeBSD is the
DWC OTG v3. It is an all-DMA based controller, which also supports
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"