From 381f034ed607042fa171673b6c4d0150745842e8 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Thu, 5 Mar 2015 22:50:01 +0100 Subject: ARM: move DMA alloc functions to dma.h This better separates the DMA from the MMU functionality. Also move all drivers that only depends on asm/mmu.h for the alloc functions over to the common header. Signed-off-by: Lucas Stach Signed-off-by: Sascha Hauer --- arch/arm/include/asm/dma.h | 25 ++++++++++++++++++++++++- arch/arm/include/asm/mmu.h | 26 -------------------------- drivers/ata/ahci.c | 1 + drivers/dma/apbh_dma.c | 2 +- drivers/mci/dw_mmc.c | 1 + drivers/mtd/nand/nand_mxs.c | 2 +- drivers/net/altera_tse.c | 1 + drivers/net/arc_emac.c | 1 + drivers/net/at91_ether.c | 1 + drivers/net/designware.c | 1 + drivers/net/fec_imx.c | 1 + drivers/net/macb.c | 1 + drivers/net/mvneta.c | 1 + drivers/net/orion-gbe.c | 1 + drivers/net/rtl8139.c | 1 + drivers/net/rtl8169.c | 1 + drivers/net/xgmac.c | 1 + drivers/spi/mxs_spi.c | 1 - drivers/usb/gadget/fsl_udc.c | 3 +++ drivers/usb/host/ehci-hcd.c | 1 + drivers/usb/host/ohci-hcd.c | 1 + drivers/usb/host/xhci-hcd.c | 2 +- drivers/usb/host/xhci-hub.c | 1 - drivers/video/atmel_hlcdfb.c | 1 - drivers/video/atmel_lcdfb.c | 1 - drivers/video/atmel_lcdfb_core.c | 2 +- drivers/video/imx-ipu-fb.c | 1 + drivers/video/imx-ipu-v3/ipu-common.c | 1 - drivers/video/imx-ipu-v3/ipufb.c | 2 +- drivers/video/omap.c | 1 + drivers/video/pxa.c | 2 +- include/dma.h | 2 ++ 32 files changed, 52 insertions(+), 38 deletions(-) diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h index cb9cd1b4ea..48a9c6e67b 100644 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h @@ -5,4 +5,27 @@ * */ -#include +#include + +#define dma_alloc dma_alloc +static inline void *dma_alloc(size_t size) +{ + return xmemalign(64, ALIGN(size, 64)); +} + +#ifndef CONFIG_MMU +static inline void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle) +{ + void *ret = xmemalign(4096, size); + if (dma_handle) + *dma_handle = (dma_addr_t)ret; + + return ret; +} + +static inline void dma_free_coherent(void *mem, dma_addr_t dma_handle, + size_t size) +{ + free(mem); +} +#endif diff --git a/arch/arm/include/asm/mmu.h b/arch/arm/include/asm/mmu.h index d0a644b88f..01c20bd0dd 100644 --- a/arch/arm/include/asm/mmu.h +++ b/arch/arm/include/asm/mmu.h @@ -11,8 +11,6 @@ #define PMD_SECT_DEF_UNCACHED (PMD_SECT_AP_WRITE | PMD_SECT_AP_READ | PMD_TYPE_SECT) #define PMD_SECT_DEF_CACHED (PMD_SECT_WB | PMD_SECT_DEF_UNCACHED) -#define DMA_ADDRESS_BROKEN NULL - struct arm_memory; static inline void mmu_enable(void) @@ -28,16 +26,7 @@ static inline void setup_dma_coherent(unsigned long offset) { } -#define dma_alloc dma_alloc -static inline void *dma_alloc(size_t size) -{ - return xmemalign(64, ALIGN(size, 64)); -} - #ifdef CONFIG_MMU -void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle); -void dma_free_coherent(void *mem, dma_addr_t dma_handle, size_t size); - void dma_clean_range(unsigned long, unsigned long); void dma_flush_range(unsigned long, unsigned long); void dma_inv_range(unsigned long, unsigned long); @@ -47,21 +36,6 @@ uint32_t mmu_get_pte_cached_flags(void); uint32_t mmu_get_pte_uncached_flags(void); #else -static inline void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle) -{ - void *ret = xmemalign(4096, size); - if (dma_handle) - *dma_handle = (dma_addr_t)ret; - - return ret; -} - -static inline void dma_free_coherent(void *mem, dma_addr_t dma_handle, - size_t size) -{ - free(mem); -} - static inline void dma_clean_range(unsigned long s, unsigned long e) { } diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index d299ac6e27..2c121d7c5e 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include diff --git a/drivers/dma/apbh_dma.c b/drivers/dma/apbh_dma.c index 5692c500b8..ebfc64700e 100644 --- a/drivers/dma/apbh_dma.c +++ b/drivers/dma/apbh_dma.c @@ -20,13 +20,13 @@ #include #include #include +#include #include #include #include #include #include -#include #define HW_APBHX_CTRL0 0x000 #define BM_APBH_CTRL0_APB_BURST8_EN (1 << 29) diff --git a/drivers/mci/dw_mmc.c b/drivers/mci/dw_mmc.c index 18fb45d2b8..0ec37b6638 100644 --- a/drivers/mci/dw_mmc.c +++ b/drivers/mci/dw_mmc.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c index 98fd9f2579..d5d64f369e 100644 --- a/drivers/mtd/nand/nand_mxs.c +++ b/drivers/mtd/nand/nand_mxs.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #include #define MX28_BLOCK_SFTRST (1 << 31) diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c index 3c49c0945b..385a7150ba 100644 --- a/drivers/net/altera_tse.c +++ b/drivers/net/altera_tse.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/arc_emac.c b/drivers/net/arc_emac.c index 05206494fe..40516a593f 100644 --- a/drivers/net/arc_emac.c +++ b/drivers/net/arc_emac.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/net/at91_ether.c b/drivers/net/at91_ether.c index 20aa045da3..9597639b44 100644 --- a/drivers/net/at91_ether.c +++ b/drivers/net/at91_ether.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/designware.c b/drivers/net/designware.c index e0e348fb00..0428a8cbb4 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -22,6 +22,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index c12b26b4a0..266357e551 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -15,6 +15,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 9cdb7d8539..1ed5c0ebc2 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -38,6 +38,7 @@ #include #include +#include #include #include #include diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c index 32ba726ac9..f2948e4ed7 100644 --- a/drivers/net/mvneta.c +++ b/drivers/net/mvneta.c @@ -24,6 +24,7 @@ */ #include +#include #include #include #include diff --git a/drivers/net/orion-gbe.c b/drivers/net/orion-gbe.c index 5104f87264..8792e75343 100644 --- a/drivers/net/orion-gbe.c +++ b/drivers/net/orion-gbe.c @@ -27,6 +27,7 @@ * MA 02110-1301 USA */ #include +#include #include #include #include diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c index b24a083a56..d57c706e52 100644 --- a/drivers/net/rtl8139.c +++ b/drivers/net/rtl8139.c @@ -1,4 +1,5 @@ #include +#include #include #include #include diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index bab20e8c57..e465e23352 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -16,6 +16,7 @@ #include #include +#include #include #include #include diff --git a/drivers/net/xgmac.c b/drivers/net/xgmac.c index 240684ee1e..c5971108e4 100644 --- a/drivers/net/xgmac.c +++ b/drivers/net/xgmac.c @@ -16,6 +16,7 @@ */ #include +#include #include #include #include diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c index 8932103475..9fe2fd4eaf 100644 --- a/drivers/spi/mxs_spi.c +++ b/drivers/spi/mxs_spi.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/usb/gadget/fsl_udc.c b/drivers/usb/gadget/fsl_udc.c index ed7c318a39..f6004b4146 100644 --- a/drivers/usb/gadget/fsl_udc.c +++ b/drivers/usb/gadget/fsl_udc.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -10,6 +11,8 @@ #include #include +#include + /* ### define USB registers here */ #define USB_MAX_CTRL_PAYLOAD 64 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index c033842bc1..89a8ffb2a8 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -18,6 +18,7 @@ */ /*#define DEBUG */ #include +#include #include #include #include diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index bbd0bd6b77..010ba35014 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c @@ -41,6 +41,7 @@ * to activate workaround for bug #41 or this driver will NOT work! */ #include +#include #include #include #include diff --git a/drivers/usb/host/xhci-hcd.c b/drivers/usb/host/xhci-hcd.c index 0a4601ca19..c3d623e91f 100644 --- a/drivers/usb/host/xhci-hcd.c +++ b/drivers/usb/host/xhci-hcd.c @@ -12,9 +12,9 @@ * warranty of any kind, whether express or implied. */ //#define DEBUG -#include #include #include +#include #include #include #include diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index bf952570f8..5ae16f5ca5 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -14,7 +14,6 @@ * warranty of any kind, whether express or implied. */ //#define DEBUG -#include #include #include #include diff --git a/drivers/video/atmel_hlcdfb.c b/drivers/video/atmel_hlcdfb.c index 26db7589af..f7aab7f454 100644 --- a/drivers/video/atmel_hlcdfb.c +++ b/drivers/video/atmel_hlcdfb.c @@ -27,7 +27,6 @@ #include #include #include -#include #include "atmel_lcdfb.h" diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c index bb302bdc94..20204c1dd4 100644 --- a/drivers/video/atmel_lcdfb.c +++ b/drivers/video/atmel_lcdfb.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include "atmel_lcdfb.h" diff --git a/drivers/video/atmel_lcdfb_core.c b/drivers/video/atmel_lcdfb_core.c index a0a822c240..76116af1da 100644 --- a/drivers/video/atmel_lcdfb_core.c +++ b/drivers/video/atmel_lcdfb_core.c @@ -19,11 +19,11 @@ */ #include +#include #include #include #include #include -#include #include "atmel_lcdfb.h" diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c index eb913b1b4c..b56658202c 100644 --- a/drivers/video/imx-ipu-fb.c +++ b/drivers/video/imx-ipu-fb.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include diff --git a/drivers/video/imx-ipu-v3/ipu-common.c b/drivers/video/imx-ipu-v3/ipu-common.c index f13cf012a1..5c85f8615c 100644 --- a/drivers/video/imx-ipu-v3/ipu-common.c +++ b/drivers/video/imx-ipu-v3/ipu-common.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/video/imx-ipu-v3/ipufb.c b/drivers/video/imx-ipu-v3/ipufb.c index d9c81b25e8..7ee4ae3627 100644 --- a/drivers/video/imx-ipu-v3/ipufb.c +++ b/drivers/video/imx-ipu-v3/ipufb.c @@ -12,6 +12,7 @@ #define pr_fmt(fmt) "IPU: " fmt #include +#include #include #include #include @@ -21,7 +22,6 @@ #include #include #include -#include #include "imx-ipu-v3.h" #include "ipuv3-plane.h" diff --git a/drivers/video/omap.c b/drivers/video/omap.c index 91f9e24d7d..3603ad2ccb 100644 --- a/drivers/video/omap.c +++ b/drivers/video/omap.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include diff --git a/drivers/video/pxa.c b/drivers/video/pxa.c index 61ce0a5d33..e76404d9c9 100644 --- a/drivers/video/pxa.c +++ b/drivers/video/pxa.c @@ -24,6 +24,7 @@ */ #include +#include #include #include #include @@ -37,7 +38,6 @@ #include #include -#include #include /* PXA LCD DMA descriptor */ diff --git a/include/dma.h b/include/dma.h index fb75eec678..800d8b155f 100644 --- a/include/dma.h +++ b/include/dma.h @@ -14,6 +14,8 @@ #include #include +#define DMA_ADDRESS_BROKEN NULL + #ifndef dma_alloc static inline void *dma_alloc(size_t size) { -- cgit v1.2.3