|
@@ -24,27 +24,29 @@ typedef struct pxa_dma_desc {
|
|
volatile u32 dcmd; /* DCMD value for the current transfer */
|
|
volatile u32 dcmd; /* DCMD value for the current transfer */
|
|
} pxa_dma_desc;
|
|
} pxa_dma_desc;
|
|
|
|
|
|
|
|
+typedef enum {
|
|
|
|
+ DMA_PRIO_HIGH = 0,
|
|
|
|
+ DMA_PRIO_MEDIUM = 1,
|
|
|
|
+ DMA_PRIO_LOW = 2
|
|
|
|
+} pxa_dma_prio;
|
|
|
|
+
|
|
#if defined(CONFIG_PXA27x)
|
|
#if defined(CONFIG_PXA27x)
|
|
|
|
|
|
#define PXA_DMA_CHANNELS 32
|
|
#define PXA_DMA_CHANNELS 32
|
|
-#define PXA_DMA_NBCH(prio) ((prio == DMA_PRIO_LOW) ? 16 : 8)
|
|
|
|
|
|
|
|
-typedef enum {
|
|
|
|
- DMA_PRIO_HIGH = 0,
|
|
|
|
- DMA_PRIO_MEDIUM = 8,
|
|
|
|
- DMA_PRIO_LOW = 16
|
|
|
|
-} pxa_dma_prio;
|
|
|
|
|
|
+#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) \
|
|
|
|
+)
|
|
|
|
|
|
#elif defined(CONFIG_PXA25x)
|
|
#elif defined(CONFIG_PXA25x)
|
|
|
|
|
|
#define PXA_DMA_CHANNELS 16
|
|
#define PXA_DMA_CHANNELS 16
|
|
-#define PXA_DMA_NBCH(prio) ((prio == DMA_PRIO_LOW) ? 8 : 4)
|
|
|
|
|
|
|
|
-typedef enum {
|
|
|
|
- DMA_PRIO_HIGH = 0,
|
|
|
|
- DMA_PRIO_MEDIUM = 4,
|
|
|
|
- DMA_PRIO_LOW = 8
|
|
|
|
-} pxa_dma_prio;
|
|
|
|
|
|
+#define pxa_for_each_dma_prio(ch, prio) \
|
|
|
|
+ for (ch = prio * 4; ch != (4 << prio); ch++)
|
|
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|