mirror of https://gitee.com/openkylin/linux.git
25 lines
1.0 KiB
Plaintext
25 lines
1.0 KiB
Plaintext
|
DMA attributes
|
||
|
==============
|
||
|
|
||
|
This document describes the semantics of the DMA attributes that are
|
||
|
defined in linux/dma-attrs.h.
|
||
|
|
||
|
DMA_ATTR_WRITE_BARRIER
|
||
|
----------------------
|
||
|
|
||
|
DMA_ATTR_WRITE_BARRIER is a (write) barrier attribute for DMA. DMA
|
||
|
to a memory region with the DMA_ATTR_WRITE_BARRIER attribute forces
|
||
|
all pending DMA writes to complete, and thus provides a mechanism to
|
||
|
strictly order DMA from a device across all intervening busses and
|
||
|
bridges. This barrier is not specific to a particular type of
|
||
|
interconnect, it applies to the system as a whole, and so its
|
||
|
implementation must account for the idiosyncracies of the system all
|
||
|
the way from the DMA device to memory.
|
||
|
|
||
|
As an example of a situation where DMA_ATTR_WRITE_BARRIER would be
|
||
|
useful, suppose that a device does a DMA write to indicate that data is
|
||
|
ready and available in memory. The DMA of the "completion indication"
|
||
|
could race with data DMA. Mapping the memory used for completion
|
||
|
indications with DMA_ATTR_WRITE_BARRIER would prevent the race.
|
||
|
|