[U-Boot] [PATCH v2] mmc: mxsmmc: Fix operation with DMA
Anatolij Gustschin
agust at denx.de
Mon Apr 2 21:30:11 CEST 2012
Hi Fabio,
On Mon, 2 Apr 2012 16:18:18 -0300
Fabio Estevam <festevam at gmail.com> wrote:
> 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()?
Won't calling mxs_dma_init() from arch_misc_init() work?
Thanks,
Anatolij
More information about the U-Boot
mailing list