Browse Source

qcacld-3.0: Configuration support for HE OM UL MU data disable

Add support to configure HE OM control UL MU data disable bit.

Change-Id: I62a3b33a2a08a7510ed9aafeb6da2842fe7ef09e
CRs-Fixed: 2386309
Kiran Kumar Lokere 6 years ago
parent
commit
49e3aff542
3 changed files with 18 additions and 0 deletions
  1. 11 0
      core/hdd/src/wlan_hdd_cfg80211.c
  2. 1 0
      core/mac/inc/ani_global.h
  3. 6 0
      core/sme/src/common/sme_api.c

+ 11 - 0
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);

+ 1 - 0
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;

+ 6 - 0
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,