From cdebcd5d1cab87c6aa1366ce4ebaac8f04706bba Mon Sep 17 00:00:00 2001 From: "Poddar, Siddarth" Date: Fri, 29 Apr 2016 19:11:41 +0530 Subject: [PATCH] qcacmn: Add firmware download support for sdio bus (Part 5 - HIF SDIO) Add BMI and firmware download support for sdio bus platform. Refactor fw and bmi download routines to get rid of compile time bus specific macro. Refactor allocation and free routines for high latency bus. CRs-Fixed: 969334 Change-Id: I2c217891d0ca4b503e7388b3ebe2f787e8325af5 --- qdf/linux/src/qdf_mem.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/qdf/linux/src/qdf_mem.c b/qdf/linux/src/qdf_mem.c index 8c5f2638abee..101d221e93cb 100644 --- a/qdf/linux/src/qdf_mem.c +++ b/qdf/linux/src/qdf_mem.c @@ -860,6 +860,7 @@ void qdf_mem_move(void *dst_addr, const void *src_addr, uint32_t num_bytes) } EXPORT_SYMBOL(qdf_mem_move); +#if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) /** * qdf_mem_alloc_consistent() - allocates consistent qdf memory * @osdev: OS device handle @@ -872,19 +873,17 @@ EXPORT_SYMBOL(qdf_mem_move); void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size, qdf_dma_addr_t *phy_addr) { -#if defined(A_SIMOS_DEVHOST) - static int first = 1; void *vaddr; - if (first) { - first = 0; - qdf_print("Warning: bypassing %s\n", __func__); - } - vaddr = qdf_mem_malloc(size); *phy_addr = ((qdf_dma_addr_t) vaddr); return vaddr; +} + #else +void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size, + qdf_dma_addr_t *phy_addr) +{ int flags = GFP_KERNEL; void *alloc_mem = NULL; @@ -896,10 +895,12 @@ void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size, qdf_print("%s Warning: unable to alloc consistent memory of size %zu!\n", __func__, size); return alloc_mem; -#endif } + +#endif EXPORT_SYMBOL(qdf_mem_alloc_consistent); +#if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) /** * qdf_mem_free_consistent() - free consistent qdf memory * @osdev: OS device handle @@ -915,19 +916,20 @@ inline void qdf_mem_free_consistent(qdf_device_t osdev, void *dev, qdf_dma_addr_t phy_addr, qdf_dma_context_t memctx) { -#if defined(A_SIMOS_DEVHOST) - static int first = 1; - - if (first) { - first = 0; - qdf_print("Warning: bypassing %s\n", __func__); - } qdf_mem_free(vaddr); return; -#else - dma_free_coherent(dev, size, vaddr, phy_addr); -#endif } + +#else +inline void qdf_mem_free_consistent(qdf_device_t osdev, void *dev, + qdf_size_t size, void *vaddr, + qdf_dma_addr_t phy_addr, + qdf_dma_context_t memctx) +{ + dma_free_coherent(dev, size, vaddr, phy_addr); +} + +#endif EXPORT_SYMBOL(qdf_mem_free_consistent); /**