Hi Kuo-Jung, On Tue, 7 May 2013 14:25:07 +0800, Kuo-Jung Su <dant...@gmail.com> wrote:
> diff --git a/arch/arm/include/asm/dma-mapping.h > b/arch/arm/include/asm/dma-mapping.h > index 5bbb0a0..5a13af5 100644 > --- a/arch/arm/include/asm/dma-mapping.h > +++ b/arch/arm/include/asm/dma-mapping.h > @@ -3,6 +3,9 @@ > * Stelian Pop <stel...@popies.net> > * Lead Tech Design <www.leadtechdesign.com> > * > + * (C) Copyright 2010 > + * Dante Su <dant...@faraday-tech.com> Fix Copyright notices (dates) throughout the patch (and series as needed). > * See file CREDITS for list of people who contributed to this > * project. > * > @@ -24,22 +27,76 @@ > #ifndef __ASM_ARM_DMA_MAPPING_H > #define __ASM_ARM_DMA_MAPPING_H > > +#if defined(CONFIG_FARADAY) && !defined(CONFIG_SYS_DCACHE_OFF) > +#include <asm/u-boot.h> > +#include <asm/global_data.h> > +#include <asm/io.h> > +#include <malloc.h> > + > +DECLARE_GLOBAL_DATA_PTR; > +#endif /* CONFIG_FARADAY && !CONFIG_SYS_DCACHE_OFF */ > + > enum dma_data_direction { > DMA_BIDIRECTIONAL = 0, > DMA_TO_DEVICE = 1, > DMA_FROM_DEVICE = 2, > }; > > -static void *dma_alloc_coherent(size_t len, unsigned long *handle) > +static inline void *dma_alloc_coherent(size_t len, unsigned long *handle) > { > - *handle = (unsigned long)malloc(len); > +#if defined(CONFIG_FARADAY) && !defined(CONFIG_SYS_DCACHE_OFF) > + void *map, *va = memalign(ARCH_DMA_MINALIGN, len); > + > + if (va && gd->arch.cpu_mmu) { > + invalidate_dcache_range((ulong)va, (ulong)va + len); > + map = map_physmem((phys_addr_t)va, len, MAP_NOCACHE); > + if (!map) > + free(va); > + va = map; > + } > + > + if (handle) > + *handle = virt_to_phys(va); > + > + return va; > +#else /* CONFIG_FARADAY && !CONFIG_SYS_DCACHE_OFF */ > + *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len); > return (void *)*handle; This is not identical to what the code was before the patch. Why the difference? > 1.7.9.5 Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot