Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
dma.h File Reference
#include <linux/spinlock.h>
#include <asm/io.h>

Go to the source code of this file.

Macros

#define dma_outb   outb
 
#define dma_inb   inb
 
#define MAX_DMA_CHANNELS   8
 
#define ALPHA_XL_MAX_ISA_DMA_ADDRESS   0x04000000UL
 
#define ALPHA_RUFFIAN_MAX_ISA_DMA_ADDRESS   0x01000000UL
 
#define ALPHA_SABLE_MAX_ISA_DMA_ADDRESS   0x80000000UL
 
#define ALPHA_ALCOR_MAX_ISA_DMA_ADDRESS   0x80000000UL
 
#define ALPHA_MAX_ISA_DMA_ADDRESS   0x100000000UL
 
#define MAX_ISA_DMA_ADDRESS   ALPHA_MAX_ISA_DMA_ADDRESS
 
#define MAX_DMA_ADDRESS
 
#define IO_DMA1_BASE   0x00 /* 8 bit slave DMA, channels 0..3 */
 
#define IO_DMA2_BASE   0xC0 /* 16 bit master DMA, ch 4(=slave input)..7 */
 
#define DMA1_CMD_REG   0x08 /* command register (w) */
 
#define DMA1_STAT_REG   0x08 /* status register (r) */
 
#define DMA1_REQ_REG   0x09 /* request register (w) */
 
#define DMA1_MASK_REG   0x0A /* single-channel mask (w) */
 
#define DMA1_MODE_REG   0x0B /* mode register (w) */
 
#define DMA1_CLEAR_FF_REG   0x0C /* clear pointer flip-flop (w) */
 
#define DMA1_TEMP_REG   0x0D /* Temporary Register (r) */
 
#define DMA1_RESET_REG   0x0D /* Master Clear (w) */
 
#define DMA1_CLR_MASK_REG   0x0E /* Clear Mask */
 
#define DMA1_MASK_ALL_REG   0x0F /* all-channels mask (w) */
 
#define DMA1_EXT_MODE_REG   (0x400 | DMA1_MODE_REG)
 
#define DMA2_CMD_REG   0xD0 /* command register (w) */
 
#define DMA2_STAT_REG   0xD0 /* status register (r) */
 
#define DMA2_REQ_REG   0xD2 /* request register (w) */
 
#define DMA2_MASK_REG   0xD4 /* single-channel mask (w) */
 
#define DMA2_MODE_REG   0xD6 /* mode register (w) */
 
#define DMA2_CLEAR_FF_REG   0xD8 /* clear pointer flip-flop (w) */
 
#define DMA2_TEMP_REG   0xDA /* Temporary Register (r) */
 
#define DMA2_RESET_REG   0xDA /* Master Clear (w) */
 
#define DMA2_CLR_MASK_REG   0xDC /* Clear Mask */
 
#define DMA2_MASK_ALL_REG   0xDE /* all-channels mask (w) */
 
#define DMA2_EXT_MODE_REG   (0x400 | DMA2_MODE_REG)
 
#define DMA_ADDR_0   0x00 /* DMA address registers */
 
#define DMA_ADDR_1   0x02
 
#define DMA_ADDR_2   0x04
 
#define DMA_ADDR_3   0x06
 
#define DMA_ADDR_4   0xC0
 
#define DMA_ADDR_5   0xC4
 
#define DMA_ADDR_6   0xC8
 
#define DMA_ADDR_7   0xCC
 
#define DMA_CNT_0   0x01 /* DMA count registers */
 
#define DMA_CNT_1   0x03
 
#define DMA_CNT_2   0x05
 
#define DMA_CNT_3   0x07
 
#define DMA_CNT_4   0xC2
 
#define DMA_CNT_5   0xC6
 
#define DMA_CNT_6   0xCA
 
#define DMA_CNT_7   0xCE
 
#define DMA_PAGE_0   0x87 /* DMA page registers */
 
#define DMA_PAGE_1   0x83
 
#define DMA_PAGE_2   0x81
 
#define DMA_PAGE_3   0x82
 
#define DMA_PAGE_5   0x8B
 
#define DMA_PAGE_6   0x89
 
#define DMA_PAGE_7   0x8A
 
#define DMA_HIPAGE_0   (0x400 | DMA_PAGE_0)
 
#define DMA_HIPAGE_1   (0x400 | DMA_PAGE_1)
 
#define DMA_HIPAGE_2   (0x400 | DMA_PAGE_2)
 
#define DMA_HIPAGE_3   (0x400 | DMA_PAGE_3)
 
#define DMA_HIPAGE_4   (0x400 | DMA_PAGE_4)
 
#define DMA_HIPAGE_5   (0x400 | DMA_PAGE_5)
 
#define DMA_HIPAGE_6   (0x400 | DMA_PAGE_6)
 
#define DMA_HIPAGE_7   (0x400 | DMA_PAGE_7)
 
#define DMA_MODE_READ   0x44 /* I/O to memory, no autoinit, increment, single mode */
 
#define DMA_MODE_WRITE   0x48 /* memory to I/O, no autoinit, increment, single mode */
 
#define DMA_MODE_CASCADE   0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */
 
#define DMA_AUTOINIT   0x10
 
#define KERNEL_HAVE_CHECK_DMA
 
#define isa_dma_bridge_buggy   (0)
 

Functions

int request_dma (unsigned int dmanr, const char *device_id)
 
void free_dma (unsigned int dmanr)
 
int check_dma (unsigned int dmanr)
 

Variables

spinlock_t dma_spin_lock
 

Macro Definition Documentation

#define ALPHA_ALCOR_MAX_ISA_DMA_ADDRESS   0x80000000UL

Definition at line 98 of file dma.h.

#define ALPHA_MAX_ISA_DMA_ADDRESS   0x100000000UL

Definition at line 104 of file dma.h.

#define ALPHA_RUFFIAN_MAX_ISA_DMA_ADDRESS   0x01000000UL

Definition at line 92 of file dma.h.

#define ALPHA_SABLE_MAX_ISA_DMA_ADDRESS   0x80000000UL

Definition at line 97 of file dma.h.

#define ALPHA_XL_MAX_ISA_DMA_ADDRESS   0x04000000UL

Definition at line 87 of file dma.h.

#define DMA1_CLEAR_FF_REG   0x0C /* clear pointer flip-flop (w) */

Definition at line 138 of file dma.h.

#define DMA1_CLR_MASK_REG   0x0E /* Clear Mask */

Definition at line 141 of file dma.h.

#define DMA1_CMD_REG   0x08 /* command register (w) */

Definition at line 133 of file dma.h.

#define DMA1_EXT_MODE_REG   (0x400 | DMA1_MODE_REG)

Definition at line 143 of file dma.h.

#define DMA1_MASK_ALL_REG   0x0F /* all-channels mask (w) */

Definition at line 142 of file dma.h.

#define DMA1_MASK_REG   0x0A /* single-channel mask (w) */

Definition at line 136 of file dma.h.

#define DMA1_MODE_REG   0x0B /* mode register (w) */

Definition at line 137 of file dma.h.

#define DMA1_REQ_REG   0x09 /* request register (w) */

Definition at line 135 of file dma.h.

#define DMA1_RESET_REG   0x0D /* Master Clear (w) */

Definition at line 140 of file dma.h.

#define DMA1_STAT_REG   0x08 /* status register (r) */

Definition at line 134 of file dma.h.

#define DMA1_TEMP_REG   0x0D /* Temporary Register (r) */

Definition at line 139 of file dma.h.

#define DMA2_CLEAR_FF_REG   0xD8 /* clear pointer flip-flop (w) */

Definition at line 150 of file dma.h.

#define DMA2_CLR_MASK_REG   0xDC /* Clear Mask */

Definition at line 153 of file dma.h.

#define DMA2_CMD_REG   0xD0 /* command register (w) */

Definition at line 145 of file dma.h.

#define DMA2_EXT_MODE_REG   (0x400 | DMA2_MODE_REG)

Definition at line 155 of file dma.h.

#define DMA2_MASK_ALL_REG   0xDE /* all-channels mask (w) */

Definition at line 154 of file dma.h.

#define DMA2_MASK_REG   0xD4 /* single-channel mask (w) */

Definition at line 148 of file dma.h.

#define DMA2_MODE_REG   0xD6 /* mode register (w) */

Definition at line 149 of file dma.h.

#define DMA2_REQ_REG   0xD2 /* request register (w) */

Definition at line 147 of file dma.h.

#define DMA2_RESET_REG   0xDA /* Master Clear (w) */

Definition at line 152 of file dma.h.

#define DMA2_STAT_REG   0xD0 /* status register (r) */

Definition at line 146 of file dma.h.

#define DMA2_TEMP_REG   0xDA /* Temporary Register (r) */

Definition at line 151 of file dma.h.

#define DMA_ADDR_0   0x00 /* DMA address registers */

Definition at line 157 of file dma.h.

#define DMA_ADDR_1   0x02

Definition at line 158 of file dma.h.

#define DMA_ADDR_2   0x04

Definition at line 159 of file dma.h.

