diff options
author | Florian Fainelli <florian@openwrt.org> | 2008-07-15 17:17:04 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2008-07-15 17:17:04 +0000 |
commit | 714a721010caa3941e7e178944c9e843c2108b59 (patch) | |
tree | 771fc56ebd8a3ccf3ee0b7903e8f33ce94946fba /target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h | |
parent | 651a729a9c8cca75297471afdfcdd88da8d05b23 (diff) | |
download | mtk-20170518-714a721010caa3941e7e178944c9e843c2108b59.zip mtk-20170518-714a721010caa3941e7e178944c9e843c2108b59.tar.gz mtk-20170518-714a721010caa3941e7e178944c9e843c2108b59.tar.bz2 |
Move files and patches to files-2.6.23 and patches-2.6.23
SVN-Revision: 11843
Diffstat (limited to 'target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h')
-rw-r--r-- | target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h b/target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h new file mode 100644 index 0000000..81cb405 --- /dev/null +++ b/target/linux/rb532/files-2.6.23/include/asm-mips/rc32434/dma_v.h @@ -0,0 +1,72 @@ +#ifndef __IDT_DMA_V_H__ +#define __IDT_DMA_V_H__ + +/******************************************************************************* + * + * Copyright 2002 Integrated Device Technology, Inc. + * All rights reserved. + * + * DMA register definition. + * + * File : $Id: dma.h,v 1.3 2002/06/06 18:34:03 astichte Exp $ + * + * Author : ryan.holmQVist@idt.com + * Date : 20011005 + * Update : + * $Log: dma.h,v $ + * Revision 1.3 2002/06/06 18:34:03 astichte + * Added XXX_PhysicalAddress and XXX_VirtualAddress + * + * Revision 1.2 2002/06/05 18:30:46 astichte + * Removed IDTField + * + * Revision 1.1 2002/05/29 17:33:21 sysarch + * jba File moved from vcode/include/idt/acacia + * + * + ******************************************************************************/ +#include <asm/rc32434/dma.h> +#include <asm/rc32434/rc32434.h> +#define DMA_CHAN_OFFSET 0x14 +#define IS_DMA_USED(X) (((X) & (DMAD_f_m | DMAD_d_m | DMAD_t_m)) != 0) +#define DMA_COUNT(count) \ + ((count) & DMAD_count_m) + +#define DMA_HALT_TIMEOUT 500 + + +static inline int rc32434_halt_dma(DMA_Chan_t ch) +{ + int timeout=1; + if (local_readl(&ch->dmac) & DMAC_run_m) { + local_writel(0, &ch->dmac); + for (timeout = DMA_HALT_TIMEOUT; timeout > 0; timeout--) { + if (local_readl(&ch->dmas) & DMAS_h_m) { + local_writel(0, &ch->dmas); + break; + } + } + } + + return timeout ? 0 : 1; +} + +static inline void rc32434_start_dma(DMA_Chan_t ch, u32 dma_addr) +{ + local_writel(0, &ch->dmandptr); + local_writel(dma_addr, &ch->dmadptr); +} + +static inline void rc32434_chain_dma(DMA_Chan_t ch, u32 dma_addr) +{ + local_writel(dma_addr, &ch->dmandptr); +} + +#endif // __IDT_DMA_V_H__ + + + + + + + |