From owner-cvs-src@FreeBSD.ORG Sun May 28 05:31:27 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4D90E16C39F; Sun, 28 May 2006 05:28:17 +0000 (UTC) (envelope-from iedowse@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A330B43D55; Sun, 28 May 2006 05:28:16 +0000 (GMT) (envelope-from iedowse@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k4S5R9qw076599; Sun, 28 May 2006 05:27:09 GMT (envelope-from iedowse@repoman.freebsd.org) Received: (from iedowse@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k4S5R9Qi076598; Sun, 28 May 2006 05:27:09 GMT (envelope-from iedowse) Message-Id: <200605280527.k4S5R9Qi076598@repoman.freebsd.org> From: Ian Dowse Date: Sun, 28 May 2006 05:27:09 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: 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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 May 2006 05:31:29 -0000 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