diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 994e22066ab9..9445d7fdea79 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -5303,6 +5303,7 @@ qca_wlan_vendor_attr_he_omi_tx_policy [QCA_WLAN_VENDOR_ATTR_HE_OMI_MAX + 1] = { [QCA_WLAN_VENDOR_ATTR_HE_OMI_CH_BW] = {.type = NLA_U8 }, [QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DISABLE] = {.type = NLA_U8 }, [QCA_WLAN_VENDOR_ATTR_HE_OMI_TX_NSTS] = {.type = NLA_U8 }, + [QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DATA_DISABLE] = {.type = NLA_U8 }, }; static const struct nla_policy @@ -7100,6 +7101,16 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy, adapter->vdev_id, cmd_id, cfg_val); } + + cmd_id = QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DATA_DISABLE; + if (tb2[cmd_id]) { + cfg_val = nla_get_u8(tb2[cmd_id]); + ret_val = sme_set_he_om_ctrl_param( + hdd_ctx->mac_handle, + adapter->vdev_id, + cmd_id, cfg_val); + } + } if (ret_val) { sme_reset_he_om_ctrl(hdd_ctx->mac_handle); diff --git a/core/mac/inc/ani_global.h b/core/mac/inc/ani_global.h index 396c099eefa3..5de7cac5d0b0 100644 --- a/core/mac/inc/ani_global.h +++ b/core/mac/inc/ani_global.h @@ -820,6 +820,7 @@ struct mac_context { bool he_om_ctrl_cfg_ul_mu_dis; bool he_om_ctrl_cfg_tx_nsts_set; uint8_t he_om_ctrl_cfg_tx_nsts; + bool he_om_ctrl_ul_mu_data_dis; #ifdef WLAN_FEATURE_11AX tDot11fIEhe_cap he_cap_2g; tDot11fIEhe_cap he_cap_5g; diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index a9d3723ba2ab..a109aa7f0ab3 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -11461,6 +11461,7 @@ int sme_send_he_om_ctrl_update(mac_handle_t mac_handle, uint8_t session_id) omi_data.ch_bw = session->connectedProfile.vht_channel_width; omi_data.ul_mu_dis = mac_ctx->he_om_ctrl_cfg_ul_mu_dis; + omi_data.ul_mu_data_dis = mac_ctx->he_om_ctrl_ul_mu_data_dis; omi_data.omi_in_vht = 0x1; omi_data.omi_in_he = 0x1; @@ -11536,6 +11537,10 @@ int sme_set_he_om_ctrl_param(mac_handle_t mac_handle, uint8_t session_id, mac_ctx->he_om_ctrl_cfg_tx_nsts_set = true; mac_ctx->he_om_ctrl_cfg_tx_nsts = cfg_val; break; + case QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DATA_DISABLE: + sme_debug("Set OM ctrl UL MU data dis to %d", cfg_val); + mac_ctx->he_om_ctrl_ul_mu_data_dis = cfg_val; + break; default: sme_debug("Invalid OMI param %d", param); return -EINVAL; @@ -11555,6 +11560,7 @@ void sme_reset_he_om_ctrl(mac_handle_t mac_handle) mac_ctx->he_om_ctrl_cfg_ul_mu_dis = false; mac_ctx->he_om_ctrl_cfg_tx_nsts_set = false; mac_ctx->he_om_ctrl_cfg_tx_nsts = 0; + mac_ctx->he_om_ctrl_ul_mu_data_dis = false; } int sme_config_action_tx_in_tb_ppdu(mac_handle_t mac_handle, uint8_t session_id,