qcacmn: Add USB bus support (QDF)

Add module specific changes for USB bus support.

Change-Id: Idb9fe1232d451e4f88a001fbd6591ba13b0c859a
CRs-Fixed: 1023663
This commit is contained in:
Mohit Khanna
2016-05-17 15:28:18 -07:00
committed by Vishwajith Upendra
parent 440c5295c2
commit d8a881864c
7 changed files with 53 additions and 23 deletions

View File

@@ -1141,29 +1141,19 @@ bool qdf_nbuf_is_ipv4_arp_pkt(qdf_nbuf_t buf)
} }
/** /**
* qdf_invalidate_range() - invalidate the virtual address range specified by * qdf_invalidate_range() - invalidate virtual address range
* start and end addresses. * @start: start address of the address range
* Note: This does not write back the cache entries. * @end: end address of the address range
*
* Note that this function does not write back the cache entries.
* *
* Return: none * Return: none
*/ */
#ifdef MSM_PLATFORM
static inline void qdf_invalidate_range(void *start, void *end) static inline void qdf_invalidate_range(void *start, void *end)
{ {
dmac_inv_range(start, end); __qdf_invalidate_range(start, end);
} }
#else
static inline void qdf_invalidate_range(void *start, void *end)
{
/* TODO figure out how to invalidate cache on x86 and other
non-MSM platform */
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
"Cache invalidate not yet implemneted for non-MSM platform");
return;
}
#endif
/** /**
* qdf_nbuf_reset_num_frags() - decrement the number of fragments * qdf_nbuf_reset_num_frags() - decrement the number of fragments
* @buf: Network buffer * @buf: Network buffer

View File

@@ -78,6 +78,7 @@
* @QDF_STATUS_FT_PREAUTH_KEY_FAILED: ft preauth key failed * @QDF_STATUS_FT_PREAUTH_KEY_FAILED: ft preauth key failed
* @QDF_STATUS_CMD_NOT_QUEUED: command not queued * @QDF_STATUS_CMD_NOT_QUEUED: command not queued
* @QDF_STATUS_FW_MSG_TIMEDOUT: target message timeout * @QDF_STATUS_FW_MSG_TIMEDOUT: target message timeout
* @QDF_STATUS_E_USB_ERROR: USB transaction error
* @QDF_STATUS_MAX: not a realy value just a place holder for max * @QDF_STATUS_MAX: not a realy value just a place holder for max
*/ */
typedef enum { typedef enum {
@@ -123,6 +124,7 @@ typedef enum {
QDF_STATUS_FT_PREAUTH_KEY_FAILED, QDF_STATUS_FT_PREAUTH_KEY_FAILED,
QDF_STATUS_CMD_NOT_QUEUED, QDF_STATUS_CMD_NOT_QUEUED,
QDF_STATUS_FW_MSG_TIMEDOUT, QDF_STATUS_FW_MSG_TIMEDOUT,
QDF_STATUS_E_USB_ERROR,
QDF_STATUS_MAX QDF_STATUS_MAX
} QDF_STATUS; } QDF_STATUS;

View File

@@ -1608,4 +1608,30 @@ __qdf_nbuf_get_priv_ptr(struct sk_buff *skb)
return &skb->cb[8]; return &skb->cb[8];
} }
/**
* __qdf_invalidate_range() - invalidate virtual address range
* @start: start address of the address range
* @end: end address of the address range
*
* Note that this function does not write back the cache entries.
*
* Return: none
*/
#ifdef MSM_PLATFORM
static inline void __qdf_invalidate_range(void *start, void *end)
{
dmac_inv_range(start, end);
}
#else
static inline void __qdf_invalidate_range(void *start, void *end)
{
/* TODO figure out how to invalidate cache on x86 and other
non-MSM platform */
pr_err("Cache invalidate not yet implemneted for non-MSM platforms\n");
return;
}
#endif
#endif /*_I_QDF_NET_BUF_H */ #endif /*_I_QDF_NET_BUF_H */

View File

@@ -35,7 +35,11 @@
#include <linux/jiffies.h> #include <linux/jiffies.h>
#include <linux/delay.h> #include <linux/delay.h>
#ifdef MSM_PLATFORM
#include <asm/arch_timer.h> #include <asm/arch_timer.h>
#else
#include <linux/ktime.h>
#endif
#ifdef CONFIG_CNSS #ifdef CONFIG_CNSS
#include <net/cnss.h> #include <net/cnss.h>
#endif #endif

View File

