sam 2008-03-20 16:19:25 UTC
FreeBSD src repository
sys/dev/usb ehci.c ohci.c
Workaround design botch in usb: blindly mixing bus_dma with PIO does not
work on architectures with a write-back cache as the PIO writes end up
in the cache which the sync(BUS_DMASYNC_POSTREAD) in usb_transfer_complete
then discards; compensate in the xfer methods that do PIO by pushing the
writes out of the cache before usb_transfer_complete is called.
This fixes USB on xscale and likely other places.
Sponsored by: hobnob
Reviewed by: cognet, imp
MFC after: 1 month
Revision Changes Path
1.62 +16 -0 src/sys/dev/usb/ehci.c
1.171 +16 -0 src/sys/dev/usb/ohci.c