Date: Wed, 22 Nov 2006 20:45:54 +0100 From: "Daan Vreeken [PA4DAN]" <Danovitsch@vitsch.net> To: Warner Losh <imp@freebsd.org> Cc: cvs-src@freebsd.org Subject: Re: cvs commit: src/sys/dev/usb usbdi.c Message-ID: <200611222045.54325.Danovitsch@vitsch.net> In-Reply-To: <200611221756.kAMHuapt020379@repoman.freebsd.org> References: <200611221756.kAMHuapt020379@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 22 November 2006 18:56, Warner Losh wrote: > imp 2006-11-22 17:56:36 UTC > > FreeBSD src repository > > Modified files: > sys/dev/usb usbdi.c > Log: > Fix coherency issue. From submitter: > > I have been debugging the usb problems some more. Your were > right in your assumption (thanks for the pointer) about lack > of calls to bus_dmamap_sync(). In usbdi.c bus_dmamap_sync() > does get used for transfers that move data from PC to USB and > it is used for transfers that move data from USB to PC. But > someone forgot that control transfers consist of possibly two > data chunks : the request itself and optionally a buffer of > data that should be transfered to or from the USB device. On > requests to the control endpoint without additional data > bus_dmamap_sync() didn't get called. For some reason my first > tests with umass worked (due to enough cache poisening I > guess). The attached patch adds a call to bus_dmamap_sync() > to usbdi.c and now all devices I have tried work out of the > box. I have successfully transfered large files using the > if_axe driver and I have mounted several different umass > devices. > > submitted by: Daan Vreeken > sponsored by: Vitsch Electronics > reviewed by: cognet@ Thanks! -- Daan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611222045.54325.Danovitsch>