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

Fabio Estevam festevam at gmail.com
Mon Apr 2 21:18:18 CEST 2012


On Mon, Apr 2, 2012 at 4:03 PM, Marek Vasut <marex at denx.de> wrote:

> Because that's called before relocation ;-)

What about this?

--- a/drivers/dma/apbh_dma.c
+++ b/drivers/dma/apbh_dma.c
@@ -35,6 +35,7 @@

 static struct mxs_dma_chan mxs_dma_channels[MXS_MAX_DMA_CHANNELS];

+static int first;
 /*
  * Test is the DMA channel is valid channel
  */
@@ -346,6 +347,10 @@ struct mxs_dma_desc *mxs_dma_desc_alloc(void)
        struct mxs_dma_desc *pdesc;
        uint32_t size;

+       if (!first)
+               mxs_dma_init();
+       first++;
+
        size = roundup(sizeof(struct mxs_dma_desc), MXS_DMA_ALIGNMENT);
        pdesc = memalign(MXS_DMA_ALIGNMENT, size);

Too ugly? Or any better place for calling  mxs_dma_init()?


More information about the U-Boot mailing list