[U-Boot] [PATCH v2] mmc: mxsmmc: Fix operation with DMA

Fabio Estevam fabio.estevam at freescale.com
Mon Apr 2 20:24:10 CEST 2012


Initialize the DMA controller so that the following errors are fixed:

U-Boot 2012.04-rc1-00001-g037cbfd (Apr 02 2012 - 10:57:48)

Freescale i.MX28 family at 454 MHz
DRAM:  128 MiB
MMC:   MXS MMC: 0
MMC0: DMA transfer failed
MMC0: DMA transfer failed
MMC0: DMA transfer failed
MMC0: DMA transfer failed
MMC init failed

In order to not break the DMA NAND support, remove mxs_dma_init from the
NAND driver now that it is called from the core dma file.

Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
--
Changes since v1:
- Call mxs_dma_init() from a common location and remove it
from the mxs_nand driver

 drivers/dma/apbh_dma.c      |    2 ++
 drivers/mtd/nand/mxs_nand.c |    3 ---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/apbh_dma.c b/drivers/dma/apbh_dma.c
index c086629..68c4be2 100644
--- a/drivers/dma/apbh_dma.c
+++ b/drivers/dma/apbh_dma.c
@@ -346,6 +346,8 @@ struct mxs_dma_desc *mxs_dma_desc_alloc(void)
 	struct mxs_dma_desc *pdesc;
 	uint32_t size;
 
+	/* Initialize the DMA controller. */
+	mxs_dma_init();
 	size = roundup(sizeof(struct mxs_dma_desc), MXS_DMA_ALIGNMENT);
 	pdesc = memalign(MXS_DMA_ALIGNMENT, size);
 
diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c
index 4b1297a..95eac35 100644
--- a/drivers/mtd/nand/mxs_nand.c
+++ b/drivers/mtd/nand/mxs_nand.c
@@ -1072,9 +1072,6 @@ int mxs_nand_init(struct mxs_nand_info *info)
 			goto err2;
 	}
 
-	/* Init the DMA controller. */
-	mxs_dma_init();
-
 	/* Reset the GPMI block. */
 	mx28_reset_block(&gpmi_regs->hw_gpmi_ctrl0_reg);
 
-- 
1.7.1




More information about the U-Boot mailing list