|
@@ -552,7 +552,6 @@ static void bf5xx_nand_dma_write_buf(struct mtd_info *mtd,
|
|
|
static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info)
|
|
|
{
|
|
|
int ret;
|
|
|
- unsigned short val;
|
|
|
|
|
|
/* Do not use dma */
|
|
|
if (!hardware_ecc)
|
|
@@ -560,13 +559,6 @@ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info)
|
|
|
|
|
|
init_completion(&info->dma_completion);
|
|
|
|
|
|
-#ifdef CONFIG_BF54x
|
|
|
- /* Setup DMAC1 channel mux for NFC which shared with SDH */
|
|
|
- val = bfin_read_DMAC1_PERIMUX();
|
|
|
- val &= 0xFFFE;
|
|
|
- bfin_write_DMAC1_PERIMUX(val);
|
|
|
- SSYNC();
|
|
|
-#endif
|
|
|
/* Request NFC DMA channel */
|
|
|
ret = request_dma(CH_NFC, "BF5XX NFC driver");
|
|
|
if (ret < 0) {
|
|
@@ -574,6 +566,12 @@ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_BF54x
|
|
|
+ /* Setup DMAC1 channel mux for NFC which shared with SDH */
|
|
|
+ bfin_write_DMAC1_PERIMUX(bfin_read_DMAC1_PERIMUX() & ~1);
|
|
|
+ SSYNC();
|
|
|
+#endif
|
|
|
+
|
|
|
set_dma_callback(CH_NFC, (void *) bf5xx_nand_dma_irq, (void *) info);
|
|
|
|
|
|
/* Turn off the DMA channel first */
|