qcacmn: Add fastpath Rx support

With dedicated CE for Rx and Tx completion HTT messages, skip processing
in Host Target Communication layer.
Do special handling in HIF-CE and HTT layer, this optimization results
in 3-4% CPU utilization gain.

Change-Id: I400148a0e24ac62dd09e2a95d5f35d94d83fe2df
CRs-Fixed: 987182
This commit is contained in:
Manjunathappa Prakash
2016-04-13 23:38:16 -07:00
committad av Gerrit - the friendly Code Review server
förälder c7d5429428
incheckning 7399f148b5
7 ändrade filer med 442 tillägg och 14 borttagningar

Visa fil

@@ -184,4 +184,16 @@ static inline unsigned char *os_malloc(osdev_t nic_dev,
#define SET_NETDEV_DEV(ndev, pdev)
#endif
#define OS_SYNC_SINGLE_FOR_CPU(pdev, paddr_lo, len, oprn) \
{ \
dma_sync_single_for_cpu(pdev, paddr_lo, len, oprn); \
}
#define OS_SYNC_SINGLE_FOR_DEVICE(pdev, paddr_lo, len, oprn) \
{ \
dma_sync_single_for_device(pdev, paddr_lo, len, oprn);\
}
#define SLOTS_PER_TX 2
#endif /* end of _OSDEP_H */

Visa fil

@@ -420,6 +420,24 @@ static inline void qdf_nbuf_free(qdf_nbuf_t buf)
#endif
#ifdef WLAN_FEATURE_FASTPATH
/**
* qdf_nbuf_init_fast() - before put buf into pool,turn it to init state
*
* @buf: buf instance
* Return: data pointer of this buf where new data has to be
* put, or NULL if there is not enough room in this buf.
*/
static inline void
qdf_nbuf_init_fast(qdf_nbuf_t nbuf)
{
atomic_set(&nbuf->users, 1);
nbuf->data = nbuf->head + NET_SKB_PAD;
skb_reset_tail_pointer(nbuf);
}
#endif /* WLAN_FEATURE_FASTPATH */
static inline void qdf_nbuf_tx_free(qdf_nbuf_t buf_list, int tx_err)
{
__qdf_nbuf_tx_free(buf_list, tx_err);