提交 5872fb94 编写于 作者: R Randy Dunlap 提交者: Linus Torvalds

Documentation: move DMA-mapping.txt to Doc/PCI/

Move DMA-mapping.txt to Documentation/PCI/.

DMA-mapping.txt was supposed to be moved from Documentation/ to
Documentation/PCI/.  The 00-INDEX files in those two directories
were updated, along with a few other text files, but the file
itself somehow escaped being moved, so move it and update more
text files and source files with its new location.
Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
cc:	Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 ca493d17
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
This document describes the DMA API. For a more gentle introduction This document describes the DMA API. For a more gentle introduction
phrased in terms of the pci_ equivalents (and actual examples) see phrased in terms of the pci_ equivalents (and actual examples) see
DMA-mapping.txt Documentation/PCI/PCI-DMA-mapping.txt.
This API is split into two pieces. Part I describes the API and the This API is split into two pieces. Part I describes the API and the
corresponding pci_ API. Part II describes the extensions to the API corresponding pci_ API. Part II describes the extensions to the API
......
[ NOTE: The virt_to_bus() and bus_to_virt() functions have been [ NOTE: The virt_to_bus() and bus_to_virt() functions have been
superseded by the functionality provided by the PCI DMA superseded by the functionality provided by the PCI DMA interface
interface (see Documentation/DMA-mapping.txt). They continue (see Documentation/PCI/PCI-DMA-mapping.txt). They continue
to be documented below for historical purposes, but new code to be documented below for historical purposes, but new code
must not use them. --davidm 00/12/12 ] must not use them. --davidm 00/12/12 ]
......
...@@ -186,8 +186,9 @@ a virtual address mapping (unlike the earlier scheme of virtual address ...@@ -186,8 +186,9 @@ a virtual address mapping (unlike the earlier scheme of virtual address
do not have a corresponding kernel virtual address space mapping) and do not have a corresponding kernel virtual address space mapping) and
low-memory pages. low-memory pages.
Note: Please refer to DMA-mapping.txt for a discussion on PCI high mem DMA Note: Please refer to Documentation/PCI/PCI-DMA-mapping.txt for a discussion
aspects and mapping of scatter gather lists, and support for 64 bit PCI. on PCI high mem DMA aspects and mapping of scatter gather lists, and support
for 64 bit PCI.
Special handling is required only for cases where i/o needs to happen on Special handling is required only for cases where i/o needs to happen on
pages at physical memory addresses beyond what the device can support. In these pages at physical memory addresses beyond what the device can support. In these
......
...@@ -6,8 +6,9 @@ in the kernel usb programming guide (kerneldoc, from the source code). ...@@ -6,8 +6,9 @@ in the kernel usb programming guide (kerneldoc, from the source code).
API OVERVIEW API OVERVIEW
The big picture is that USB drivers can continue to ignore most DMA issues, The big picture is that USB drivers can continue to ignore most DMA issues,
though they still must provide DMA-ready buffers (see DMA-mapping.txt). though they still must provide DMA-ready buffers (see
That's how they've worked through the 2.4 (and earlier) kernels. Documentation/PCI/PCI-DMA-mapping.txt). That's how they've worked through
the 2.4 (and earlier) kernels.
OR: they can now be DMA-aware. OR: they can now be DMA-aware.
...@@ -62,8 +63,8 @@ and effects like cache-trashing can impose subtle penalties. ...@@ -62,8 +63,8 @@ and effects like cache-trashing can impose subtle penalties.
force a consistent memory access ordering by using memory barriers. It's force a consistent memory access ordering by using memory barriers. It's
not using a streaming DMA mapping, so it's good for small transfers on not using a streaming DMA mapping, so it's good for small transfers on
systems where the I/O would otherwise thrash an IOMMU mapping. (See systems where the I/O would otherwise thrash an IOMMU mapping. (See
Documentation/DMA-mapping.txt for definitions of "coherent" and "streaming" Documentation/PCI/PCI-DMA-mapping.txt for definitions of "coherent" and
DMA mappings.) "streaming" DMA mappings.)
Asking for 1/Nth of a page (as well as asking for N pages) is reasonably Asking for 1/Nth of a page (as well as asking for N pages) is reasonably
space-efficient. space-efficient.
...@@ -93,7 +94,7 @@ WORKING WITH EXISTING BUFFERS ...@@ -93,7 +94,7 @@ WORKING WITH EXISTING BUFFERS
Existing buffers aren't usable for DMA without first being mapped into the Existing buffers aren't usable for DMA without first being mapped into the
DMA address space of the device. However, most buffers passed to your DMA address space of the device. However, most buffers passed to your
driver can safely be used with such DMA mapping. (See the first section driver can safely be used with such DMA mapping. (See the first section
of DMA-mapping.txt, titled "What memory is DMA-able?") of Documentation/PCI/PCI-DMA-mapping.txt, titled "What memory is DMA-able?")
- When you're using scatterlists, you can map everything at once. On some - When you're using scatterlists, you can map everything at once. On some
systems, this kicks in an IOMMU and turns the scatterlists into single systems, this kicks in an IOMMU and turns the scatterlists into single
......
...@@ -906,7 +906,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) ...@@ -906,7 +906,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
* @dir: R/W or both. * @dir: R/W or both.
* @attrs: optional dma attributes * @attrs: optional dma attributes
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
dma_addr_t dma_addr_t
sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir, sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir,
...@@ -1024,7 +1024,7 @@ sba_mark_clean(struct ioc *ioc, dma_addr_t iova, size_t size) ...@@ -1024,7 +1024,7 @@ sba_mark_clean(struct ioc *ioc, dma_addr_t iova, size_t size)
* @dir: R/W or both. * @dir: R/W or both.
* @attrs: optional dma attributes * @attrs: optional dma attributes
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size,
int dir, struct dma_attrs *attrs) int dir, struct dma_attrs *attrs)
...@@ -1102,7 +1102,7 @@ EXPORT_SYMBOL(sba_unmap_single_attrs); ...@@ -1102,7 +1102,7 @@ EXPORT_SYMBOL(sba_unmap_single_attrs);
* @size: number of bytes mapped in driver buffer. * @size: number of bytes mapped in driver buffer.
* @dma_handle: IOVA of new buffer. * @dma_handle: IOVA of new buffer.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
void * void *
sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags) sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags)
...@@ -1165,7 +1165,7 @@ sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp ...@@ -1165,7 +1165,7 @@ sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp
* @vaddr: virtual address IOVA of "consistent" buffer. * @vaddr: virtual address IOVA of "consistent" buffer.
* @dma_handler: IO virtual address of "consistent" buffer. * @dma_handler: IO virtual address of "consistent" buffer.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle) void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle)
{ {
...@@ -1420,7 +1420,7 @@ sba_coalesce_chunks(struct ioc *ioc, struct device *dev, ...@@ -1420,7 +1420,7 @@ sba_coalesce_chunks(struct ioc *ioc, struct device *dev,
* @dir: R/W or both. * @dir: R/W or both.
* @attrs: optional dma attributes * @attrs: optional dma attributes
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents,
int dir, struct dma_attrs *attrs) int dir, struct dma_attrs *attrs)
...@@ -1512,7 +1512,7 @@ EXPORT_SYMBOL(sba_map_sg_attrs); ...@@ -1512,7 +1512,7 @@ EXPORT_SYMBOL(sba_map_sg_attrs);
* @dir: R/W or both. * @dir: R/W or both.
* @attrs: optional dma attributes * @attrs: optional dma attributes
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist,
int nents, int dir, struct dma_attrs *attrs) int nents, int dir, struct dma_attrs *attrs)
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/scatterlist.h> #include <asm/scatterlist.h>
/* See Documentation/DMA-mapping.txt */ /* See Documentation/PCI/PCI-DMA-mapping.txt */
struct hppa_dma_ops { struct hppa_dma_ops {
int (*dma_supported)(struct device *dev, u64 mask); int (*dma_supported)(struct device *dev, u64 mask);
void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
** PARISC 1.1 Dynamic DMA mapping support. ** PARISC 1.1 Dynamic DMA mapping support.
** This implementation is for PA-RISC platforms that do not support ** This implementation is for PA-RISC platforms that do not support
** I/O TLBs (aka DMA address translation hardware). ** I/O TLBs (aka DMA address translation hardware).
** See Documentation/DMA-mapping.txt for interface definitions. ** See Documentation/PCI/PCI-DMA-mapping.txt for interface definitions.
** **
** (c) Copyright 1999,2000 Hewlett-Packard Company ** (c) Copyright 1999,2000 Hewlett-Packard Company
** (c) Copyright 2000 Grant Grundler ** (c) Copyright 2000 Grant Grundler
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
#define _ASM_X86_DMA_MAPPING_H #define _ASM_X86_DMA_MAPPING_H
/* /*
* IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for * IOMMU interface. See Documentation/PCI/PCI-DMA-mapping.txt and
* documentation. * Documentation/DMA-API.txt for documentation.
*/ */
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* This allows to use PCI devices that only support 32bit addresses on systems * This allows to use PCI devices that only support 32bit addresses on systems
* with more than 4GB. * with more than 4GB.
* *
* See Documentation/DMA-mapping.txt for the interface specification. * See Documentation/PCI/PCI-DMA-mapping.txt for the interface specification.
* *
* Copyright 2002 Andi Kleen, SuSE Labs. * Copyright 2002 Andi Kleen, SuSE Labs.
* Subject to the GNU General Public License v2 only. * Subject to the GNU General Public License v2 only.
......
...@@ -668,7 +668,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) ...@@ -668,7 +668,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
* @dev: instance of PCI owned by the driver that's asking * @dev: instance of PCI owned by the driver that's asking
* @mask: number of address bits this PCI device can handle * @mask: number of address bits this PCI device can handle
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static int sba_dma_supported( struct device *dev, u64 mask) static int sba_dma_supported( struct device *dev, u64 mask)
{ {
...@@ -680,8 +680,8 @@ static int sba_dma_supported( struct device *dev, u64 mask) ...@@ -680,8 +680,8 @@ static int sba_dma_supported( struct device *dev, u64 mask)
return(0); return(0);
} }
/* Documentation/DMA-mapping.txt tells drivers to try 64-bit first, /* Documentation/PCI/PCI-DMA-mapping.txt tells drivers to try 64-bit
* then fall back to 32-bit if that fails. * first, then fall back to 32-bit if that fails.
* We are just "encouraging" 32-bit DMA masks here since we can * We are just "encouraging" 32-bit DMA masks here since we can
* never allow IOMMU bypass unless we add special support for ZX1. * never allow IOMMU bypass unless we add special support for ZX1.
*/ */
...@@ -706,7 +706,7 @@ static int sba_dma_supported( struct device *dev, u64 mask) ...@@ -706,7 +706,7 @@ static int sba_dma_supported( struct device *dev, u64 mask)
* @size: number of bytes to map in driver buffer. * @size: number of bytes to map in driver buffer.
* @direction: R/W or both. * @direction: R/W or both.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static dma_addr_t static dma_addr_t
sba_map_single(struct device *dev, void *addr, size_t size, sba_map_single(struct device *dev, void *addr, size_t size,
...@@ -785,7 +785,7 @@ sba_map_single(struct device *dev, void *addr, size_t size, ...@@ -785,7 +785,7 @@ sba_map_single(struct device *dev, void *addr, size_t size,
* @size: number of bytes mapped in driver buffer. * @size: number of bytes mapped in driver buffer.
* @direction: R/W or both. * @direction: R/W or both.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static void static void
sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size,
...@@ -861,7 +861,7 @@ sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, ...@@ -861,7 +861,7 @@ sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size,
* @size: number of bytes mapped in driver buffer. * @size: number of bytes mapped in driver buffer.
* @dma_handle: IOVA of new buffer. * @dma_handle: IOVA of new buffer.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static void *sba_alloc_consistent(struct device *hwdev, size_t size, static void *sba_alloc_consistent(struct device *hwdev, size_t size,
dma_addr_t *dma_handle, gfp_t gfp) dma_addr_t *dma_handle, gfp_t gfp)
...@@ -892,7 +892,7 @@ static void *sba_alloc_consistent(struct device *hwdev, size_t size, ...@@ -892,7 +892,7 @@ static void *sba_alloc_consistent(struct device *hwdev, size_t size,
* @vaddr: virtual address IOVA of "consistent" buffer. * @vaddr: virtual address IOVA of "consistent" buffer.
* @dma_handler: IO virtual address of "consistent" buffer. * @dma_handler: IO virtual address of "consistent" buffer.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static void static void
sba_free_consistent(struct device *hwdev, size_t size, void *vaddr, sba_free_consistent(struct device *hwdev, size_t size, void *vaddr,
...@@ -927,7 +927,7 @@ int dump_run_sg = 0; ...@@ -927,7 +927,7 @@ int dump_run_sg = 0;
* @nents: number of entries in list * @nents: number of entries in list
* @direction: R/W or both. * @direction: R/W or both.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static int static int
sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents,
...@@ -1011,7 +1011,7 @@ sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, ...@@ -1011,7 +1011,7 @@ sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents,
* @nents: number of entries in list * @nents: number of entries in list
* @direction: R/W or both. * @direction: R/W or both.
* *
* See Documentation/DMA-mapping.txt * See Documentation/PCI/PCI-DMA-mapping.txt
*/ */
static void static void
sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents,
......
...@@ -531,7 +531,7 @@ static int __devinit dma_test(struct ape_dev *ape, struct pci_dev *dev) ...@@ -531,7 +531,7 @@ static int __devinit dma_test(struct ape_dev *ape, struct pci_dev *dev)
goto fail; goto fail;
/* allocate and map coherently-cached memory for a DMA-able buffer */ /* allocate and map coherently-cached memory for a DMA-able buffer */
/* @see 2.6.26.2/Documentation/DMA-mapping.txt line 318 */ /* @see Documentation/PCI/PCI-DMA-mapping.txt, near line 318 */
buffer_virt = (u8 *)pci_alloc_consistent(dev, PAGE_SIZE * 4, &buffer_bus); buffer_virt = (u8 *)pci_alloc_consistent(dev, PAGE_SIZE * 4, &buffer_bus);
if (!buffer_virt) { if (!buffer_virt) {
printk(KERN_DEBUG "Could not allocate coherent DMA buffer.\n"); printk(KERN_DEBUG "Could not allocate coherent DMA buffer.\n");
...@@ -846,7 +846,7 @@ static int __devinit probe(struct pci_dev *dev, const struct pci_device_id *id) ...@@ -846,7 +846,7 @@ static int __devinit probe(struct pci_dev *dev, const struct pci_device_id *id)
#if 1 // @todo For now, disable 64-bit, because I do not understand the implications (DAC!) #if 1 // @todo For now, disable 64-bit, because I do not understand the implications (DAC!)
/* query for DMA transfer */ /* query for DMA transfer */
/* @see Documentation/DMA-mapping.txt */ /* @see Documentation/PCI/PCI-DMA-mapping.txt */
if (!pci_set_dma_mask(dev, DMA_64BIT_MASK)) { if (!pci_set_dma_mask(dev, DMA_64BIT_MASK)) {
pci_set_consistent_dma_mask(dev, DMA_64BIT_MASK); pci_set_consistent_dma_mask(dev, DMA_64BIT_MASK);
/* use 64-bit DMA */ /* use 64-bit DMA */
......
...@@ -49,7 +49,7 @@ struct scatterlist* videobuf_pages_to_sg(struct page **pages, int nr_pages, ...@@ -49,7 +49,7 @@ struct scatterlist* videobuf_pages_to_sg(struct page **pages, int nr_pages,
* does memory allocation too using vmalloc_32(). * does memory allocation too using vmalloc_32().
* *
* videobuf_dma_*() * videobuf_dma_*()
* see Documentation/DMA-mapping.txt, these functions to * see Documentation/PCI/PCI-DMA-mapping.txt, these functions to
* basically the same. The map function does also build a * basically the same. The map function does also build a
* scatterlist for the buffer (and unmap frees it ...) * scatterlist for the buffer (and unmap frees it ...)
* *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册