aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2008-10-13 05:33:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-13 12:51:38 -0400
commitab2375f2fe256358a982e357d298801cf1adbd00 (patch)
treef64dc27aa9756dd951da6a9453db7a75f437d083 /arch/blackfin/kernel
parentb3ef5aba64aed5be0fccca3ff39c8f2282111ce5 (diff)
Blackfin Serial Driver: Fix bug - request UART2/3 peripheral mapped interrupts in PIO mode
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 93229b3d6e3e..339293d677cc 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -117,15 +117,14 @@ int request_dma(unsigned int channel, char *device_id)
117 117
118#ifdef CONFIG_BF54x 118#ifdef CONFIG_BF54x
119 if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) { 119 if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) {
120 if (strncmp(device_id, "BFIN_UART", 9) == 0) { 120 unsigned int per_map;
121 dma_ch[channel].regs->peripheral_map &= 0x0FFF; 121 per_map = dma_ch[channel].regs->peripheral_map & 0xFFF;
122 dma_ch[channel].regs->peripheral_map |= 122 if (strncmp(device_id, "BFIN_UART", 9) == 0)
123 dma_ch[channel].regs->peripheral_map = per_map |
123 ((channel - CH_UART2_RX + 0xC)<<12); 124 ((channel - CH_UART2_RX + 0xC)<<12);
124 } else { 125 else
125 dma_ch[channel].regs->peripheral_map &= 0x0FFF; 126 dma_ch[channel].regs->peripheral_map = per_map |
126 dma_ch[channel].regs->peripheral_map |=
127 ((channel - CH_UART2_RX + 0x6)<<12); 127 ((channel - CH_UART2_RX + 0x6)<<12);
128 }
129 } 128 }
130#endif 129#endif
131 130