cvs commit: src/sys/dev/usb ehci.c ehci_pci.c ohci.c ohci_pci.c ohcireg.h ohcivar.h sl811hs.c sl811hsvar.h uhci.c uhci_pci.c uhcivar.h usb_mem.c usbdi.c usbdivar.h

Scott Long scottl at samsco.org
Sun May 28 08:21:58 PDT 2006


Ian Dowse wrote:

> iedowse     2006-05-28 05:27:09 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/dev/usb          ehci.c ehci_pci.c ohci.c ohci_pci.c 
>                          ohcireg.h ohcivar.h sl811hs.c 
>                          sl811hsvar.h uhci.c uhci_pci.c uhcivar.h 
>                          usb_mem.c usbdi.c usbdivar.h 
>   Log:
>   Use the limited scatter-gather capabilities of ehci, ohci and uhci
>   host controllers to avoid the need to allocate any multi-page
>   physically contiguous memory blocks. This makes it possible to use
>   USB devices reliably on low-memory systems or when memory is too
>   fragmented for contiguous allocations to succeed.
>   
>   The USB subsystem now uses bus_dmamap_load() directly on the buffers
>   supplied by USB peripheral drivers, so this also avoids having to
>   copy data back and forth before and after transfers. The ehci and
>   ohci controllers support scatter/gather as long as the buffer is
>   contiguous in the virtual address space. For uhci the hardware
>   cannot handle a physical address discontinuity within a USB packet,
>   so it is necessary to copy small memory fragments at times.
>   

Excellent work, good job!

Scott



More information about the cvs-src mailing list