qcacmn: Propagate config parameters to datapath

Provide an API to accept the config parameters
from the upper layer and store them in wlan_cfg_ctx.
Enable/Disable the datapath features based on these
parameters.

Change-Id: I9336cac686bfb875cea242685a122ec98acdf8c2
CRs-Fixed: 2097229
Šī revīzija ir iekļauta:
Venkata Sharath Chandra Manchala
2017-07-10 11:59:54 -07:00
revīziju iesūtīja Gerrit - the friendly Code Review server
vecāks bd20096931
revīzija 5a02b1f053
6 mainīti faili ar 163 papildinājumiem un 55 dzēšanām

Parādīt failu

@@ -181,11 +181,6 @@
#define WLAN_CFG_HTT_PKT_TYPE 2
#define WLAN_CFG_MAX_PEER_ID 64
#ifdef WLAN_RX_HASH
#define WLAN_RX_HASH_ENABLE 1
#else
#define WLAN_RX_HASH_ENABLE 0
#endif
#ifdef CONFIG_MCL
static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
@@ -329,9 +324,6 @@ struct wlan_cfg_dp_soc_ctxt *wlan_cfg_soc_attach()
rxdma2host_ring_mask[i];
}
wlan_cfg_ctx->rx_hash = WLAN_RX_HASH_ENABLE;
wlan_cfg_ctx->lro_enabled = WLAN_LRO_ENABLE;
/* This is default mapping and can be overridden by HW config
* received from FW */
wlan_cfg_set_hw_macid(wlan_cfg_ctx, 0, 1);
@@ -675,12 +667,7 @@ int wlan_cfg_get_int_timer_threshold_other(struct wlan_cfg_dp_soc_ctxt *cfg)
*/
int wlan_cfg_get_tx_flow_stop_queue_th(struct wlan_cfg_dp_soc_ctxt *cfg)
{
#ifdef QCA_WIFI_NAPIER_EMULATION
/* TODO remove this hack when INI hookup is ready */
return 15;
#else
return cfg->tx_flow_stop_queue_th;
#endif
return cfg->tx_flow_stop_queue_threshold;
}
/**
@@ -692,11 +679,6 @@ int wlan_cfg_get_tx_flow_stop_queue_th(struct wlan_cfg_dp_soc_ctxt *cfg)
*/
int wlan_cfg_get_tx_flow_start_queue_offset(struct wlan_cfg_dp_soc_ctxt *cfg)
{
#ifdef QCA_WIFI_NAPIER_EMULATION
/* TODO remove this hack when INI hookup is ready */
return 10;
#else
return cfg->tx_flow_start_queue_offset;
#endif
}
#endif /* QCA_LL_TX_FLOW_CONTROL_V2 */

Parādīt failu

@@ -62,6 +62,7 @@
#define DP_NON_QOS_TID 16
struct wlan_cfg_dp_pdev_ctxt;
/**
* 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
@@ -90,8 +91,11 @@ struct wlan_cfg_dp_pdev_ctxt;
* @int_reo_status_ring_mask - Bitmap of reo status ring interrupts mapped to each
* NAPI/Intr context
* @int_ce_ring_mask - Bitmap of CE interrupts mapped to each NAPI/Intr context
* @lro_enabled - is LRO enabled
* @lro_enabled - enable/disable lro feature
* @rx_hash - Enable hash based steering of rx packets
* @tso_enabled - enable/disable tso feature
* @napi_enabled - enable/disable interrupt mode for reaping tx and rx packets
* @tcp_Udp_Checksumoffload - enable/disable checksum offload
* @nss_cfg - nss configuration
*/
struct wlan_cfg_dp_soc_ctxt {
@@ -128,10 +132,13 @@ struct wlan_cfg_dp_soc_ctxt {
int base_hw_macid;
bool lro_enabled;
bool rx_hash;
bool tso_enabled;
bool napi_enabled;
bool tcp_udp_checksumoffload;
int nss_cfg;
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
int tx_flow_stop_queue_th;
int tx_flow_start_queue_offset;
uint32_t tx_flow_stop_queue_threshold;
uint32_t tx_flow_start_queue_offset;
#endif
};