Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
xtensa
include
asm
dma.h
Go to the documentation of this file.
1
/*
2
* include/asm-xtensa/dma.h
3
*
4
* This file is subject to the terms and conditions of the GNU General Public
5
* License. See the file "COPYING" in the main directory of this archive
6
* for more details.
7
*
8
* Copyright (C) 2003 - 2005 Tensilica Inc.
9
*/
10
11
#ifndef _XTENSA_DMA_H
12
#define _XTENSA_DMA_H
13
14
#include <asm/io.h>
/* need byte IO */
15
16
/*
17
* This is only to be defined if we have PC-like DMA.
18
* By default this is not true on an Xtensa processor,
19
* however on boards with a PCI bus, such functionality
20
* might be emulated externally.
21
*
22
* NOTE: there still exists driver code that assumes
23
* this is defined, eg. drivers/sound/soundcard.c (as of 2.4).
24
*/
25
#define MAX_DMA_CHANNELS 8
26
27
/*
28
* The maximum virtual address to which DMA transfers
29
* can be performed on this platform.
30
*
31
* NOTE: This is board (platform) specific, not processor-specific!
32
*
33
* NOTE: This assumes DMA transfers can only be performed on
34
* the section of physical memory contiguously mapped in virtual
35
* space for the kernel. For the Xtensa architecture, this
36
* means the maximum possible size of this DMA area is
37
* the size of the statically mapped kernel segment
38
* (XCHAL_KSEG_{CACHED,BYPASS}_SIZE), ie. 128 MB.
39
*
40
* NOTE: When the entire KSEG area is DMA capable, we subtract
41
* one from the max address so that the virt_to_phys() macro
42
* works correctly on the address (otherwise the address
43
* enters another area, and virt_to_phys() may not return
44
* the value desired).
45
*/
46
47
#ifndef MAX_DMA_ADDRESS
48
#define MAX_DMA_ADDRESS (PAGE_OFFSET + XCHAL_KIO_SIZE - 1)
49
#endif
50
51
/* Reserve and release a DMA channel */
52
extern
int
request_dma
(
unsigned
int
dmanr,
const
char
*
device_id
);
53
extern
void
free_dma
(
unsigned
int
dmanr);
54
55
#ifdef CONFIG_PCI
56
extern
int
isa_dma_bridge_buggy
;
57
#else
58
#define isa_dma_bridge_buggy (0)
59
#endif
60
61
62
#endif
Generated on Thu Jan 10 2013 12:49:31 for Linux Kernel by
1.8.2