qcacmn: Add RX prealloc pool for replenishing RX buffers

Add and initialize a preallocated pool of buffers which can
be used to replenish RX buffers. During replenish, the buffers
from the pool are used instead of allocating/mapping a new buffer
in the softirq context. This preallocated pool will be refilled
in thread context.

Change-Id: Idf3bd7d25c5d57ddba105ccd8fab672c26a184f1
CRs-Fixed: 2869345
This commit is contained in:
Karthik Kantamneni
2021-01-19 11:41:00 +05:30
committed by snandini
parent 71e3244d46
commit 595bc84a39
7 changed files with 305 additions and 13 deletions

View File

@@ -665,6 +665,29 @@ cdp_register_rx_mic_error_ind_handler(ol_txrx_soc_handle soc,
soc->ol_ops->rx_mic_error = rx_mic_cb;
}
typedef void (*rx_refill_thread_sched_cb)(ol_txrx_soc_handle soc);
/**
* cdp_register_rx_refill_thread_sched_handler() - API to register RX refill
* thread schedule handler
*
* @soc: soc handle
*
* Return: void
*/
static inline void
cdp_register_rx_refill_thread_sched_handler(ol_txrx_soc_handle soc,
rx_refill_thread_sched_cb rx_sched_cb)
{
if (!soc || !soc->ol_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
"%s invalid instance", __func__);
return;
}
soc->ol_ops->dp_rx_sched_refill_thread = rx_sched_cb;
}
/**
* cdp_pdev_reset_driver_del_ack() - reset driver TCP delayed ack flag
* @soc: data path soc handle