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

Marek Vasut marex at denx.de
Mon Apr 2 20:39:46 CEST 2012


Dear Fabio Estevam,

> 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();

This mxs_dma_desc_alloc() is called in a loop in the MXS NAND driver, this is 
even worse ;-)

Possibly some common mx28 init code would be better?

NAK (sorry, I know it hurts)

Best regards,
Marek Vasut


More information about the U-Boot mailing list