Rafal Jaworowski wrote:
> Author: raj
> Date: Wed Aug 19 14:39:08 2009
> New Revision: 196380
> URL: http://svn.freebsd.org/changeset/base/196380
> Fix USB cache sync operations for platforms with non-coherent DMA.
> - usb_pc_cpu_invalidate() is called between [consecutive] reads from a device,
> so a sequence of BUS_DMASYNC_POSTREAD and _PREREAD should be used. Note we
> cannot use or'ed shorthand ( _POSTREAD | _PREREAD) for BUS_DMASYNC flags, as
> the low level bus dma sync operation is implementation dependent and we
> cannot assume the required order of operations to be guaranteed.
> - usb_pc_cpu_flush() is called before writing to a device, so
> BUS_DMASYNC_PREWRITE should be used.
> Submitted by: Grzegorz Bernacki
> Reviewed by: HPS, arm@, usb@ ML
> Tested by: HPS, Mike Tancsa
> Approved by: re (kib)
> Obtained from: Semihalf
Is this different from the patch I tested on Gateworks 2358 boards which
didn't completely resolve problems?