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