diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 3c807a1543..46549ac5a8 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -6280,7 +6280,7 @@ static QDF_STATUS wma_vdev_mgmt_perband_tx_rate(struct dev_set_param *info) return QDF_STATUS_SUCCESS; } -#define MAX_VDEV_CREATE_PARAMS 19 +#define MAX_VDEV_CREATE_PARAMS 20 /* params being sent: * 1.wmi_vdev_param_wmm_txop_enable * 2.wmi_vdev_param_disconnect_th @@ -6301,6 +6301,7 @@ static QDF_STATUS wma_vdev_mgmt_perband_tx_rate(struct dev_set_param *info) * 17.wmi_vdev_param_enable_disable_oce_features * 18.wmi_vdev_param_bmiss_first_bcnt * 19.wmi_vdev_param_bmiss_final_bcnt + * 20.wmi_vdev_param_set_sap_ps_with_twt */ QDF_STATUS wma_vdev_create_set_param(struct wlan_objmgr_vdev *vdev) @@ -6316,6 +6317,7 @@ QDF_STATUS wma_vdev_create_set_param(struct wlan_objmgr_vdev *vdev) uint32_t hemu_mode; struct dev_set_param setparam[MAX_VDEV_CREATE_PARAMS]; uint8_t index = 0; + enum QDF_OPMODE opmode; if (!mac) return QDF_STATUS_E_FAILURE; @@ -6552,6 +6554,20 @@ QDF_STATUS wma_vdev_create_set_param(struct wlan_objmgr_vdev *vdev) goto error; } } + + opmode = wlan_vdev_mlme_get_opmode(vdev); + if (opmode == QDF_SAP_MODE) { + status = mlme_check_index_setparam( + setparam, + wmi_vdev_param_set_sap_ps_with_twt, + wlan_mlme_get_sap_ps_with_twt(mac->psoc), + index++, MAX_VDEV_CREATE_PARAMS); + if (QDF_IS_STATUS_ERROR(status)) { + wma_debug("failed to set wmi_vdev_param_set_sap_ps_with_twt"); + goto error; + } + } + status = wma_send_multi_pdev_vdev_set_params(MLME_VDEV_SETPARAM, vdev_id, setparam, index); if (QDF_IS_STATUS_ERROR(status)) {