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
Ian Dowse
iedowse at FreeBSD.org
Sat May 27 22:31:29 PDT 2006
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.
Revision Changes Path
1.46 +64 -77 src/sys/dev/usb/ehci.c
1.22 +30 -0 src/sys/dev/usb/ehci_pci.c
1.161 +240 -183 src/sys/dev/usb/ohci.c
1.47 +33 -1 src/sys/dev/usb/ohci_pci.c
1.23 +2 -1 src/sys/dev/usb/ohcireg.h
1.43 +2 -3 src/sys/dev/usb/ohcivar.h
1.3 +7 -6 src/sys/dev/usb/sl811hs.c
1.2 +0 -1 src/sys/dev/usb/sl811hsvar.h
1.168 +219 -45 src/sys/dev/usb/uhci.c
1.58 +29 -0 src/sys/dev/usb/uhci_pci.c
1.41 +3 -0 src/sys/dev/usb/uhcivar.h
1.9 +1 -1 src/sys/dev/usb/usb_mem.c
1.94 +168 -58 src/sys/dev/usb/usbdi.c
1.45 +13 -2 src/sys/dev/usb/usbdivar.h
More information about the cvs-src
mailing list