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: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
ca493d171b
Коммит
5872fb94f8
|
@ -5,7 +5,7 @@
|
|||
|
||||
This document describes the DMA API. For a more gentle introduction
|
||||
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
|
||||
corresponding pci_ API. Part II describes the extensions to the API
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[ NOTE: The virt_to_bus() and bus_to_virt() functions have been
|
||||
superseded by the functionality provided by the PCI DMA
|
||||
interface (see Documentation/DMA-mapping.txt). They continue
|
||||
superseded by the functionality provided by the PCI DMA interface
|
||||
(see Documentation/PCI/PCI-DMA-mapping.txt). They continue
|
||||
to be documented below for historical purposes, but new code
|
||||
must not use them. --davidm 00/12/12 ]
|
||||
|
||||
|
|
|
@ -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
|
||||
low-memory pages.
|
||||
|
||||
Note: Please refer to DMA-mapping.txt for a discussion on PCI high mem DMA
|
||||
aspects and mapping of scatter gather lists, and support for 64 bit PCI.
|
||||
Note: Please refer to Documentation/PCI/PCI-DMA-mapping.txt for a discussion
|
||||
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
|
||||
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).
|
|||
API OVERVIEW
|
||||
|
||||
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).
|
||||
That's how they've worked through the 2.4 (and earlier) kernels.
|
||||
though they still must provide DMA-ready buffers (see
|
||||
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.
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
Documentation/DMA-mapping.txt for definitions of "coherent" and "streaming"
|
||||
DMA mappings.)
|
||||
Documentation/PCI/PCI-DMA-mapping.txt for definitions of "coherent" and
|
||||
"streaming" DMA mappings.)
|
||||
|
||||
Asking for 1/Nth of a page (as well as asking for N pages) is reasonably
|
||||
space-efficient.
|
||||
|
@ -93,7 +94,7 @@ WORKING WITH EXISTING BUFFERS
|
|||
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
|
||||
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
|
||||
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)
|
|||
* @dir: R/W or both.
|
||||
* @attrs: optional dma attributes
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
dma_addr_t
|
||||
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)
|
|||
* @dir: R/W or both.
|
||||
* @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,
|
||||
int dir, struct dma_attrs *attrs)
|
||||
|
@ -1102,7 +1102,7 @@ EXPORT_SYMBOL(sba_unmap_single_attrs);
|
|||
* @size: number of bytes mapped in driver buffer.
|
||||
* @dma_handle: IOVA of new buffer.
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
void *
|
||||
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
|
|||
* @vaddr: virtual address IOVA 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)
|
||||
{
|
||||
|
@ -1420,7 +1420,7 @@ sba_coalesce_chunks(struct ioc *ioc, struct device *dev,
|
|||
* @dir: R/W or both.
|
||||
* @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 dir, struct dma_attrs *attrs)
|
||||
|
@ -1512,7 +1512,7 @@ EXPORT_SYMBOL(sba_map_sg_attrs);
|
|||
* @dir: R/W or both.
|
||||
* @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,
|
||||
int nents, int dir, struct dma_attrs *attrs)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <asm/cacheflush.h>
|
||||
#include <asm/scatterlist.h>
|
||||
|
||||
/* See Documentation/DMA-mapping.txt */
|
||||
/* See Documentation/PCI/PCI-DMA-mapping.txt */
|
||||
struct hppa_dma_ops {
|
||||
int (*dma_supported)(struct device *dev, u64 mask);
|
||||
void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
** PARISC 1.1 Dynamic DMA mapping support.
|
||||
** This implementation is for PA-RISC platforms that do not support
|
||||
** 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 2000 Grant Grundler
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define _ASM_X86_DMA_MAPPING_H
|
||||
|
||||
/*
|
||||
* IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for
|
||||
* documentation.
|
||||
* IOMMU interface. See Documentation/PCI/PCI-DMA-mapping.txt and
|
||||
* Documentation/DMA-API.txt for documentation.
|
||||
*/
|
||||
|
||||
#include <linux/scatterlist.h>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* This allows to use PCI devices that only support 32bit addresses on systems
|
||||
* 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.
|
||||
* 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)
|
|||
* @dev: instance of PCI owned by the driver that's asking
|
||||
* @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)
|
||||
{
|
||||
|
@ -680,8 +680,8 @@ static int sba_dma_supported( struct device *dev, u64 mask)
|
|||
return(0);
|
||||
}
|
||||
|
||||
/* Documentation/DMA-mapping.txt tells drivers to try 64-bit first,
|
||||
* then fall back to 32-bit if that fails.
|
||||
/* Documentation/PCI/PCI-DMA-mapping.txt tells drivers to try 64-bit
|
||||
* first, then fall back to 32-bit if that fails.
|
||||
* We are just "encouraging" 32-bit DMA masks here since we can
|
||||
* 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)
|
|||
* @size: number of bytes to map in driver buffer.
|
||||
* @direction: R/W or both.
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
static dma_addr_t
|
||||
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.
|
||||
* @direction: R/W or both.
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
static void
|
||||
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.
|
||||
* @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,
|
||||
dma_addr_t *dma_handle, gfp_t gfp)
|
||||
|
@ -892,7 +892,7 @@ static void *sba_alloc_consistent(struct device *hwdev, size_t size,
|
|||
* @vaddr: virtual address IOVA 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
|
||||
sba_free_consistent(struct device *hwdev, size_t size, void *vaddr,
|
||||
|
@ -927,7 +927,7 @@ int dump_run_sg = 0;
|
|||
* @nents: number of entries in list
|
||||
* @direction: R/W or both.
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
static int
|
||||
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
|
||||
* @direction: R/W or both.
|
||||
*
|
||||
* See Documentation/DMA-mapping.txt
|
||||
* See Documentation/PCI/PCI-DMA-mapping.txt
|
||||
*/
|
||||
static void
|
||||
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)
|
|||
goto fail;
|
||||
|
||||
/* 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);
|
||||
if (!buffer_virt) {
|
||||
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)
|
|||
|
||||
#if 1 // @todo For now, disable 64-bit, because I do not understand the implications (DAC!)
|
||||
/* 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)) {
|
||||
pci_set_consistent_dma_mask(dev, DMA_64BIT_MASK);
|
||||
/* use 64-bit DMA */
|
||||
|
|
|
@ -49,7 +49,7 @@ struct scatterlist* videobuf_pages_to_sg(struct page **pages, int nr_pages,
|
|||
* does memory allocation too using vmalloc_32().
|
||||
*
|
||||
* 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
|
||||
* scatterlist for the buffer (and unmap frees it ...)
|
||||
*
|
||||
|
|
Загрузка…
Ссылка в новой задаче