⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma.h

📁 优龙2410linux2.6.8内核源代码
💻 H
字号:
/* * linux/include/asm-arm/arch-iop80310/dma.h * *  Copyright (C) 2001 MontaVista Software, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#ifndef _IOP310_DMA_H_#define _IOP310_DMA_H_/* 2 DMA on primary PCI and 1 on secondary for 80310 */#define MAX_IOP310_DMA_CHANNEL   3#define MAX_DMA_DESC        	64	/*128 *//* * Make the generic DMA bits go away since we don't use it */#define MAX_DMA_CHANNELS	0#define MAX_DMA_ADDRESS		0xffffffff#define IOP310_DMA_P0      	0#define IOP310_DMA_P1		1#define IOP310_DMA_S0      	2#define DMA_MOD_READ        	0x0001#define DMA_MOD_WRITE		0x0002#define DMA_MOD_CACHED		0x0004#define DMA_MOD_NONCACHED	0x0008#define DMA_DESC_DONE   	0x0010#define DMA_INCOMPLETE  	0x0020#define DMA_HOLD		0x0040#define DMA_END_CHAIN		0x0080#define DMA_COMPLETE		0x0100#define DMA_NOTIFY		0x0200#define DMA_NEW_HEAD		0x0400#define DMA_USER_MASK	(DMA_NOTIFY | DMA_INCOMPLETE | \						 DMA_HOLD | DMA_COMPLETE)#define DMA_DCR_DAC		0x00000020	/* Dual Addr Cycle Enab */#define DMA_DCR_IE		0x00000010	/* Interrupt Enable */#define DMA_DCR_PCI_IOR		0x00000002	/* I/O Read */#define DMA_DCR_PCI_IOW		0x00000003	/* I/O Write */#define DMA_DCR_PCI_MR		0x00000006	/* Memory Read */#define DMA_DCR_PCI_MW		0x00000007	/* Memory Write */#define DMA_DCR_PCI_CR		0x0000000A	/* Configuration Read */#define DMA_DCR_PCI_CW		0x0000000B	/* Configuration Write */#define DMA_DCR_PCI_MRM		0x0000000C	/* Memory Read Multiple */#define DMA_DCR_PCI_MRL		0x0000000E	/* Memory Read Line */#define DMA_DCR_PCI_MWI		0x0000000F	/* Mem Write and Inval */#define DMA_USER_CMD_IE		0x00000001	/* user request int */#define DMA_USER_END_CHAIN	0x00000002	/* end of sgl chain flag *//* ATU defines */#define     IOP310_ATUCR_PRIM_OUT_ENAB  /* Configuration   */      0x00000002#define     IOP310_ATUCR_DIR_ADDR_ENAB  /* Configuration   */      0x00000080typedef void (*dma_callback_t) (void *buf_context);/* * DMA Descriptor */typedef struct _dma_desc{	u32 NDAR;					/* next descriptor address */	u32 PDAR;					/* PCI address */	u32 PUADR;					/* upper PCI address */	u32 LADR;					/* local address */	u32 BC;						/* byte count */	u32 DC;						/* descriptor control */} dma_desc_t;typedef struct _dma_sgl{	dma_desc_t dma_desc;		/* DMA descriptor pointer */	u32 status;					/* descriptor status */	void *data;					/* local virt */	struct _dma_sgl *next;		/* next descriptor */} dma_sgl_t;/* dma sgl head */typedef struct _dma_head{	u32 total;					/* total elements in SGL */	u32 status;					/* status of sgl */	u32 mode;					/* read or write mode */	dma_sgl_t *list;			/* pointer to list */	dma_callback_t callback;	/* callback function */} dma_head_t;/* function prototypes */int dma_request(dmach_t, const char *);int dma_queue_buffer(dmach_t, dma_head_t *);int dma_suspend(dmach_t);int dma_resume(dmach_t);int dma_flush_all(dmach_t);void dma_free(dmach_t);void dma_set_irq_threshold(dmach_t, int);dma_sgl_t *dma_get_buffer(dmach_t, int);void dma_return_buffer(dmach_t, dma_sgl_t *);#endif /* _ASM_ARCH_DMA_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -