qcacmn: Add ini config for force using 64 blockack
Some AP disables AMSDU in BA256 mode, this has draw back with KPI in HE mode, so leave a config field to use 64 BA forcibly to make high KPI with these types of AP Change-Id: Ia69ffe118fd5bbda78cfb98126a483fcf305294e CRs-Fixed: 2828304
This commit is contained in:
@@ -3283,7 +3283,8 @@ int dp_addba_requestprocess_wifi3(struct cdp_soc_t *cdp_soc,
|
|||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
struct dp_rx_tid *rx_tid = NULL;
|
struct dp_rx_tid *rx_tid = NULL;
|
||||||
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)cdp_soc,
|
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
|
||||||
|
struct dp_peer *peer = dp_peer_find_hash_find(soc,
|
||||||
peer_mac, 0, vdev_id,
|
peer_mac, 0, vdev_id,
|
||||||
DP_MOD_ID_CDP);
|
DP_MOD_ID_CDP);
|
||||||
|
|
||||||
@@ -3311,6 +3312,12 @@ int dp_addba_requestprocess_wifi3(struct cdp_soc_t *cdp_soc,
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wlan_cfg_is_dp_force_rx_64_ba(soc->wlan_cfg_ctx)) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
||||||
|
"force use BA64 scheme");
|
||||||
|
buffersize = qdf_min((uint16_t)64, buffersize);
|
||||||
|
}
|
||||||
|
|
||||||
if (rx_tid->rx_ba_win_size_override == DP_RX_BA_SESSION_DISABLE) {
|
if (rx_tid->rx_ba_win_size_override == DP_RX_BA_SESSION_DISABLE) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
||||||
"%s disable BA session",
|
"%s disable BA session",
|
||||||
|
@@ -1084,6 +1084,24 @@
|
|||||||
false, \
|
false, \
|
||||||
"enable rx frame pending check in WoW mode")
|
"enable rx frame pending check in WoW mode")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gForceRX64BA - enable force 64 blockack mode for RX
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to control DP Software to use 64 blockack
|
||||||
|
* for RX direction forcibly
|
||||||
|
*
|
||||||
|
* Usage: Internal
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_FORCE_RX_64_BA \
|
||||||
|
CFG_INI_BOOL("gForceRX64BA", \
|
||||||
|
false, "Enable/Disable force 64 blockack in RX side")
|
||||||
|
|
||||||
#define CFG_DP \
|
#define CFG_DP \
|
||||||
CFG(CFG_DP_HTT_PACKET_TYPE) \
|
CFG(CFG_DP_HTT_PACKET_TYPE) \
|
||||||
CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
|
CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
|
||||||
@@ -1176,5 +1194,6 @@
|
|||||||
CFG(CFG_DP_RX_RADIO_0_DEFAULT_REO) \
|
CFG(CFG_DP_RX_RADIO_0_DEFAULT_REO) \
|
||||||
CFG(CFG_DP_RX_RADIO_1_DEFAULT_REO) \
|
CFG(CFG_DP_RX_RADIO_1_DEFAULT_REO) \
|
||||||
CFG(CFG_DP_RX_RADIO_2_DEFAULT_REO) \
|
CFG(CFG_DP_RX_RADIO_2_DEFAULT_REO) \
|
||||||
CFG(CFG_DP_WOW_CHECK_RX_PENDING)
|
CFG(CFG_DP_WOW_CHECK_RX_PENDING) \
|
||||||
|
CFG(CFG_FORCE_RX_64_BA)
|
||||||
#endif /* _CFG_DP_H_ */
|
#endif /* _CFG_DP_H_ */
|
||||||
|
@@ -591,6 +591,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|||||||
CFG_DP_RXDMA_ERR_DST_RING);
|
CFG_DP_RXDMA_ERR_DST_RING);
|
||||||
wlan_cfg_ctx->enable_data_stall_detection =
|
wlan_cfg_ctx->enable_data_stall_detection =
|
||||||
cfg_get(psoc, CFG_DP_ENABLE_DATA_STALL_DETECTION);
|
cfg_get(psoc, CFG_DP_ENABLE_DATA_STALL_DETECTION);
|
||||||
|
wlan_cfg_ctx->enable_force_rx_64_ba =
|
||||||
|
cfg_get(psoc, CFG_FORCE_RX_64_BA);
|
||||||
wlan_cfg_ctx->tx_flow_start_queue_offset =
|
wlan_cfg_ctx->tx_flow_start_queue_offset =
|
||||||
cfg_get(psoc, CFG_DP_TX_FLOW_START_QUEUE_OFFSET);
|
cfg_get(psoc, CFG_DP_TX_FLOW_START_QUEUE_OFFSET);
|
||||||
wlan_cfg_ctx->tx_flow_stop_queue_threshold =
|
wlan_cfg_ctx->tx_flow_stop_queue_threshold =
|
||||||
@@ -1515,3 +1517,8 @@ void wlan_cfg_set_rxdma1_enable(struct wlan_cfg_dp_soc_ctxt *cfg)
|
|||||||
cfg->rxdma1_enable = true;
|
cfg->rxdma1_enable = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool wlan_cfg_is_dp_force_rx_64_ba(struct wlan_cfg_dp_soc_ctxt *cfg)
|
||||||
|
{
|
||||||
|
return cfg->enable_force_rx_64_ba;
|
||||||
|
}
|
||||||
|
@@ -157,6 +157,7 @@ struct wlan_srng_cfg {
|
|||||||
* @rxdma_err_dst_ring: rxdma error detination ring size
|
* @rxdma_err_dst_ring: rxdma error detination ring size
|
||||||
* @raw_mode_war: enable/disable raw mode war
|
* @raw_mode_war: enable/disable raw mode war
|
||||||
* @enable_data_stall_detection: flag to enable data stall detection
|
* @enable_data_stall_detection: flag to enable data stall detection
|
||||||
|
* @enable_force_rx_64_ba: flag to enable force 64 blockack in RX
|
||||||
* @disable_intra_bss_fwd: flag to disable intra bss forwarding
|
* @disable_intra_bss_fwd: flag to disable intra bss forwarding
|
||||||
* @rxdma1_enable: flag to indicate if rxdma1 is enabled
|
* @rxdma1_enable: flag to indicate if rxdma1 is enabled
|
||||||
* @tx_desc_limit_0: tx_desc limit for 5G H
|
* @tx_desc_limit_0: tx_desc limit for 5G H
|
||||||
@@ -269,6 +270,7 @@ struct wlan_cfg_dp_soc_ctxt {
|
|||||||
uint32_t per_pkt_trace;
|
uint32_t per_pkt_trace;
|
||||||
bool raw_mode_war;
|
bool raw_mode_war;
|
||||||
bool enable_data_stall_detection;
|
bool enable_data_stall_detection;
|
||||||
|
bool enable_force_rx_64_ba;
|
||||||
bool disable_intra_bss_fwd;
|
bool disable_intra_bss_fwd;
|
||||||
bool rxdma1_enable;
|
bool rxdma1_enable;
|
||||||
int max_ast_idx;
|
int max_ast_idx;
|
||||||
@@ -1497,6 +1499,13 @@ bool wlan_cfg_is_fst_in_cmem_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
|
|||||||
*/
|
*/
|
||||||
bool wlan_cfg_is_swlm_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
|
bool wlan_cfg_is_swlm_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cfg_is_dp_force_rx_64_ba() - Get force use 64 BA flag
|
||||||
|
* @cfg: config context
|
||||||
|
*
|
||||||
|
* Return: force use 64 BA flag
|
||||||
|
*/
|
||||||
|
bool wlan_cfg_is_dp_force_rx_64_ba(struct wlan_cfg_dp_soc_ctxt *cfg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user