Subject: Re: bus_dmamap_sync not enough ?
To: None <thorpej@wasabisystems.com>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: tech-kern
Date: 02/12/2003 08:44:51
In article <20030211180606.GA13384@yeah-baby.shagadelic.org>
thorpej@wasabisystems.com wrote:

> On Tue, Feb 11, 2003 at 12:35:01PM -0500, Stephan Uphoff wrote:
> 
>  > The i82257 driver ignores this problem and just illegally calls 
>  > bus_dmamap_sync with
>  > BUS_DMASYNC_POSTXXXX flags with full knowledge that the DMA might not have 
>  > completed.
>  > ( When it finds out that the DMA did not complete it just calls bus_dmamap_sync
>  > again with BUS_DMASYNC_PREXXXX op flags)
> 
> This is not illegal... this is an acceptable/intended use of the interface
> (I should know -- I designed the interface and wrote the code that you're
> citing :-)

Off topic, but I guess fxp(4) is the only driver that does
BUS_DMASYNC_PREREAD again after the driver finds out DMA didn't complete.
All (?) other drivers rely on BUS_DMAMAP_COHERENT..
(fxp(4) allocates RXDESCs on mbuf so it cannot use BUS_DMAMAP_COHERENT.)
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp