cvs commit: src/sys/dev/usb usbdi.c
Daan Vreeken [PA4DAN]
Danovitsch at vitsch.net
Wed Nov 22 19:46:10 UTC 2006
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
More information about the cvs-src
mailing list