diff options
author | Mike Frysinger <vapier.adi@gmail.com> | 2009-01-07 10:14:38 -0500 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2009-01-07 10:14:38 -0500 |
commit | d41e8009994f429ef7198a750c37fd9660366fab (patch) | |
tree | 34a8cd4e044bc9b60f275838e3a98bb2f9946b3a /arch/blackfin/include/asm/dma.h | |
parent | b6498391923c0a189c7719bc559f713f1e872238 (diff) |
Blackfin arch: dma code: cannot simply OR the ndsize
cannot simply OR the ndsize ... need to clear out the old value first
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/include/asm/dma.h')
-rw-r--r-- | arch/blackfin/include/asm/dma.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/blackfin/include/asm/dma.h b/arch/blackfin/include/asm/dma.h index 264feb4eb175..f58ca64d729c 100644 --- a/arch/blackfin/include/asm/dma.h +++ b/arch/blackfin/include/asm/dma.h | |||
@@ -205,7 +205,9 @@ static inline unsigned long get_dma_curr_addr(unsigned int channel) | |||
205 | 205 | ||
206 | static inline void set_dma_sg(unsigned int channel, struct dmasg *sg, int ndsize) | 206 | static inline void set_dma_sg(unsigned int channel, struct dmasg *sg, int ndsize) |
207 | { | 207 | { |
208 | dma_ch[channel].regs->cfg |= ((ndsize & 0x0F) << 8); | 208 | dma_ch[channel].regs->cfg = |
209 | (dma_ch[channel].regs->cfg & ~(0xf << 8)) | | ||
210 | ((ndsize & 0xf) << 8); | ||
209 | dma_ch[channel].regs->next_desc_ptr = sg; | 211 | dma_ch[channel].regs->next_desc_ptr = sg; |
210 | } | 212 | } |
211 | 213 | ||