#define DMA_ADDR_3   0x06

Definition at line 160 of file dma.h.

#define DMA_ADDR_4   0xC0

Definition at line 161 of file dma.h.

#define DMA_ADDR_5   0xC4

Definition at line 162 of file dma.h.

#define DMA_ADDR_6   0xC8

Definition at line 163 of file dma.h.

#define DMA_ADDR_7   0xCC

Definition at line 164 of file dma.h.

#define DMA_AUTOINIT   0x10

Definition at line 196 of file dma.h.

#define DMA_CNT_0   0x01 /* DMA count registers */

Definition at line 166 of file dma.h.

#define DMA_CNT_1   0x03

Definition at line 167 of file dma.h.

#define DMA_CNT_2   0x05

Definition at line 168 of file dma.h.

#define DMA_CNT_3   0x07

Definition at line 169 of file dma.h.

#define DMA_CNT_4   0xC2

Definition at line 170 of file dma.h.

#define DMA_CNT_5   0xC6

Definition at line 171 of file dma.h.

#define DMA_CNT_6   0xCA

Definition at line 172 of file dma.h.

#define DMA_CNT_7   0xCE

Definition at line 173 of file dma.h.

#define DMA_HIPAGE_0   (0x400 | DMA_PAGE_0)

Definition at line 183 of file dma.h.

#define DMA_HIPAGE_1   (0x400 | DMA_PAGE_1)

Definition at line 184 of file dma.h.

#define DMA_HIPAGE_2   (0x400 | DMA_PAGE_2)

Definition at line 185 of file dma.h.

#define DMA_HIPAGE_3   (0x400 | DMA_PAGE_3)

Definition at line 186 of file dma.h.

#define DMA_HIPAGE_4   (0x400 | DMA_PAGE_4)

Definition at line 187 of file dma.h.

#define DMA_HIPAGE_5   (0x400 | DMA_PAGE_5)

Definition at line 188 of file dma.h.

#define DMA_HIPAGE_6   (0x400 | DMA_PAGE_6)

Definition at line 189 of file dma.h.

#define DMA_HIPAGE_7   (0x400 | DMA_PAGE_7)

Definition at line 190 of file dma.h.

#define dma_inb   inb

Definition at line 25 of file dma.h.

#define DMA_MODE_CASCADE   0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */

Definition at line 194 of file dma.h.

#define DMA_MODE_READ   0x44 /* I/O to memory, no autoinit, increment, single mode */

Definition at line 192 of file dma.h.

#define DMA_MODE_WRITE   0x48 /* memory to I/O, no autoinit, increment, single mode */

Definition at line 193 of file dma.h.

#define dma_outb   outb

Definition at line 24 of file dma.h.

#define DMA_PAGE_0   0x87 /* DMA page registers */

Definition at line 175 of file dma.h.

#define DMA_PAGE_1   0x83

Definition at line 176 of file dma.h.

#define DMA_PAGE_2   0x81

Definition at line 177 of file dma.h.

#define DMA_PAGE_3   0x82

Definition at line 178 of file dma.h.

#define DMA_PAGE_5   0x8B

Definition at line 179 of file dma.h.

#define DMA_PAGE_6   0x89

Definition at line 180 of file dma.h.

#define DMA_PAGE_7   0x8A

Definition at line 181 of file dma.h.

#define IO_DMA1_BASE   0x00 /* 8 bit slave DMA, channels 0..3 */

Definition at line 129 of file dma.h.

#define IO_DMA2_BASE   0xC0 /* 16 bit master DMA, ch 4(=slave input)..7 */

Definition at line 130 of file dma.h.

#define isa_dma_bridge_buggy   (0)

Definition at line 372 of file dma.h.

#define KERNEL_HAVE_CHECK_DMA

Definition at line 364 of file dma.h.

#define MAX_DMA_ADDRESS
Value:
(alpha_mv.mv_pci_tbi ? \
~0UL : IDENT_ADDR + 0x01000000)

Definition at line 125 of file dma.h.

#define MAX_DMA_CHANNELS   8

Definition at line 75 of file dma.h.

#define MAX_ISA_DMA_ADDRESS   ALPHA_MAX_ISA_DMA_ADDRESS

Definition at line 118 of file dma.h.

Function Documentation

int check_dma ( unsigned int  dmanr)
void free_dma ( unsigned int  dmanr)

Definition at line 95 of file dma.c.

int request_dma ( unsigned int  channel,
const char device_id 
)

request_dma - request a DMA channel

Request the specific DMA channel from the system if it's available.

Definition at line 57 of file dma.c.

Variable Documentation

spinlock_t dma_spin_lock