qcacld-3.0: Add legacy DP CFG items and APIs
Add the basic infra for legacy DP CFG items and the APIs to be used from other components. Change-Id: If7ad0e02c65e04ea13a308e680c9ba3b3d84ae25 CRs-Fixed: 2324099
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
#include "wlan_pmo_cfg.h"
|
||||
#include "hdd_config.h"
|
||||
#include "hdd_dp_cfg.h"
|
||||
#include "cfg_legacy_dp.h"
|
||||
|
||||
/* Maintain Alphabetic order here while adding components */
|
||||
#define CFG_ALL \
|
||||
@@ -53,6 +54,7 @@
|
||||
CFG_HDD_ALL \
|
||||
CFG_HDD_DP_ALL \
|
||||
CFG_IPA \
|
||||
CFG_LEGACY_DP_ALL \
|
||||
CFG_MLME_ALL \
|
||||
CFG_NAN_ALL \
|
||||
CFG_P2P_ALL \
|
||||
|
@@ -69,6 +69,7 @@
|
||||
#include <target_if_dp.h>
|
||||
#endif
|
||||
#include "wlan_mlme_ucfg_api.h"
|
||||
#include "cfg_ucfg_api.h"
|
||||
|
||||
/* Preprocessor Definitions and Constants */
|
||||
|
||||
@@ -295,16 +296,17 @@ cds_cfg_update_ac_specs_params(struct txrx_pdev_cfg_param_t *olcfg,
|
||||
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
static inline void
|
||||
cds_cdp_set_flow_control_params(struct cds_config_info *cds_cfg,
|
||||
cds_cdp_set_flow_control_params(struct wlan_objmgr_psoc *psoc,
|
||||
struct txrx_pdev_cfg_param_t *cdp_cfg)
|
||||
{
|
||||
cdp_cfg->tx_flow_stop_queue_th = cds_cfg->tx_flow_stop_queue_th;
|
||||
cdp_cfg->tx_flow_stop_queue_th =
|
||||
cfg_get(psoc, CFG_DP_TX_FLOW_STOP_QUEUE_TH);
|
||||
cdp_cfg->tx_flow_start_queue_offset =
|
||||
cds_cfg->tx_flow_start_queue_offset;
|
||||
cfg_get(psoc, CFG_DP_TX_FLOW_START_QUEUE_OFFSET);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
cds_cdp_set_flow_control_params(struct cds_config_info *cds_cfg,
|
||||
cds_cdp_set_flow_control_params(struct wlan_objmgr_psoc *psoc,
|
||||
struct txrx_pdev_cfg_param_t *cdp_cfg)
|
||||
{}
|
||||
#endif
|
||||
@@ -315,23 +317,41 @@ cds_cdp_set_flow_control_params(struct cds_config_info *cds_cfg,
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void cds_cdp_cfg_attach(struct cds_config_info *cds_cfg)
|
||||
static void cds_cdp_cfg_attach(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct txrx_pdev_cfg_param_t cdp_cfg = {0};
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
struct hdd_context *hdd_ctx = gp_cds_context->hdd_context;
|
||||
|
||||
cdp_cfg.is_full_reorder_offload = cds_cfg->reorder_offload;
|
||||
cdp_cfg.is_uc_offload_enabled = cds_cfg->uc_offload_enabled;
|
||||
cdp_cfg.uc_tx_buffer_count = ucfg_ipa_get_tx_buf_count();
|
||||
cdp_cfg.uc_tx_buffer_size = cds_cfg->uc_txbuf_size;
|
||||
cdp_cfg.uc_rx_indication_ring_count = cds_cfg->uc_rxind_ringcount;
|
||||
cdp_cfg.uc_tx_partition_base = cds_cfg->uc_tx_partition_base;
|
||||
cdp_cfg.enable_rxthread = cds_cfg->enable_rxthread;
|
||||
cdp_cfg.is_full_reorder_offload =
|
||||
cfg_get(psoc, CFG_DP_REORDER_OFFLOAD_SUPPORT);
|
||||
cdp_cfg.is_uc_offload_enabled = ucfg_ipa_uc_is_enabled();
|
||||
cdp_cfg.uc_tx_buffer_count = cfg_get(psoc, CFG_DP_IPA_UC_TX_BUF_COUNT);
|
||||
cdp_cfg.uc_tx_buffer_size =
|
||||
cfg_get(psoc, CFG_DP_IPA_UC_TX_BUF_SIZE);
|
||||
cdp_cfg.uc_rx_indication_ring_count =
|
||||
cfg_get(psoc, CFG_DP_IPA_UC_RX_IND_RING_COUNT);
|
||||
cdp_cfg.uc_tx_partition_base =
|
||||
cfg_get(psoc, CFG_DP_IPA_UC_TX_PARTITION_BASE);
|
||||
cdp_cfg.enable_rxthread = hdd_ctx->enable_rxthread;
|
||||
cdp_cfg.ip_tcp_udp_checksum_offload =
|
||||
cds_cfg->ip_tcp_udp_checksum_offload;
|
||||
cdp_cfg.ce_classify_enabled = cds_cfg->ce_classify_enabled;
|
||||
cfg_get(psoc, CFG_DP_TCP_UDP_CKSUM_OFFLOAD);
|
||||
cdp_cfg.ce_classify_enabled =
|
||||
cfg_get(psoc, CFG_DP_CE_CLASSIFY_ENABLE);
|
||||
cdp_cfg.tso_enable = cfg_get(psoc, CFG_DP_TSO);
|
||||
cdp_cfg.lro_enable = cfg_get(psoc, CFG_DP_LRO);
|
||||
cdp_cfg.enable_data_stall_detection =
|
||||
cfg_get(psoc, CFG_DP_ENABLE_DATA_STALL_DETECTION);
|
||||
cdp_cfg.tso_enable = cfg_get(psoc, CFG_DP_TSO);
|
||||
cdp_cfg.lro_enable = cfg_get(psoc, CFG_DP_LRO);
|
||||
cdp_cfg.gro_enable = cfg_get(psoc, CFG_DP_GRO);
|
||||
cdp_cfg.enable_flow_steering =
|
||||
cfg_get(psoc, CFG_DP_FLOW_STEERING_ENABLED);
|
||||
cdp_cfg.disable_intra_bss_fwd =
|
||||
cfg_get(psoc, CFG_DP_AP_STA_SECURITY_SEPERATION);
|
||||
cdp_cfg.ce_classify_enabled =
|
||||
cfg_get(psoc, CFG_DP_CE_CLASSIFY_ENABLE);
|
||||
|
||||
cds_cfg_update_ac_specs_params(&cdp_cfg, cds_cfg);
|
||||
gp_cds_context->cfg_ctx = cdp_cfg_attach(soc, gp_cds_context->qdf_ctx,
|
||||
(void *)(&cdp_cfg));
|
||||
if (!gp_cds_context->cfg_ctx) {
|
||||
@@ -341,15 +361,16 @@ static void cds_cdp_cfg_attach(struct cds_config_info *cds_cfg)
|
||||
|
||||
/* Configure Receive flow steering */
|
||||
cdp_cfg_set_flow_steering(soc, gp_cds_context->cfg_ctx,
|
||||
cds_cfg->flow_steering_enabled);
|
||||
cfg_get(psoc, CFG_DP_FLOW_STEERING_ENABLED));
|
||||
|
||||
cds_cdp_set_flow_control_params(cds_cfg, &cdp_cfg);
|
||||
cds_cdp_set_flow_control_params(psoc, &cdp_cfg);
|
||||
cdp_cfg_set_flow_control_parameters(soc, gp_cds_context->cfg_ctx,
|
||||
(void *)&cdp_cfg);
|
||||
|
||||
/* adjust the cfg_ctx default value based on setting */
|
||||
cdp_cfg_set_rx_fwd_disabled(soc, gp_cds_context->cfg_ctx,
|
||||
(uint8_t) cds_cfg->ap_disable_intrabss_fwd);
|
||||
cfg_get(psoc,
|
||||
CFG_DP_AP_STA_SECURITY_SEPERATION));
|
||||
|
||||
/*
|
||||
* adjust the packet log enable default value
|
||||
@@ -521,7 +542,7 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
|
||||
goto err_sched_close;
|
||||
}
|
||||
|
||||
hdd_enable_fastpath(hdd_ctx->config, scn);
|
||||
hdd_enable_fastpath(hdd_ctx, scn);
|
||||
|
||||
/* Initialize BMI and Download firmware */
|
||||
ol_ctx = cds_get_context(QDF_MODULE_ID_BMI);
|
||||
@@ -622,8 +643,9 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
|
||||
ucfg_ocb_update_dp_handle(psoc, gp_cds_context->dp_soc);
|
||||
|
||||
cds_set_ac_specs_params(cds_cfg);
|
||||
|
||||
cds_cdp_cfg_attach(cds_cfg);
|
||||
cds_cfg_update_ac_specs_params((struct txrx_pdev_cfg_param_t *)
|
||||
gp_cds_context->cfg_ctx, cds_cfg);
|
||||
cds_cdp_cfg_attach(psoc);
|
||||
|
||||
bmi_target_ready(scn, gp_cds_context->cfg_ctx);
|
||||
|
||||
|
54
core/dp/ol/inc/cfg_legacy_dp.h
Normal file
54
core/dp/ol/inc/cfg_legacy_dp.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
* above copyright notice and this permission notice appear in all
|
||||
* copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef __CFG_LEGACY_DP
|
||||
#define __CFG_LEGACY_DP
|
||||
|
||||
#include "cfg_define.h"
|
||||
#include "cfg_converged.h"
|
||||
#include "qdf_types.h"
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableFlowSteering - Enable rx traffic flow steering
|
||||
* @Default: false
|
||||
*
|
||||
* Enable Rx traffic flow steering to enable Rx interrupts on multiple CEs based
|
||||
* on the flows. Different CEs<==>different IRQs<==>probably different CPUs.
|
||||
* Parallel Rx paths.
|
||||
* 1 - enable 0 - disable
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_DP_FLOW_STEERING_ENABLED \
|
||||
CFG_INI_BOOL( \
|
||||
"gEnableFlowSteering", \
|
||||
false, \
|
||||
"")
|
||||
|
||||
#define CFG_DP_CE_CLASSIFY_ENABLE \
|
||||
CFG_INI_BOOL("gCEClassifyEnable", \
|
||||
true, "enable CE classify")
|
||||
|
||||
#define CFG_LEGACY_DP_ALL \
|
||||
CFG(CFG_DP_FLOW_STEERING_ENABLED) \
|
||||
CFG(CFG_DP_CE_CLASSIFY_ENABLE)
|
||||
|
||||
#endif
|
@@ -97,6 +97,18 @@ struct txrx_pdev_cfg_t {
|
||||
*/
|
||||
u8 credit_update_enabled;
|
||||
struct ol_tx_sched_wrr_ac_specs_t ac_specs[TX_WMM_AC_NUM];
|
||||
bool gro_enable;
|
||||
bool tso_enable;
|
||||
bool lro_enable;
|
||||
bool enable_data_stall_detection;
|
||||
bool enable_flow_steering;
|
||||
bool disable_intra_bss_fwd;
|
||||
/* IPA Micro controller data path offload TX buffer size */
|
||||
uint32_t uc_tx_buffer_size;
|
||||
/* IPA Micro controller data path offload RX indication ring count */
|
||||
uint32_t uc_rx_indication_ring_count;
|
||||
/* IPA Micro controller data path offload TX partition base */
|
||||
uint32_t uc_tx_partition_base;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -155,6 +155,13 @@ struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
|
||||
cfg_ctx->ip_tcp_udp_checksum_offload =
|
||||
cfg_param->ip_tcp_udp_checksum_offload;
|
||||
cfg_ctx->ce_classify_enabled = cfg_param->ce_classify_enabled;
|
||||
cfg_ctx->gro_enable = cfg_param->gro_enable;
|
||||
cfg_ctx->tso_enable = cfg_param->tso_enable;
|
||||
cfg_ctx->lro_enable = cfg_param->lro_enable;
|
||||
cfg_ctx->enable_data_stall_detection =
|
||||
cfg_param->enable_data_stall_detection;
|
||||
cfg_ctx->enable_flow_steering = cfg_param->enable_flow_steering;
|
||||
cfg_ctx->disable_intra_bss_fwd = cfg_param->disable_intra_bss_fwd;
|
||||
|
||||
ol_tx_set_flow_control_parameters((struct cdp_cfg *)cfg_ctx, cfg_param);
|
||||
|
||||
|
@@ -79,6 +79,8 @@
|
||||
#include <htt_internal.h>
|
||||
#include <ol_txrx_ipa.h>
|
||||
#include "wlan_roam_debug.h"
|
||||
#include "cfg_ucfg_api.h"
|
||||
|
||||
|
||||
#define DPT_DEBUGFS_PERMS (QDF_FILE_USR_READ | \
|
||||
QDF_FILE_USR_WRITE | \
|
||||
@@ -5311,6 +5313,73 @@ ol_txrx_wrapper_set_flow_control_parameters(struct cdp_cfg *cfg_pdev,
|
||||
(struct txrx_pdev_cfg_param_t *)cfg_param);
|
||||
}
|
||||
|
||||
/**
|
||||
* ol_txrx_get_cfg() - get ini/cgf values in legacy dp
|
||||
* @soc: soc context
|
||||
* @cfg_param: cfg parameters
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static uint32_t ol_txrx_get_cfg(void *soc, enum cdp_dp_cfg cfg)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg_ctx;
|
||||
ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
uint32_t value = 0;
|
||||
|
||||
cfg_ctx = (struct txrx_pdev_cfg_t *)(pdev->ctrl_pdev);
|
||||
switch (cfg) {
|
||||
case cfg_dp_enable_data_stall:
|
||||
value = cfg_ctx->enable_data_stall_detection;
|
||||
break;
|
||||
case cfg_dp_enable_ip_tcp_udp_checksum_offload:
|
||||
value = cfg_ctx->ip_tcp_udp_checksum_offload;
|
||||
break;
|
||||
case cfg_dp_tso_enable:
|
||||
value = cfg_ctx->tso_enable;
|
||||
break;
|
||||
case cfg_dp_lro_enable:
|
||||
value = cfg_ctx->lro_enable;
|
||||
break;
|
||||
case cfg_dp_gro_enable:
|
||||
value = cfg_ctx->gro_enable;
|
||||
break;
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
case cfg_dp_tx_flow_start_queue_offset:
|
||||
value = cfg_ctx->tx_flow_start_queue_offset;
|
||||
break;
|
||||
case cfg_dp_tx_flow_stop_queue_threshold:
|
||||
value = cfg_ctx->tx_flow_stop_queue_th;
|
||||
break;
|
||||
#endif
|
||||
case cfg_dp_ipa_uc_tx_buf_size:
|
||||
value = cfg_ctx->uc_tx_buffer_size;
|
||||
break;
|
||||
case cfg_dp_ipa_uc_tx_partition_base:
|
||||
value = cfg_ctx->uc_tx_partition_base;
|
||||
break;
|
||||
case cfg_dp_ipa_uc_rx_ind_ring_count:
|
||||
value = cfg_ctx->uc_rx_indication_ring_count;
|
||||
break;
|
||||
case cfg_dp_enable_flow_steering:
|
||||
value = cfg_ctx->enable_flow_steering;
|
||||
break;
|
||||
case cfg_dp_reorder_offload_supported:
|
||||
value = cfg_ctx->is_full_reorder_offload;
|
||||
break;
|
||||
case cfg_dp_ce_classify_enable:
|
||||
value = cfg_ctx->ce_classify_enabled;
|
||||
break;
|
||||
case cfg_dp_disable_intra_bss_fwd:
|
||||
value = cfg_ctx->disable_intra_bss_fwd;
|
||||
break;
|
||||
default:
|
||||
value = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
#ifdef WDI_EVENT_ENABLE
|
||||
void *ol_get_pldev(struct cdp_pdev *txrx_pdev)
|
||||
{
|
||||
@@ -5348,6 +5417,7 @@ static struct cdp_cmn_ops ol_ops_cmn = {
|
||||
.flush_cache_rx_queue = ol_txrx_flush_cache_rx_queue,
|
||||
.txrx_fw_stats_get = ol_txrx_fw_stats_get,
|
||||
.display_stats = ol_txrx_display_stats,
|
||||
.txrx_get_cfg = ol_txrx_get_cfg,
|
||||
/* TODO: Add other functions */
|
||||
};
|
||||
|
||||
@@ -5603,5 +5673,3 @@ struct cdp_soc_t *ol_txrx_soc_attach(void *scn_handle,
|
||||
soc->ops = &ol_txrx_ops;
|
||||
return soc;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -752,6 +752,27 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Control to decide rx mode for packet procesing")
|
||||
|
||||
#define CFG_DP_CE_SERVICE_MAX_RX_IND_FLUSH \
|
||||
CFG_INI_UINT("ce_service_max_rx_ind_flush", \
|
||||
1, 32, 32, \
|
||||
CFG_VALUE_OR_DEFAULT, "Ctrl to set ce service max rx ind flsh")
|
||||
|
||||
#define CFG_DP_CE_SERVICE_MAX_YIELD_TIME \
|
||||
CFG_INI_UINT("ce_service_max_yield_time", \
|
||||
500, 10000, 10000, \
|
||||
CFG_VALUE_OR_DEFAULT, "Ctrl to set ce service max yield time")
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
#define CFG_DP_ENABLE_FASTPATH \
|
||||
CFG_INI_BOOL("gEnableFastPath", \
|
||||
false, "Ctrl to enable fastpath feature")
|
||||
|
||||
#define CFG_DP_ENABLE_FASTPATH_ALL \
|
||||
CFG(CFG_DP_ENABLE_FASTPATH)
|
||||
#else
|
||||
#define CFG_DP_ENABLE_FASTPATH_ALL
|
||||
#endif
|
||||
|
||||
#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
|
||||
#define CFG_HDD_DP_LEGACY_TX_FLOW \
|
||||
CFG(CFG_DP_LL_TX_FLOW_LWM) \
|
||||
@@ -789,7 +810,10 @@
|
||||
CFG(CFG_DP_RX_THREAD_CPU_MASK) \
|
||||
CFG(CFG_DP_RPS_RX_QUEUE_CPU_MAP_LIST) \
|
||||
CFG(CFG_DP_TX_ORPHAN_ENABLE) \
|
||||
CFG(CFG_DP_RX_MODE)
|
||||
CFG(CFG_DP_RX_MODE) \
|
||||
CFG(CFG_DP_CE_SERVICE_MAX_RX_IND_FLUSH) \
|
||||
CFG(CFG_DP_CE_SERVICE_MAX_YIELD_TIME) \
|
||||
CFG_DP_ENABLE_FASTPATH_ALL
|
||||
#define CFG_HDD_DP_ALL \
|
||||
CFG_HDD_DP \
|
||||
CFG_HDD_DP_MSM_PLATFORM \
|
||||
|
@@ -3810,24 +3810,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_ENABLE_SSR_MAX (1)
|
||||
#define CFG_ENABLE_SSR_DEFAULT (1)
|
||||
|
||||
/**
|
||||
* <ini>
|
||||
* gEnableDataStallDetection - Enable/Disable Data stall detection
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to enable/disable data stall detection
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ENABLE_DATA_STALL_DETECTION "gEnableDataStallDetection"
|
||||
#define CFG_ENABLE_DATA_STALL_DETECTION_MIN (0)
|
||||
#define CFG_ENABLE_DATA_STALL_DETECTION_MAX (1)
|
||||
#define CFG_ENABLE_DATA_STALL_DETECTION_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableOverLapCh - Enables Overlap Channel. If set, allow overlapping
|
||||
@@ -4417,55 +4399,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_ENABLE_SNR_MONITORING_MAX (1)
|
||||
#define CFG_ENABLE_SNR_MONITORING_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableIpTcpUdpChecksumOffload - It enables IP, TCP and UDP checksum
|
||||
* offload in hardware
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: DEF
|
||||
*
|
||||
* This ini is used to enable IP, TCP and UDP checksum offload in hardware
|
||||
* and also advertise same to network stack
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
|
||||
#define CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD "gEnableIpTcpUdpChecksumOffload"
|
||||
#define CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE (0)
|
||||
#define CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE (1)
|
||||
#define CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT (CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE)
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableFastPath - Control to enable fastpath feature
|
||||
*
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable fastpath feature
|
||||
*
|
||||
* Supported Feature: Wlan Fastpath Feature
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ENABLE_FASTPATH "gEnableFastPath"
|
||||
#define CFG_ENABLE_FASTPATH_MIN (0)
|
||||
#define CFG_ENABLE_FASTPATH_MAX (1)
|
||||
#define CFG_ENABLE_FASTPATH_DEFAULT (CFG_ENABLE_FASTPATH_MIN)
|
||||
#endif /* WLAN_FEATURE_FASTPATH */
|
||||
|
||||
/* SAR Thermal limit values for 2g and 5g */
|
||||
|
||||
#define CFG_SET_TXPOWER_LIMIT2G_NAME "TxPower2g"
|
||||
@@ -4729,22 +4662,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_REORDER_OFFLOAD_SUPPORT_MAX (1)
|
||||
#define CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT (1)
|
||||
|
||||
#define CFG_IPA_UC_TX_BUF_SIZE_NAME "IpaUcTxBufSize"
|
||||
#define CFG_IPA_UC_TX_BUF_SIZE_MIN (0)
|
||||
#define CFG_IPA_UC_TX_BUF_SIZE_MAX (4096)
|
||||
#define CFG_IPA_UC_TX_BUF_SIZE_DEFAULT (2048)
|
||||
|
||||
/* IpaUcRxIndRingCount should be power of 2 */
|
||||
#define CFG_IPA_UC_RX_IND_RING_COUNT_NAME "IpaUcRxIndRingCount"
|
||||
#define CFG_IPA_UC_RX_IND_RING_COUNT_MIN (0)
|
||||
#define CFG_IPA_UC_RX_IND_RING_COUNT_MAX (2048)
|
||||
#define CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT (1024)
|
||||
|
||||
#define CFG_IPA_UC_TX_PARTITION_BASE_NAME "IpaUcTxPartitionBase"
|
||||
#define CFG_IPA_UC_TX_PARTITION_BASE_MIN (0)
|
||||
#define CFG_IPA_UC_TX_PARTITION_BASE_MAX (9000)
|
||||
#define CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT (3000)
|
||||
|
||||
#define CFG_ENABLE_SAP_SUSPEND "gEnableSapSuspend"
|
||||
#define CFG_ENABLE_SAP_SUSPEND_MIN (0)
|
||||
#define CFG_ENABLE_SAP_SUSPEND_MAX (1)
|
||||
@@ -4889,79 +4806,6 @@ enum hdd_link_speed_rpt_type {
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* TSOEnable - Control to enable tso feature
|
||||
*
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable TSO feature
|
||||
*
|
||||
* Supported Feature: TSO Feature
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TSO_ENABLED_NAME "TSOEnable"
|
||||
#define CFG_TSO_ENABLED_MIN (0)
|
||||
#define CFG_TSO_ENABLED_MAX (1)
|
||||
#define CFG_TSO_ENABLED_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* LROEnable - Control to enable lro feature
|
||||
*
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable LRO feature
|
||||
*
|
||||
* Supported Feature: LRO
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_LRO_ENABLED_NAME "LROEnable"
|
||||
#define CFG_LRO_ENABLED_MIN (0)
|
||||
#define CFG_LRO_ENABLED_MAX (1)
|
||||
#define CFG_LRO_ENABLED_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* GROEnable - Control to enable gro feature
|
||||
*
|
||||
* @Disable: 0
|
||||
* @Enable: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable GRO feature
|
||||
*
|
||||
* Supported Feature: GRO
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_GRO_ENABLED_NAME "GROEnable"
|
||||
#define CFG_GRO_ENABLED_MIN (0)
|
||||
#define CFG_GRO_ENABLED_MAX (1)
|
||||
#define CFG_GRO_ENABLED_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* Enable Rx traffic flow steering to enable Rx interrupts on multiple CEs based
|
||||
* on the flows. Different CEs<==>different IRQs<==>probably different CPUs.
|
||||
* Parallel Rx paths.
|
||||
* 1 - enable 0 - disable
|
||||
*/
|
||||
#define CFG_FLOW_STEERING_ENABLED_NAME "gEnableFlowSteering"
|
||||
#define CFG_FLOW_STEERING_ENABLED_MIN (0)
|
||||
#define CFG_FLOW_STEERING_ENABLED_MAX (1)
|
||||
#define CFG_FLOW_STEERING_ENABLED_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* Max number of MSDUs per HTT RX IN ORDER INDICATION msg.
|
||||
* Note that this has a direct impact on the size of source CE rings.
|
||||
* It is possible to go below 8, but would require testing; so we are
|
||||
@@ -5037,11 +4881,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MIN (0)
|
||||
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MAX (1)
|
||||
|
||||
#define CFG_CE_CLASSIFY_ENABLE_NAME "gCEClassifyEnable"
|
||||
#define CFG_CE_CLASSIFY_ENABLE_MIN (0)
|
||||
#define CFG_CE_CLASSIFY_ENABLE_MAX (1)
|
||||
#define CFG_CE_CLASSIFY_ENABLE_DEFAULT (1)
|
||||
|
||||
/*
|
||||
*
|
||||
* <ini>
|
||||
@@ -5410,48 +5249,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_NUM_DP_RX_THREADS_MAX (4)
|
||||
#define CFG_NUM_DP_RX_THREADS_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* ce_service_max_yield_time - Control to set ce service max yield time (in us)
|
||||
*
|
||||
* @Min: 500
|
||||
* @Max: 10000
|
||||
* @Default: 10000
|
||||
*
|
||||
* This ini is used to set ce service max yield time (in us)
|
||||
*
|
||||
* Supported Feature: NAPI
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_CE_SERVICE_MAX_YIELD_TIME_NAME "ce_service_max_yield_time"
|
||||
#define CFG_CE_SERVICE_MAX_YIELD_TIME_MIN (500)
|
||||
#define CFG_CE_SERVICE_MAX_YIELD_TIME_MAX (10000)
|
||||
#define CFG_CE_SERVICE_MAX_YIELD_TIME_DEFAULT (10000)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* ce_service_max_rx_ind_flush - Control to set ce service max rx ind flush
|
||||
*
|
||||
* @Min: 1
|
||||
* @Max: 32
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to set ce service max rx ind flush
|
||||
*
|
||||
* Supported Feature: NAPI
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_CE_SERVICE_MAX_RX_IND_FLUSH_NAME "ce_service_max_rx_ind_flush"
|
||||
#define CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MIN (1)
|
||||
#define CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MAX (32)
|
||||
#define CFG_CE_SERVICE_MAX_RX_IND_FLUSH_DEFAULT (32)
|
||||
|
||||
/*
|
||||
* Support to start sap in indoor channel
|
||||
* Customer can config this item to enable/disable sap in indoor channel
|
||||
@@ -7456,7 +7253,6 @@ struct hdd_config {
|
||||
uint8_t scanAgingTimeout;
|
||||
uint8_t disableLDPCWithTxbfAP;
|
||||
bool enableSSR;
|
||||
bool enable_data_stall_det;
|
||||
bool bFastRoamInConIniFeatureEnabled;
|
||||
bool fEnableSNRMonitoring;
|
||||
/*PNO related parameters */
|
||||
@@ -7477,8 +7273,6 @@ struct hdd_config {
|
||||
uint32_t ibssTxSpEndInactivityTime;
|
||||
uint32_t ibssPsWarmupTime;
|
||||
uint32_t ibssPs1RxChainInAtimEnable;
|
||||
|
||||
bool enable_ip_tcp_udp_checksum_offload;
|
||||
uint32_t IpaConfig;
|
||||
bool IpaClkScalingEnable;
|
||||
uint8_t disableDFSChSwitch;
|
||||
@@ -7506,10 +7300,6 @@ struct hdd_config {
|
||||
int32_t dfsRadarPriMultiplier;
|
||||
uint8_t reorderOffloadSupport;
|
||||
|
||||
uint32_t IpaUcTxBufSize;
|
||||
uint32_t IpaUcRxIndRingCount;
|
||||
uint32_t IpaUcTxPartitionBase;
|
||||
|
||||
#ifdef FEATURE_WLAN_FORCE_SAP_SCC
|
||||
uint8_t SapSccChanAvoidance;
|
||||
#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
|
||||
@@ -7528,22 +7318,12 @@ struct hdd_config {
|
||||
uint8_t sap_11ac_override;
|
||||
uint8_t go_11ac_override;
|
||||
uint8_t prefer_non_dfs_on_radar;
|
||||
bool tso_enable;
|
||||
bool lro_enable;
|
||||
bool gro_enable;
|
||||
bool flow_steering_enable;
|
||||
uint8_t max_msdus_per_rxinorderind;
|
||||
/* parameter for defer timer for enabling TDLS on p2p listen */
|
||||
uint32_t fine_time_meas_cap;
|
||||
uint8_t max_scan_count;
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
bool fastpath_enable;
|
||||
#endif
|
||||
bool etsi13_srd_chan_in_master_mode;
|
||||
uint8_t num_dp_rx_threads;
|
||||
uint32_t ce_service_max_yield_time;
|
||||
uint8_t ce_service_max_rx_ind_flush;
|
||||
bool ce_classify_enabled;
|
||||
uint32_t dual_mac_feature_disable;
|
||||
uint8_t dbs_scan_selection[CFG_DBS_SCAN_PARAM_LENGTH];
|
||||
uint32_t sta_sap_scc_on_dfs_chan;
|
||||
|
@@ -2722,8 +2722,10 @@ int hdd_process_pktlog_command(struct hdd_context *hdd_ctx,
|
||||
static inline void hdd_set_tso_flags(struct hdd_context *hdd_ctx,
|
||||
struct net_device *wlan_dev)
|
||||
{
|
||||
if (hdd_ctx->config->tso_enable &&
|
||||
hdd_ctx->config->enable_ip_tcp_udp_checksum_offload) {
|
||||
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cfg_dp_tso_enable) &&
|
||||
cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cfg_dp_enable_ip_tcp_udp_checksum_offload)){
|
||||
/*
|
||||
* We want to enable TSO only if IP/UDP/TCP TX checksum flag is
|
||||
* enabled.
|
||||
@@ -2850,10 +2852,10 @@ void hdd_connect_result(struct net_device *dev, const u8 *bssid,
|
||||
tSirResultCodes timeout_reason);
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
void hdd_enable_fastpath(struct hdd_config *hdd_cfg,
|
||||
void hdd_enable_fastpath(struct hdd_context *hdd_ctx,
|
||||
void *context);
|
||||
#else
|
||||
static inline void hdd_enable_fastpath(struct hdd_config *hdd_cfg,
|
||||
static inline void hdd_enable_fastpath(struct hdd_context *hdd_ctx,
|
||||
void *context)
|
||||
{
|
||||
}
|
||||
|
@@ -1731,13 +1731,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_ENABLE_SSR_MAX,
|
||||
cb_notify_set_enable_ssr, 0),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_DATA_STALL_DETECTION, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable_data_stall_det,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_DATA_STALL_DETECTION_DEFAULT,
|
||||
CFG_ENABLE_DATA_STALL_DETECTION_MIN,
|
||||
CFG_ENABLE_DATA_STALL_DETECTION_MAX),
|
||||
|
||||
REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, bFastRoamInConIniFeatureEnabled,
|
||||
@@ -1784,13 +1777,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_MAX_AMSDU_NUM_MIN,
|
||||
CFG_MAX_AMSDU_NUM_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable_ip_tcp_udp_checksum_offload,
|
||||
VAR_FLAGS_OPTIONAL,
|
||||
CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
|
||||
CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
|
||||
CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
|
||||
|
||||
REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, isCoalesingInIBSSAllowed,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -1970,27 +1956,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_REORDER_OFFLOAD_SUPPORT_MIN,
|
||||
CFG_REORDER_OFFLOAD_SUPPORT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, IpaUcTxBufSize,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
|
||||
CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
|
||||
CFG_IPA_UC_TX_BUF_SIZE_MIN,
|
||||
CFG_IPA_UC_TX_BUF_SIZE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, IpaUcRxIndRingCount,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
|
||||
CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
|
||||
CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
|
||||
CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, IpaUcTxPartitionBase,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
|
||||
CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
|
||||
CFG_IPA_UC_TX_PARTITION_BASE_MIN,
|
||||
CFG_IPA_UC_TX_PARTITION_BASE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable_sap_suspend,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -2059,34 +2024,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
|
||||
CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, tso_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TSO_ENABLED_DEFAULT,
|
||||
CFG_TSO_ENABLED_MIN,
|
||||
CFG_TSO_ENABLED_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, lro_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_LRO_ENABLED_DEFAULT,
|
||||
CFG_LRO_ENABLED_MIN,
|
||||
CFG_LRO_ENABLED_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_GRO_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, gro_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_GRO_ENABLED_DEFAULT,
|
||||
CFG_GRO_ENABLED_MIN,
|
||||
CFG_GRO_ENABLED_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, flow_steering_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_FLOW_STEERING_ENABLED_DEFAULT,
|
||||
CFG_FLOW_STEERING_ENABLED_MIN,
|
||||
CFG_FLOW_STEERING_ENABLED_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_MAX_MSDUS_PER_RXIND_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, max_msdus_per_rxinorderind,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -2101,14 +2038,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
|
||||
CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fastpath_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_FASTPATH_DEFAULT,
|
||||
CFG_ENABLE_FASTPATH_MIN,
|
||||
CFG_ENABLE_FASTPATH_MAX),
|
||||
#endif
|
||||
REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, max_scan_count,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -2123,13 +2052,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MIN,
|
||||
CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, ce_classify_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_CE_CLASSIFY_ENABLE_DEFAULT,
|
||||
CFG_CE_CLASSIFY_ENABLE_MIN,
|
||||
CFG_CE_CLASSIFY_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
|
||||
struct hdd_config, dual_mac_feature_disable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -2359,20 +2281,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_NUM_DP_RX_THREADS_MIN,
|
||||
CFG_NUM_DP_RX_THREADS_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_CE_SERVICE_MAX_YIELD_TIME_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, ce_service_max_yield_time,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_CE_SERVICE_MAX_YIELD_TIME_DEFAULT,
|
||||
CFG_CE_SERVICE_MAX_YIELD_TIME_MIN,
|
||||
CFG_CE_SERVICE_MAX_YIELD_TIME_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_CE_SERVICE_MAX_RX_IND_FLUSH_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, ce_service_max_rx_ind_flush,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_CE_SERVICE_MAX_RX_IND_FLUSH_DEFAULT,
|
||||
CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MIN,
|
||||
CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, indoor_channel_support,
|
||||
|
@@ -126,6 +126,7 @@
|
||||
#include "wlan_crypto_global_api.h"
|
||||
#include "wlan_nl_to_crypto_params.h"
|
||||
#include "wlan_crypto_global_def.h"
|
||||
#include "cdp_txrx_cfg.h"
|
||||
|
||||
#define g_mode_rates_size (12)
|
||||
#define a_mode_rates_size (8)
|
||||
@@ -10645,7 +10646,7 @@ static int __wlan_hdd_cfg80211_get_nud_stats(struct wiphy *wiphy,
|
||||
pkt_type_bitmap = adapter->pkt_type_bitmap;
|
||||
|
||||
/* send NUD failure event only when ARP tracking is enabled. */
|
||||
if (hdd_ctx->config->enable_data_stall_det &&
|
||||
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall) &&
|
||||
(pkt_type_bitmap & CONNECTIVITY_CHECK_SET_ARP))
|
||||
cdp_post_data_stall_event(soc,
|
||||
DATA_STALL_LOG_INDICATOR_FRAMEWORK,
|
||||
|
@@ -40,6 +40,7 @@
|
||||
#include "wlan_hdd_driver_ops.h"
|
||||
#include "wlan_ipa_ucfg_api.h"
|
||||
#include "wlan_hdd_debugfs.h"
|
||||
#include "cfg_ucfg_api.h"
|
||||
|
||||
#ifdef MODULE
|
||||
#define WLAN_MODULE_NAME module_name(THIS_MODULE)
|
||||
@@ -262,10 +263,12 @@ int hdd_hif_open(struct device *dev, void *bdev, const struct hif_bus_id *bid,
|
||||
}
|
||||
|
||||
hif_set_ce_service_max_yield_time(hif_ctx,
|
||||
hdd_ctx->config->ce_service_max_yield_time);
|
||||
cfg_get(hdd_ctx->psoc,
|
||||
CFG_DP_CE_SERVICE_MAX_YIELD_TIME));
|
||||
ucfg_pmo_psoc_set_hif_handle(hdd_ctx->psoc, hif_ctx);
|
||||
hif_set_ce_service_max_rx_ind_flush(hif_ctx,
|
||||
hdd_ctx->config->ce_service_max_rx_ind_flush);
|
||||
cfg_get(hdd_ctx->psoc,
|
||||
CFG_DP_CE_SERVICE_MAX_RX_IND_FLUSH));
|
||||
return 0;
|
||||
|
||||
err_hif_close:
|
||||
|
@@ -3219,7 +3219,8 @@ struct hdd_adapter *hdd_wlan_create_ap_dev(struct hdd_context *hdd_ctx,
|
||||
dev->mtu = HDD_DEFAULT_MTU;
|
||||
dev->tx_queue_len = HDD_NETDEV_TX_QUEUE_LEN;
|
||||
|
||||
if (hdd_ctx->config->enable_ip_tcp_udp_checksum_offload)
|
||||
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cfg_dp_enable_ip_tcp_udp_checksum_offload))
|
||||
dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
|
||||
dev->features |= NETIF_F_RXCSUM;
|
||||
|
||||
|
@@ -3540,7 +3540,9 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
|
||||
struct hdd_adapter *adapter;
|
||||
struct hdd_station_ctx *sta_ctx;
|
||||
QDF_STATUS qdf_status;
|
||||
void *soc;
|
||||
|
||||
soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
/* cfg80211 initialization and registration */
|
||||
dev = alloc_netdev_mq(sizeof(*adapter), name,
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)) || defined(WITH_BACKPORTS)
|
||||
@@ -3586,7 +3588,8 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
|
||||
qdf_mem_copy(adapter->mac_addr.bytes, mac_addr, sizeof(tSirMacAddr));
|
||||
dev->watchdog_timeo = HDD_TX_TIMEOUT;
|
||||
|
||||
if (hdd_ctx->config->enable_ip_tcp_udp_checksum_offload)
|
||||
if (cdp_cfg_get(soc,
|
||||
cfg_dp_enable_ip_tcp_udp_checksum_offload))
|
||||
dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
|
||||
dev->features |= NETIF_F_RXCSUM;
|
||||
|
||||
@@ -4013,8 +4016,9 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
|
||||
* during that time, then as part of SSR init, do not enable
|
||||
* the LRO again. Keep the LRO state same as before SSR.
|
||||
*/
|
||||
if (hdd_ctx->config->lro_enable &&
|
||||
!(qdf_atomic_read(&hdd_ctx->vendor_disable_lro_flag)))
|
||||
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cfg_dp_lro_enable) &&
|
||||
!(qdf_atomic_read(&hdd_ctx->vendor_disable_lro_flag)))
|
||||
adapter->dev->features |= NETIF_F_LRO;
|
||||
|
||||
/* rcpi info initialization */
|
||||
@@ -8043,6 +8047,7 @@ static inline int wlan_hdd_set_wow_pulse(struct hdd_context *phddctx, bool enabl
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
|
||||
/**
|
||||
* hdd_enable_fastpath() - Enable fastpath if enabled in config INI
|
||||
* @hdd_cfg: hdd config
|
||||
@@ -8050,10 +8055,10 @@ static inline int wlan_hdd_set_wow_pulse(struct hdd_context *phddctx, bool enabl
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void hdd_enable_fastpath(struct hdd_config *hdd_cfg,
|
||||
void *context)
|
||||
void hdd_enable_fastpath(struct hdd_context *hdd_ctx,
|
||||
void *context)
|
||||
{
|
||||
if (hdd_cfg->fastpath_enable)
|
||||
if (cfg_get(hdd_ctx->psoc, CFG_DP_ENABLE_FASTPATH))
|
||||
hif_enable_fastpath(context);
|
||||
}
|
||||
#endif
|
||||
@@ -9435,37 +9440,13 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
|
||||
|
||||
/* IPA micro controller data path offload resource config item */
|
||||
cds_cfg->uc_offload_enabled = ucfg_ipa_uc_is_enabled();
|
||||
cds_cfg->uc_txbuf_size = hdd_ctx->config->IpaUcTxBufSize;
|
||||
if (!is_power_of_2(hdd_ctx->config->IpaUcRxIndRingCount)) {
|
||||
/* IpaUcRxIndRingCount should be power of 2 */
|
||||
hdd_debug("Round down IpaUcRxIndRingCount %d to nearest power of 2",
|
||||
hdd_ctx->config->IpaUcRxIndRingCount);
|
||||
hdd_ctx->config->IpaUcRxIndRingCount =
|
||||
rounddown_pow_of_two(
|
||||
hdd_ctx->config->IpaUcRxIndRingCount);
|
||||
if (!hdd_ctx->config->IpaUcRxIndRingCount) {
|
||||
hdd_err("Failed to round down IpaUcRxIndRingCount");
|
||||
goto exit;
|
||||
}
|
||||
hdd_debug("IpaUcRxIndRingCount rounded down to %d",
|
||||
hdd_ctx->config->IpaUcRxIndRingCount);
|
||||
}
|
||||
cds_cfg->uc_rxind_ringcount =
|
||||
hdd_ctx->config->IpaUcRxIndRingCount;
|
||||
cds_cfg->uc_tx_partition_base =
|
||||
hdd_ctx->config->IpaUcTxPartitionBase;
|
||||
cds_cfg->max_scan = hdd_ctx->config->max_scan_count;
|
||||
|
||||
cds_cfg->ip_tcp_udp_checksum_offload =
|
||||
hdd_ctx->config->enable_ip_tcp_udp_checksum_offload;
|
||||
cds_cfg->enable_rxthread = hdd_ctx->enable_rxthread;
|
||||
cds_cfg->ce_classify_enabled =
|
||||
hdd_ctx->config->ce_classify_enabled;
|
||||
cds_cfg->self_gen_frm_pwr = hdd_ctx->config->self_gen_frm_pwr;
|
||||
ucfg_mlme_get_sap_max_peers(hdd_ctx->psoc, &value);
|
||||
cds_cfg->max_station = value;
|
||||
cds_cfg->sub_20_channel_width = WLAN_SUB_20_CH_WIDTH_NONE;
|
||||
cds_cfg->flow_steering_enabled = hdd_ctx->config->flow_steering_enable;
|
||||
cds_cfg->max_msdus_per_rxinorderind =
|
||||
hdd_ctx->config->max_msdus_per_rxinorderind;
|
||||
cds_cfg->self_recovery_enabled = self_recovery;
|
||||
@@ -10418,7 +10399,8 @@ static int hdd_features_init(struct hdd_context *hdd_ctx)
|
||||
|
||||
/* Send Enable/Disable data stall detection cmd to FW */
|
||||
sme_cli_set_command(0, WMI_PDEV_PARAM_DATA_STALL_DETECT_ENABLE,
|
||||
hdd_ctx->config->enable_data_stall_det, PDEV_CMD);
|
||||
cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cfg_dp_enable_data_stall), PDEV_CMD);
|
||||
|
||||
ucfg_mlme_get_go_cts2self_for_sta(hdd_ctx->psoc, &b_cts2self);
|
||||
if (b_cts2self)
|
||||
@@ -13567,24 +13549,25 @@ static int hdd_update_dp_config(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
struct cdp_config_params params;
|
||||
QDF_STATUS status;
|
||||
void *soc;
|
||||
|
||||
params.tso_enable = hdd_ctx->config->tso_enable;
|
||||
params.lro_enable = hdd_ctx->config->lro_enable;
|
||||
soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
params.tso_enable = cfg_get(hdd_ctx->psoc, CFG_DP_TSO);
|
||||
params.lro_enable = cfg_get(hdd_ctx->psoc, CFG_DP_LRO);
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
params.tx_flow_stop_queue_threshold =
|
||||
hdd_ctx->config->TxFlowStopQueueThreshold;
|
||||
params.tx_flow_start_queue_offset =
|
||||
hdd_ctx->config->TxFlowStartQueueOffset;
|
||||
#endif
|
||||
params.flow_steering_enable = hdd_ctx->config->flow_steering_enable;
|
||||
params.flow_steering_enable =
|
||||
cfg_get(hdd_ctx->psoc, CFG_DP_FLOW_STEERING_ENABLED);
|
||||
params.napi_enable = hdd_ctx->napi_enable;
|
||||
params.tcp_udp_checksumoffload =
|
||||
hdd_ctx->config->enable_ip_tcp_udp_checksum_offload;
|
||||
params.ipa_enable = ucfg_ipa_is_enabled();
|
||||
cfg_get(hdd_ctx->psoc,
|
||||
CFG_DP_TCP_UDP_CKSUM_OFFLOAD);
|
||||
|
||||
status = cdp_update_config_parameters(
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
¶ms);
|
||||
status = cdp_update_config_parameters(soc, ¶ms);
|
||||
if (status) {
|
||||
hdd_err("Failed to attach config parameters");
|
||||
return status;
|
||||
|
@@ -709,7 +709,7 @@ static void __hdd_softap_tx_timeout(struct net_device *dev)
|
||||
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_ERROR,
|
||||
"Detected data stall due to continuous TX timeouts");
|
||||
adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
|
||||
if (hdd_ctx->config->enable_data_stall_det)
|
||||
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall))
|
||||
cdp_post_data_stall_event(soc,
|
||||
DATA_STALL_LOG_INDICATOR_HOST_DRIVER,
|
||||
DATA_STALL_LOG_HOST_SOFTAP_TX_TIMEOUT,
|
||||
|
@@ -1275,7 +1275,7 @@ static void __hdd_tx_timeout(struct net_device *dev)
|
||||
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_ERROR,
|
||||
"Data stall due to continuous TX timeouts");
|
||||
adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
|
||||
if (hdd_ctx->config->enable_data_stall_det)
|
||||
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall))
|
||||
cdp_post_data_stall_event(soc,
|
||||
DATA_STALL_LOG_INDICATOR_HOST_DRIVER,
|
||||
DATA_STALL_LOG_HOST_STA_TX_TIMEOUT,
|
||||
@@ -1530,13 +1530,18 @@ static bool hdd_is_rx_wake_lock_needed(struct sk_buff *skb)
|
||||
*/
|
||||
static void hdd_resolve_rx_ol_mode(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
if (!(hdd_ctx->config->lro_enable ^
|
||||
hdd_ctx->config->gro_enable)) {
|
||||
hdd_ctx->config->lro_enable && hdd_ctx->config->gro_enable ?
|
||||
void *soc;
|
||||
|
||||
soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
if (!(cdp_cfg_get(soc, cfg_dp_lro_enable) ^
|
||||
cdp_cfg_get(soc, cfg_dp_gro_enable))) {
|
||||
cdp_cfg_get(soc, cfg_dp_lro_enable) &&
|
||||
cdp_cfg_get(soc, cfg_dp_gro_enable) ?
|
||||
hdd_err("Can't enable both LRO and GRO, disabling Rx offload") :
|
||||
hdd_debug("LRO and GRO both are disabled");
|
||||
hdd_ctx->ol_enable = 0;
|
||||
} else if (hdd_ctx->config->lro_enable) {
|
||||
} else if (cdp_cfg_get(soc, cfg_dp_lro_enable)) {
|
||||
hdd_debug("Rx offload LRO is enabled");
|
||||
hdd_ctx->ol_enable = CFG_LRO_ENABLED;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user