| .. | .. |
|---|
| 10 | 10 | |
|---|
| 11 | 11 | The big picture is that USB drivers can continue to ignore most DMA issues, |
|---|
| 12 | 12 | though they still must provide DMA-ready buffers (see |
|---|
| 13 | | -``Documentation/DMA-API-HOWTO.txt``). That's how they've worked through |
|---|
| 13 | +:doc:`/core-api/dma-api-howto`). That's how they've worked through |
|---|
| 14 | 14 | the 2.4 (and earlier) kernels, or they can now be DMA-aware. |
|---|
| 15 | 15 | |
|---|
| 16 | 16 | DMA-aware usb drivers: |
|---|
| .. | .. |
|---|
| 60 | 60 | force a consistent memory access ordering by using memory barriers. It's |
|---|
| 61 | 61 | not using a streaming DMA mapping, so it's good for small transfers on |
|---|
| 62 | 62 | systems where the I/O would otherwise thrash an IOMMU mapping. (See |
|---|
| 63 | | - ``Documentation/DMA-API-HOWTO.txt`` for definitions of "coherent" and |
|---|
| 63 | + :doc:`/core-api/dma-api-howto` for definitions of "coherent" and |
|---|
| 64 | 64 | "streaming" DMA mappings.) |
|---|
| 65 | 65 | |
|---|
| 66 | 66 | Asking for 1/Nth of a page (as well as asking for N pages) is reasonably |
|---|
| .. | .. |
|---|
| 91 | 91 | Existing buffers aren't usable for DMA without first being mapped into the |
|---|
| 92 | 92 | DMA address space of the device. However, most buffers passed to your |
|---|
| 93 | 93 | driver can safely be used with such DMA mapping. (See the first section |
|---|
| 94 | | -of Documentation/DMA-API-HOWTO.txt, titled "What memory is DMA-able?") |
|---|
| 94 | +of :doc:`/core-api/dma-api-howto`, titled "What memory is DMA-able?") |
|---|
| 95 | 95 | |
|---|
| 96 | 96 | - When you're using scatterlists, you can map everything at once. On some |
|---|
| 97 | 97 | systems, this kicks in an IOMMU and turns the scatterlists into single |
|---|