Skip to content

Commit 5516fc2

Browse files
committed
dma: Allow bulk dma channel to be requested
1 parent 470f0a7 commit 5516fc2

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

arch/arm/mach-bcm2708/dma.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ extern void bcm_dma_wait_idle(void __iomem *dma_chan_base)
7777
dsb();
7878

7979
/* ugly busy wait only option for now */
80-
while (readl(dma_chan_base + BCM2708_DMA_CS) & BCM2708_DMA_ACTIVE);
80+
while (readl(dma_chan_base + BCM2708_DMA_CS) & BCM2708_DMA_ACTIVE)
81+
cpu_relax();
8182
}
8283

8384
EXPORT_SYMBOL_GPL(bcm_dma_start);
@@ -146,6 +147,7 @@ static void vc_dmaman_init(struct vc_dmaman *dmaman, void __iomem *dma_base,
146147
dmaman->dma_base = dma_base;
147148
dmaman->chan_available = chans_available;
148149
dmaman->has_feature[BCM_DMA_FEATURE_FAST_ORD] = 0x0c; /* chans 2 & 3 */
150+
dmaman->has_feature[BCM_DMA_FEATURE_BULK_ORD] = 0x01; /* chan 0 */
149151
}
150152

151153
static int vc_dmaman_chan_alloc(struct vc_dmaman *dmaman,

arch/arm/mach-bcm2708/include/mach/dma.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,10 @@ extern int /*rc*/ bcm_dma_abort(void __iomem *dma_chan_base);
7272
/* When listing features we can ask for when allocating DMA channels give
7373
those with higher priority smaller ordinal numbers */
7474
#define BCM_DMA_FEATURE_FAST_ORD 0
75+
#define BCM_DMA_FEATURE_BULK_ORD 1
7576
#define BCM_DMA_FEATURE_FAST (1<<BCM_DMA_FEATURE_FAST_ORD)
76-
#define BCM_DMA_FEATURE_COUNT 1
77+
#define BCM_DMA_FEATURE_BULK (1<<BCM_DMA_FEATURE_BULK_ORD)
78+
#define BCM_DMA_FEATURE_COUNT 2
7779

7880
/* return channel no or -ve error */
7981
extern int bcm_dma_chan_alloc(unsigned preferred_feature_set,

0 commit comments

Comments
 (0)