Browse Source

qcacmn: Add two definitions for allowed SP mode

Currently for client SP, super channel list is disabled
even if the corresponding reg rules are sent by the target.

To address this issue, add two definitions for
reg_is_sp_pwr_mode_allowed_in_supchan, to check
if the given mode is SP mode in the super channel list.

Change-Id: Idb1fc22e3ba4a61a07e03302f92fd8e2a6a9bc85
CRs-Fixed: 3426498
Asutosh Mohapatra 2 years ago
parent
commit
0d779068fe
1 changed files with 36 additions and 2 deletions
  1. 36 2
      umac/regulatory/core/src/reg_build_chan_list.c

+ 36 - 2
umac/regulatory/core/src/reg_build_chan_list.c

@@ -2605,6 +2605,33 @@ static void reg_accumulate_pwr_type(
 	super_chan_list[chn_idx].power_types |= BIT(supp_pwr_mode);
 	super_chan_list[chn_idx].power_types |= BIT(supp_pwr_mode);
 }
 }
 
 
+#ifdef CONFIG_REG_CLIENT
+/**
+ * reg_is_ap_sp_supp_pwr_mode() - Check if the input supported power mode is
+ * a AP SP power mode
+ * @supp_pwr_mode: 6G supported power mode
+ *
+ * Return: bool
+ */
+static bool
+reg_is_ap_sp_supp_pwr_mode(enum supported_6g_pwr_types supp_pwr_mode)
+{
+	return (supp_pwr_mode == REG_AP_SP);
+}
+
+/**
+ * reg_is_sp_pwr_mode_allowed_in_supchan() - Check if the input supported power
+ * mode is SP power mode
+ * @supp_pwr_mode: 6G supported power mode
+ *
+ * Return: bool
+ */
+static bool
+reg_is_sp_pwr_mode_allowed_in_supchan(enum supported_6g_pwr_types supp_pwr_mode)
+{
+	return reg_is_ap_sp_supp_pwr_mode(supp_pwr_mode);
+}
+#else
 /**
 /**
  * reg_is_sp_supp_pwr_mode() - Check if the input supported power mode is a
  * reg_is_sp_supp_pwr_mode() - Check if the input supported power mode is a
  * SP power mode
  * SP power mode
@@ -2620,6 +2647,13 @@ reg_is_sp_supp_pwr_mode(enum supported_6g_pwr_types supp_pwr_mode)
 		(supp_pwr_mode == REG_CLI_SUB_SP));
 		(supp_pwr_mode == REG_CLI_SUB_SP));
 }
 }
 
 
+static bool
+reg_is_sp_pwr_mode_allowed_in_supchan(enum supported_6g_pwr_types supp_pwr_mode)
+{
+	return reg_is_sp_supp_pwr_mode(supp_pwr_mode);
+}
+#endif
+
 /**
 /**
  * reg_fill_best_pwr_mode() - Fill the best power mode
  * reg_fill_best_pwr_mode() - Fill the best power mode
  * @pdev_priv_obj: Pointer to pdev_priv_obj
  * @pdev_priv_obj: Pointer to pdev_priv_obj
@@ -2649,7 +2683,7 @@ reg_fill_best_pwr_mode(struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj,
 	if (client_type != curr_6g_client_type)
 	if (client_type != curr_6g_client_type)
 		return;
 		return;
 
 
-	if (reg_is_sp_supp_pwr_mode(supp_pwr_mode) &&
+	if (reg_is_sp_pwr_mode_allowed_in_supchan(supp_pwr_mode) &&
 	    !wlan_reg_is_afc_power_event_received(pdev_priv_obj->pdev_ptr))
 	    !wlan_reg_is_afc_power_event_received(pdev_priv_obj->pdev_ptr))
 		return;
 		return;
 
 
@@ -2773,7 +2807,7 @@ static void reg_update_sup_ch_entry_for_mode(
 	 * If AFC is invalid, copy from Regulatory SP channel list.
 	 * If AFC is invalid, copy from Regulatory SP channel list.
 	 * If AFC is valid, copy from AFC response channel list.
 	 * If AFC is valid, copy from AFC response channel list.
 	 */
 	 */
-	if (reg_is_sp_supp_pwr_mode(supp_pwr_mode)) {
+	if (reg_is_sp_pwr_mode_allowed_in_supchan(supp_pwr_mode)) {
 		if (wlan_reg_is_afc_power_event_received(pdev))
 		if (wlan_reg_is_afc_power_event_received(pdev))
 			reg_assign_afc_chan_entry_to_mas_chan(pdev_priv_obj,
 			reg_assign_afc_chan_entry_to_mas_chan(pdev_priv_obj,
 							      &mas_chan,
 							      &mas_chan,