aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2008-05-17 03:57:01 -0400
committerBryan Wu <cooloney@kernel.org>2008-05-17 03:57:01 -0400
commit5ce998cf6d1dbb28f14dea879a366ed5348f9681 (patch)
tree03f5b3bd3af3d5a48df42b3c5f50d02b98dcbd78
parent9cd9c616f5890c9345546e03c99ba392b7a82cdf (diff)
Blackfin arch: Check for Anomaly 05000182
IMDMA does not operate to full speed for 600MHz and higher devices Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index fd5448d6107c..d54f19085f37 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -90,6 +90,17 @@ int request_dma(unsigned int channel, char *device_id)
90{ 90{
91 91
92 pr_debug("request_dma() : BEGIN \n"); 92 pr_debug("request_dma() : BEGIN \n");
93
94#if defined(CONFIG_BF561) && ANOMALY_05000182
95 if (channel >= CH_IMEM_STREAM0_DEST && channel <= CH_IMEM_STREAM1_DEST) {
96 if (get_cclk() > 500000000) {
97 printk(KERN_WARNING
98 "Request IMDMA failed due to ANOMALY 05000182\n");
99 return -EFAULT;
100 }
101 }
102#endif
103
93 mutex_lock(&(dma_ch[channel].dmalock)); 104 mutex_lock(&(dma_ch[channel].dmalock));
94 105
95 if ((dma_ch[channel].chan_status == DMA_CHANNEL_REQUESTED) 106 if ((dma_ch[channel].chan_status == DMA_CHANNEL_REQUESTED)