qcacmn: Create a wlan configuration table for ring types

1. Add config table to accommodate per ring type
   configuration to have a finer control over the
   ring.
2. Provide struct wlan_srng_cfg interface to add
   more parameters to control the ring.
3. Add interrupt threshold configuration parameters
   to wlan_srng_cfg structure.
4. Add WLAN_CFG_INT_TIMER_THRESHOLD_WBM_RELEASE_RING
   and WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING to have
   different timer values for REO and WBM ring.

Change-Id: Ied50e3241ab2cc181ca4ed7f126959cd5d9d2de5
CRs-Fixed: 2455297
此提交包含在:
Venkata Sharath Chandra Manchala
2019-05-16 17:33:18 -07:00
提交者 nshrivas
父節點 95101bb281
當前提交 cb6d0c0741
共有 5 個檔案被更改,包括 227 行新增40 行删除

查看文件

@@ -74,6 +74,19 @@
struct wlan_cfg_dp_pdev_ctxt;
/**
* struct wlan_srng_cfg - Per ring configuration parameters
* @timer_threshold: Config to control interrupts based on timer duration
* @batch_count_threshold: Config to control interrupts based on
* number of packets in the ring
* @low_threshold: Config to control low threshold interrupts for SRC rings
*/
struct wlan_srng_cfg {
uint32_t timer_threshold;
uint32_t batch_count_threshold;
uint32_t low_threshold;
};
/**
* struct wlan_cfg_dp_soc_ctxt - Configuration parameters for SoC (core TxRx)
* @num_int_ctxts: Number of NAPI/Interrupt contexts to be registered for DP
@@ -1002,6 +1015,16 @@ wlan_cfg_get_dp_soc_rxdma_err_dst_ring_size(struct wlan_cfg_dp_soc_ctxt *cfg);
bool
wlan_cfg_get_dp_caps(struct wlan_cfg_dp_soc_ctxt *cfg,
enum cdp_capabilities dp_caps);
/**
* wlan_set_srng_cfg() - Fill per ring specific
* configuration parameters
* @wlan_cfg: global srng configuration table
*
* Return: None
*/
void wlan_set_srng_cfg(struct wlan_srng_cfg **wlan_cfg);
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
int wlan_cfg_get_tx_flow_stop_queue_th(struct wlan_cfg_dp_soc_ctxt *cfg);