@@ -154,6 +154,7 @@ struct __qdf_mempool_ctxt;
* @QDF_BUS_TYPE_AHB: AHB Bus * @QDF_BUS_TYPE_AHB: AHB Bus
* @QDF_BUS_TYPE_SNOC: SNOC Bus * @QDF_BUS_TYPE_SNOC: SNOC Bus
* @QDF_BUS_TYPE_SIM: Simulator * @QDF_BUS_TYPE_SIM: Simulator
* @QDF_BUS_TYPE_USB: USB Bus
*/ */
enum qdf_bus_type { enum qdf_bus_type {
QDF_BUS_TYPE_NONE = -1, QDF_BUS_TYPE_NONE = -1,
@@ -161,7 +162,8 @@ enum qdf_bus_type {
QDF_BUS_TYPE_AHB, QDF_BUS_TYPE_AHB,
QDF_BUS_TYPE_SNOC, QDF_BUS_TYPE_SNOC,
QDF_BUS_TYPE_SIM, QDF_BUS_TYPE_SIM,
QDF_BUS_TYPE_SDIO QDF_BUS_TYPE_SDIO,
QDF_BUS_TYPE_USB
}; };
/** /**

View File

@@ -945,7 +945,7 @@ void qdf_mem_move(void *dst_addr, const void *src_addr, uint32_t num_bytes)
} }
EXPORT_SYMBOL(qdf_mem_move); EXPORT_SYMBOL(qdf_mem_move);
#if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) #if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) || defined(HIF_USB)
/** /**
* qdf_mem_alloc_consistent() - allocates consistent qdf memory * qdf_mem_alloc_consistent() - allocates consistent qdf memory
* @osdev: OS device handle * @osdev: OS device handle
@@ -961,7 +961,11 @@ void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size,
void *vaddr; void *vaddr;
vaddr = qdf_mem_malloc(size); vaddr = qdf_mem_malloc(size);
*phy_addr = ((qdf_dma_addr_t) vaddr); *phy_addr = ((uintptr_t) vaddr);
/* using this type conversion to suppress "cast from pointer to integer
* of different size" warning on some platforms
*/
BUILD_BUG_ON(sizeof(*phy_addr) < sizeof(vaddr));
return vaddr; return vaddr;
} }
@@ -985,7 +989,7 @@ void *qdf_mem_alloc_consistent(qdf_device_t osdev, void *dev, qdf_size_t size,
#endif #endif
EXPORT_SYMBOL(qdf_mem_alloc_consistent); EXPORT_SYMBOL(qdf_mem_alloc_consistent);
#if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) #if defined(A_SIMOS_DEVHOST) || defined(HIF_SDIO) || defined(HIF_USB)
/** /**
* qdf_mem_free_consistent() - free consistent qdf memory * qdf_mem_free_consistent() - free consistent qdf memory
* @osdev: OS device handle * @osdev: OS device handle

View File

@@ -311,13 +311,15 @@ EXPORT_SYMBOL(__qdf_nbuf_unmap);
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
#ifdef A_SIMOS_DEVHOST #if defined(A_SIMOS_DEVHOST) || defined (HIF_USB)
QDF_STATUS QDF_STATUS
__qdf_nbuf_map_single(qdf_device_t osdev, qdf_nbuf_t buf, qdf_dma_dir_t dir) __qdf_nbuf_map_single(qdf_device_t osdev, qdf_nbuf_t buf, qdf_dma_dir_t dir)
{ {
qdf_dma_addr_t paddr; qdf_dma_addr_t paddr;
QDF_NBUF_CB_PADDR(buf) = paddr = buf->data; QDF_NBUF_CB_PADDR(buf) = paddr = (uintptr_t)buf->data;
BUILD_BUG_ON(sizeof(paddr) < sizeof(buf->data));
BUILD_BUG_ON(sizeof(QDF_NBUF_CB_PADDR(buf)) < sizeof(buf->data));
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
EXPORT_SYMBOL(__qdf_nbuf_map_single); EXPORT_SYMBOL(__qdf_nbuf_map_single);
@@ -345,7 +347,7 @@ EXPORT_SYMBOL(__qdf_nbuf_map_single);
* *
* Return: none * Return: none
*/ */
#if defined(A_SIMOS_DEVHOST) #if defined(A_SIMOS_DEVHOST) || defined (HIF_USB)
void __qdf_nbuf_unmap_single(qdf_device_t osdev, qdf_nbuf_t buf, void __qdf_nbuf_unmap_single(qdf_device_t osdev, qdf_nbuf_t buf,
qdf_dma_dir_t dir) qdf_dma_dir_t dir)
{ {