linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-arm / arch-pxa / dma.h
index a008150..3e88a2a 100644 (file)
@@ -24,29 +24,27 @@ typedef struct pxa_dma_desc {
        volatile u32 dcmd;      /* DCMD value for the current transfer */
 } pxa_dma_desc;
 
-typedef enum {
-       DMA_PRIO_HIGH = 0,
-       DMA_PRIO_MEDIUM = 1,
-       DMA_PRIO_LOW = 2
-} pxa_dma_prio;
-
 #if defined(CONFIG_PXA27x)
 
 #define PXA_DMA_CHANNELS       32
+#define PXA_DMA_NBCH(prio)     ((prio == DMA_PRIO_LOW) ? 16 : 8)
 
-#define pxa_for_each_dma_prio(ch, prio)                                        \
-for (                                                                  \
-       ch = prio * 4;                                                  \
-       ch != (4 << prio) + 16;                                         \
-       ch = (ch + 1 == (4 << prio)) ? (prio * 4 + 16) : (ch + 1)       \
-)
+typedef enum {
+       DMA_PRIO_HIGH = 0,
+       DMA_PRIO_MEDIUM = 8,
+       DMA_PRIO_LOW = 16
+} pxa_dma_prio;
 
 #elif defined(CONFIG_PXA25x)
 
 #define PXA_DMA_CHANNELS       16
+#define PXA_DMA_NBCH(prio)     ((prio == DMA_PRIO_LOW) ? 8 : 4)
 
-#define pxa_for_each_dma_prio(ch, prio)                                        \
-       for (ch = prio * 4; ch != (4 << prio); ch++)
+typedef enum {
+       DMA_PRIO_HIGH = 0,
+       DMA_PRIO_MEDIUM = 4,
+       DMA_PRIO_LOW = 8
+} pxa_dma_prio;
 
 #endif