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

Commit 3b50e89b authored by Yu Tian's avatar Yu Tian Committed by snandini
Browse files

qcacmn: add an ini field to control rx frame pending check

Add a ini control field to control rx frame pending check
logic in WoW case. In some cases, power consumption is more
important than rx frame ping loss, so add a control flag

Change-Id: I8c4d3725edddb82a0f06dc70c22a8dd5243209f2
CRs-Fixed: 2806786
parent 60b177cb
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2557,6 +2557,9 @@ cdp_rx_get_pending(ol_txrx_soc_handle soc)
	    !soc->ol_ops->dp_rx_get_pending)
		return 0;

	if (cdp_cfg_get(soc, cfg_dp_wow_check_rx_pending))
		return soc->ol_ops->dp_rx_get_pending(soc);
	else
		return 0;
}
#endif /* _CDP_TXRX_CMN_H_ */
+2 −0
Original line number Diff line number Diff line
@@ -2239,6 +2239,7 @@ struct cdp_monitor_filter {
 * @cfg_dp_ce_classify_enable: get CE classify enable config
 * @cfg_dp_disable_intra_bss_fwd: get intra bss fwd config
 * @cfg_dp_pktlog_buffer_size: get packet log buffer size config
 * @cfg_dp_wow_check_rx_pending: get wow rx pending frame check config
 */
enum cdp_dp_cfg {
	cfg_dp_enable_data_stall,
@@ -2260,6 +2261,7 @@ enum cdp_dp_cfg {
	cfg_dp_ce_classify_enable,
	cfg_dp_disable_intra_bss_fwd,
	cfg_dp_pktlog_buffer_size,
	cfg_dp_wow_check_rx_pending,
};

/**
+2 −0
Original line number Diff line number Diff line
@@ -10104,6 +10104,8 @@ static uint32_t dp_get_cfg(struct cdp_soc_t *soc, enum cdp_dp_cfg cfg)
	case cfg_dp_pktlog_buffer_size:
		value = dpsoc->wlan_cfg_ctx->pktlog_buffer_size;
		break;
	case cfg_dp_wow_check_rx_pending:
		value = dpsoc->wlan_cfg_ctx->wow_check_rx_pending_enable;
	default:
		value =  0;
	}
+21 −2
Original line number Diff line number Diff line
@@ -926,6 +926,25 @@
	CFG_INI_BOOL("legacy_mode_csum_disable", false, \
		     "Enable/Disable legacy mode checksum")

/*
 * <ini>
 * wow_check_rx_pending_enable - control to check RX frames pending in Wow
 * @Min: 0
 * @Max: 1
 * @Default: 0
 *
 * This ini is used to control DP Software to perform RX pending check
 * before entering WoW mode
 *
 * Usage: Internal
 *
 * </ini>
 */
#define CFG_DP_WOW_CHECK_RX_PENDING \
		CFG_INI_BOOL("wow_check_rx_pending_enable", \
		false, \
		"enable rx frame pending check in WoW mode")

#define CFG_DP \
		CFG(CFG_DP_HTT_PACKET_TYPE) \
		CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
@@ -1003,6 +1022,6 @@
		CFG(CFG_DP_RX_FISA_ENABLE) \
		CFG(CFG_DP_LEGACY_MODE_CSUM_DISABLE) \
		CFG(CFG_DP_RX_PENDING_HL_THRESHOLD) \
		CFG(CFG_DP_RX_PENDING_LO_THRESHOLD)

		CFG(CFG_DP_RX_PENDING_LO_THRESHOLD) \
		CFG(CFG_DP_WOW_CHECK_RX_PENDING)
#endif /* _CFG_DP_H_ */
+2 −0
Original line number Diff line number Diff line
@@ -576,6 +576,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
			cfg_get(psoc, CFG_DP_RX_PENDING_HL_THRESHOLD);
	wlan_cfg_ctx->rx_pending_low_threshold =
			cfg_get(psoc, CFG_DP_RX_PENDING_LO_THRESHOLD);
	wlan_cfg_ctx->wow_check_rx_pending_enable =
			cfg_get(psoc, CFG_DP_WOW_CHECK_RX_PENDING);

	return wlan_cfg_ctx;
}
Loading