Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fad07ec authored by Yu Tian's avatar Yu Tian Committed by snandini
Browse files

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
parent 7035a365
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -2867,7 +2867,8 @@ int dp_addba_requestprocess_wifi3(struct cdp_soc_t *cdp_soc,
{
	QDF_STATUS status = QDF_STATUS_SUCCESS;
	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);

	if (!peer || peer->delete_in_progress) {
@@ -2895,6 +2896,12 @@ int dp_addba_requestprocess_wifi3(struct cdp_soc_t *cdp_soc,
		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) {
		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
			  "%s disable BA session",
+20 −1
Original line number Diff line number Diff line
@@ -945,6 +945,24 @@
		false, \
		"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 \
		CFG(CFG_DP_HTT_PACKET_TYPE) \
		CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
@@ -1023,5 +1041,6 @@
		CFG(CFG_DP_LEGACY_MODE_CSUM_DISABLE) \
		CFG(CFG_DP_RX_PENDING_HL_THRESHOLD) \
		CFG(CFG_DP_RX_PENDING_LO_THRESHOLD) \
		CFG(CFG_DP_WOW_CHECK_RX_PENDING)
		CFG(CFG_DP_WOW_CHECK_RX_PENDING) \
		CFG(CFG_FORCE_RX_64_BA)
#endif /* _CFG_DP_H_ */
+7 −0
Original line number Diff line number Diff line
@@ -551,6 +551,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
						   CFG_DP_RXDMA_ERR_DST_RING);
	wlan_cfg_ctx->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 =
		cfg_get(psoc, CFG_DP_TX_FLOW_START_QUEUE_OFFSET);
	wlan_cfg_ctx->tx_flow_stop_queue_threshold =
@@ -1311,3 +1313,8 @@ wlan_cfg_is_rx_mon_protocol_flow_tag_enabled(struct wlan_cfg_dp_soc_ctxt *cfg)
{
	return cfg->is_rx_mon_protocol_flow_tag_enabled;
}

bool wlan_cfg_is_dp_force_rx_64_ba(struct wlan_cfg_dp_soc_ctxt *cfg)
{
	return cfg->enable_force_rx_64_ba;
}
+10 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ struct wlan_srng_cfg {
 * @rxdma_err_dst_ring: rxdma error detination ring size
 * @raw_mode_war: enable/disable raw mode war
 * @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
 * @rxdma1_enable: flag to indicate if rxdma1 is enabled
 * @tx_desc_limit_0: tx_desc limit for 5G H
@@ -261,6 +262,7 @@ struct wlan_cfg_dp_soc_ctxt {
	uint32_t per_pkt_trace;
	bool raw_mode_war;
	bool enable_data_stall_detection;
	bool enable_force_rx_64_ba;
	bool disable_intra_bss_fwd;
	bool rxdma1_enable;
	int max_ast_idx;
@@ -1332,4 +1334,12 @@ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
 * Return: true if enabled, false otherwise.
 */
bool wlan_cfg_is_rx_fisa_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