diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 6e4a6ba187..b228e4fd87 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -620,6 +620,8 @@ mlme_init_qos_edca_params(struct wlan_objmgr_psoc *psoc, edca_params->enable_edca_params = cfg_get(psoc, CFG_EDCA_ENABLE_PARAM); + edca_params->enable_wmm_txop = + cfg_get(psoc, CFG_ENABLE_WMM_TXOP); edca_params->edca_ac_vo.vo_cwmin = cfg_get(psoc, CFG_EDCA_VO_CWMIN); edca_params->edca_ac_vo.vo_cwmax = diff --git a/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h b/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h index ece0a8de01..56f0c913b9 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2021 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 @@ -289,6 +289,28 @@ 0, \ "Enable edca parameter") +/* + * + * enable_wmm_txop - Enable WMM based txop feature + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable the WMM based txop feature in FW + * + * Related: None + * + * Supported Feature: STA + * + * Usage: Internal + * + * + */ +#define CFG_ENABLE_WMM_TXOP CFG_INI_BOOL( \ + "enable_wmm_txop", \ + 1, \ + "Enable WMM TXOP") + /* * * gEdcaVoCwmin - Set Cwmin value for QCA_WLAN_AC_VO @@ -646,6 +668,7 @@ CFG(CFG_EDCA_BK_AIFS) \ CFG(CFG_EDCA_BE_CWMIN) \ CFG(CFG_EDCA_BE_CWMAX) \ + CFG(CFG_ENABLE_WMM_TXOP) \ CFG(CFG_EDCA_BE_AIFS) #endif /* __CFG_MLME_EDCA__PARAM_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index e67753593f..13e57ccfe0 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -395,6 +395,7 @@ struct wlan_mlme_edca_params { struct mlme_cfg_str etsi_acvo_b; bool enable_edca_params; + bool enable_wmm_txop; struct mlme_edca_ac_vo edca_ac_vo; struct mlme_edca_ac_vi edca_ac_vi; struct mlme_edca_ac_bk edca_ac_bk; diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 63d3b52878..7df4154fe0 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -2612,6 +2612,16 @@ QDF_STATUS wma_post_vdev_create_setup(struct wlan_objmgr_vdev *vdev) status); } + wma_debug("Setting WMI_VDEV_PARAM_WMM_TXOP_ENABLE: %d", + mac->mlme_cfg->edca_params.enable_wmm_txop); + + status = wma_vdev_set_param(wma_handle->wmi_handle, vdev_id, + WMI_VDEV_PARAM_WMM_TXOP_ENABLE, + mac->mlme_cfg->edca_params.enable_wmm_txop); + + if (QDF_IS_STATUS_ERROR(status)) + wma_err("failed to set WMM TXOP (status = %d)", status); + wma_debug("Setting WMI_VDEV_PARAM_DISCONNECT_TH: %d", mac->mlme_cfg->gen.dropped_pkt_disconnect_thresh); status = wma_vdev_set_param(