diff --git a/fw_offload/core/inc/wlan_fw_offload_main.h b/fw_offload/core/inc/wlan_fw_offload_main.h
index 0df43d7e4c..365b53d542 100644
--- a/fw_offload/core/inc/wlan_fw_offload_main.h
+++ b/fw_offload/core/inc/wlan_fw_offload_main.h
@@ -162,6 +162,7 @@ struct wlan_fwol_neighbor_report_cfg {
* @neighbor_report_cfg: 11K neighbor report config
* @ani_enabled: ANI enable/disable
* @enable_rts_sifsbursting: Enable RTS SIFS Bursting
+ * @enable_sifs_burst: Enable SIFS burst
* @max_mpdus_inampdu: Max number of MPDUS
* @arp_ac_category: ARP AC category
* @enable_phy_reg_retention: Enable PHY reg retention
@@ -197,6 +198,7 @@ struct wlan_fwol_cfg {
struct wlan_fwol_neighbor_report_cfg neighbor_report_cfg;
bool ani_enabled;
bool enable_rts_sifsbursting;
+ uint8_t enable_sifs_burst;
uint8_t max_mpdus_inampdu;
uint32_t arp_ac_category;
uint8_t enable_phy_reg_retention;
diff --git a/fw_offload/core/src/wlan_fw_offload_main.c b/fw_offload/core/src/wlan_fw_offload_main.c
index f82b267dc7..1e1f79c3db 100644
--- a/fw_offload/core/src/wlan_fw_offload_main.c
+++ b/fw_offload/core/src/wlan_fw_offload_main.c
@@ -500,6 +500,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
fwol_cfg->ani_enabled = cfg_get(psoc, CFG_ENABLE_ANI);
fwol_cfg->enable_rts_sifsbursting =
cfg_get(psoc, CFG_SET_RTS_FOR_SIFS_BURSTING);
+ fwol_cfg->enable_sifs_burst = cfg_get(psoc, CFG_SET_SIFS_BURST);
fwol_cfg->max_mpdus_inampdu = cfg_get(psoc, CFG_MAX_MPDUS_IN_AMPDU);
fwol_cfg->arp_ac_category = cfg_get(psoc, CFG_ARP_AC_CATEGORY);
fwol_cfg->enable_phy_reg_retention = cfg_get(psoc, CFG_ENABLE_PHY_REG);
diff --git a/fw_offload/dispatcher/inc/cfg_fwol_generic.h b/fw_offload/dispatcher/inc/cfg_fwol_generic.h
index 6bd48e3d1c..0bf8ee0c5d 100644
--- a/fw_offload/dispatcher/inc/cfg_fwol_generic.h
+++ b/fw_offload/dispatcher/inc/cfg_fwol_generic.h
@@ -65,6 +65,38 @@
0, \
"Set rts for sifs bursting")
+/*
+ *
+ * sifs_burst_mask - Set sifs burst mask
+ * @Min: 0
+ * @Max: 3
+ * @Default: 1
+ *
+ * This ini is used to set 11n and legacy(non 11n/wmm)
+ * sifs burst. Especially under running multi stream
+ * traffic test case, it can be useful to let the low
+ * priority AC, or legacy mode device, or the specified
+ * AC to aggressively contend air medium, then have a
+ * obvious improvement of throughput. Bit0 is the switch
+ * of sifs burst, it must be set if want to enable sifs
+ * burst, Bit1 is for legacy mode.
+ * Supported configuration:
+ * 0: disabled
+ * 1: enabled, but disabled for legacy mode
+ * 3: all enabled
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_SET_SIFS_BURST CFG_INI_UINT( \
+ "sifs_burst_mask", \
+ 0, \
+ 3, \
+ 1, \
+ CFG_VALUE_OR_DEFAULT, \
+ "Set SIFS burst mask")
+
/*
*
* gMaxMPDUsInAMPDU - max mpdus in ampdu
@@ -706,6 +738,7 @@
CFG_FWOL_DHCP \
CFG(CFG_ENABLE_ANI) \
CFG(CFG_SET_RTS_FOR_SIFS_BURSTING) \
+ CFG(CFG_SET_SIFS_BURST) \
CFG(CFG_MAX_MPDUS_IN_AMPDU) \
CFG(CFG_ARP_AC_CATEGORY) \
CFG(CFG_ENABLE_PHY_REG) \
diff --git a/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h b/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h
index 968efd16ed..bccd02a08c 100644
--- a/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h
+++ b/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h
@@ -158,6 +158,16 @@ QDF_STATUS ucfg_fwol_get_ani_enabled(struct wlan_objmgr_psoc *psoc,
QDF_STATUS ucfg_get_enable_rts_sifsbursting(struct wlan_objmgr_psoc *psoc,
bool *enable_rts_sifsbursting);
+/**
+ * ucfg_get_enable_sifs_burst() - Get the enable_sifs_burst value
+ * @psoc: pointer to the psoc object
+ * @enable_sifs_burst: pointer to return enable_sifs_burst value
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS ucfg_get_enable_sifs_burst(struct wlan_objmgr_psoc *psoc,
+ uint8_t *enable_sifs_burst);
+
/**
* ucfg_get_max_mpdus_inampdu() - Assigns the max_mpdus_inampdu value
* @psoc: pointer to the psoc object
diff --git a/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c b/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c
index 8a96f8db11..019fb5f9b6 100644
--- a/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c
+++ b/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c
@@ -290,6 +290,21 @@ QDF_STATUS ucfg_get_enable_rts_sifsbursting(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
+QDF_STATUS ucfg_get_enable_sifs_burst(struct wlan_objmgr_psoc *psoc,
+ uint8_t *enable_sifs_burst)
+{
+ struct wlan_fwol_psoc_obj *fwol_obj;
+
+ fwol_obj = fwol_get_psoc_obj(psoc);
+ if (!fwol_obj) {
+ fwol_err("Failed to get FWOL obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *enable_sifs_burst = fwol_obj->cfg.enable_sifs_burst;
+ return QDF_STATUS_SUCCESS;
+}
+
QDF_STATUS ucfg_get_max_mpdus_inampdu(struct wlan_objmgr_psoc *psoc,
uint8_t *max_mpdus_inampdu)
{