cvs commit: src/sys/dev/usb ehci.c ohci.c

[ Available lists | Index of cvs-src | Month of Mar 2008 | Week of 20 Mar 2008 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Sam Leffler <sam@FreeBSD.org>
Date
20 Mar 2008 16:19:26
Subject
cvs commit: src/sys/dev/usb ehci.c ohci.c
Message-ID
200803201619.m2KGJQr7033985@repoman.freebsd.org


[ Hide this part ]
sam         2008-03-20 16:19:25 UTC

FreeBSD src repository

Modified files:
sys/dev/usb ehci.c ohci.c
Log:
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


Elapsed time: 0.236 seconds