Browse Source

qcacmn: Add VDEV MLME support for SR Prohibit

Add VDEV MLME variables, function to support SR prohibit
Enable / Disable

Change-Id: I9b6128f179880dd407dc042f6bbbbde63135f4ed
CRs-Fixed: 3308159
Rachit Kankane 2 years ago
parent
commit
c7964d96d6
2 changed files with 64 additions and 1 deletions
  1. 63 1
      umac/mlme/include/wlan_vdev_mlme.h
  2. 1 0
      wmi/src/wmi_unified_vdev_tlv.c

+ 63 - 1
umac/mlme/include/wlan_vdev_mlme.h

@@ -382,8 +382,9 @@ struct vdev_mlme_mgmt_generic {
 	uint8_t he_spr_srg_max_pd_offset;
 	uint8_t he_spr_srg_min_pd_offset;
 	bool he_spr_enabled;
-	int32_t pd_threshold;
 	bool he_spr_disabled_due_conc;
+	bool sr_prohibit_enabled;
+	int32_t pd_threshold;
 	uint64_t srg_bss_color;
 	uint64_t srg_partial_bssid;
 #endif
@@ -1275,6 +1276,30 @@ bool wlan_vdev_mlme_is_sr_disable_due_conc(struct wlan_objmgr_vdev *vdev)
 	return vdev_mlme->mgmt.generic.he_spr_disabled_due_conc;
 }
 
+/**
+ * wlan_vdev_mlme_is_sr_prohibit_en() - spatial reuse PD prohibit enabled
+ *					/ disabled (HE_SIGA_Val15_Allowed)
+ * @vdev: VDEV object
+ *
+ * API to check whether the spatial reuse PD prohibit is enabled / disabled
+ *
+ * Caller need to acquire lock with wlan_vdev_obj_lock()
+ *
+ * Return:
+ * @sr_prohibit_enabled: Spatial reuse PD prohibit enabled / disabled
+ */
+static inline
+bool wlan_vdev_mlme_is_sr_prohibit_en(struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme)
+		return false;
+
+	return vdev_mlme->mgmt.generic.sr_prohibit_enabled;
+}
+
 /**
  * wlan_vdev_mlme_set_sr_ctrl() - set spatial reuse SR control
  * @vdev: VDEV object
@@ -1367,6 +1392,31 @@ void wlan_vdev_mlme_set_sr_disable_due_conc(struct wlan_objmgr_vdev *vdev,
 						he_spr_disabled_due_conc;
 }
 
+/**
+ * wlan_vdev_mlme_set_sr_prohibit_en() - set spatial reuse PD prohibit enabled
+ *					 / disabled (HE_SIGA_Val15_Allowed)
+ * @vdev: VDEV object
+ * @sr_prohibit_enabled: True / False - PD Prohibit enabled / disabled
+ *
+ * API to set spatial reuse PD prohibit enabled / disabled
+ *
+ * Caller need to acquire lock with wlan_vdev_obj_lock()
+ *
+ * Return: void
+ */
+static inline
+void wlan_vdev_mlme_set_sr_prohibit_en(struct wlan_objmgr_vdev *vdev,
+				       bool sr_prohibit_enabled)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme)
+		return;
+
+	vdev_mlme->mgmt.generic.sr_prohibit_enabled = sr_prohibit_enabled;
+}
+
 /**
  * wlan_vdev_mlme_set_srg_pd_offset() - set spatial reuse SRG pd max/min offset
  * @vdev: VDEV object
@@ -1544,6 +1594,12 @@ bool wlan_vdev_mlme_is_sr_disable_due_conc(struct wlan_objmgr_vdev *vdev)
 	return false;
 }
 
+static inline
+bool wlan_vdev_mlme_is_sr_prohibit_en(struct wlan_objmgr_vdev *vdev)
+{
+	return false;
+}
+
 static inline void wlan_vdev_mlme_set_sr_ctrl(struct wlan_objmgr_vdev *vdev,
 					      uint8_t sr_ctrl)
 {
@@ -1565,6 +1621,12 @@ void wlan_vdev_mlme_set_sr_disable_due_conc(struct wlan_objmgr_vdev *vdev,
 					    bool he_spr_disabled_due_conc)
 {
 }
+
+static inline
+void wlan_vdev_mlme_set_sr_prohibit_en(struct wlan_objmgr_vdev *vdev,
+				       bool sr_prohibit_enabled)
+{
+}
 #endif
 #else
 static inline void wlan_vdev_mlme_set_he_mcs_12_13_map(

+ 1 - 0
wmi/src/wmi_unified_vdev_tlv.c

@@ -448,6 +448,7 @@ vdev_param_sr_prohibit_send_tlv(struct wmi_unified *wmi_handle,
 	cmd->vdev_id = param->vdev_id;
 	cmd->tidmap = 0;
 	cmd->prohibit_enable = param->sr_he_siga_val15_allowed;
+	wmi_debug("SR Prohibit enabled: %d", cmd->prohibit_enable);
 
 	wmi_mtrace(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID, cmd->vdev_id, 0);
 	if (wmi_unified_cmd_send(wmi_handle, buf, len,