Эх сурвалжийг харах

qcacmn: Fix ETSI reg_domain for SRD channels

Currently, only ETSI13 check is present for SRD channels but
ETSI18 and ETSI20 are also added for SRD channels.

Add a check of ETSI18 and ETSI20 to remove SRD channels

Change-Id: I3bd7c9d9d2ff26f6f625fc70f1ca89cb39634dfb
CRs-Fixed: 3614070
Jyoti Kumari 1 жил өмнө
parent
commit
81a448455b

+ 3 - 3
umac/regulatory/core/src/reg_build_chan_list.c

@@ -1500,17 +1500,17 @@ reg_modify_chan_list_for_srd_channels(struct wlan_objmgr_pdev *pdev,
 {
 	enum channel_enum chan_enum;
 
-	if (!reg_is_etsi13_regdmn(pdev))
+	if (!reg_is_etsi_regdmn(pdev))
 		return;
 
-	if (reg_is_etsi13_srd_chan_allowed_master_mode(pdev))
+	if (reg_is_etsi_srd_chan_allowed_master_mode(pdev))
 		return;
 
 	for (chan_enum = 0; chan_enum < NUM_CHANNELS; chan_enum++) {
 		if (chan_list[chan_enum].chan_flags & REGULATORY_CHAN_DISABLED)
 			continue;
 
-		if (reg_is_etsi13_srd_chan_for_freq(
+		if (reg_is_etsi_srd_chan_for_freq(
 					pdev,
 					chan_list[chan_enum].center_freq)) {
 			chan_list[chan_enum].state =

+ 4 - 2
umac/regulatory/core/src/reg_db.c

@@ -2113,9 +2113,11 @@ QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn)
 	return QDF_STATUS_SUCCESS;
 }
 
-bool reg_etsi13_regdmn(uint8_t reg_dmn)
+bool reg_etsi_regdmn(uint8_t reg_dmn)
 {
-	return reg_dmn == ETSI13;
+	return ((reg_dmn == ETSI13) ||
+		(reg_dmn == ETSI18) ||
+		(reg_dmn == ETSI20));
 }
 
 bool reg_fcc_regdmn(uint8_t reg_dmn)

+ 2 - 2
umac/regulatory/core/src/reg_db.h

@@ -714,12 +714,12 @@ QDF_STATUS reg_get_num_countries(int *num_countries);
 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn);
 
 /**
- * reg_etsi13_regdmn () - Checks if the reg domain is ETSI13 or not
+ * reg_etsi_regdmn () - Check if the reg domain is ETSI13/ETSI18/ETSI20 or not
  * @reg_dmn: reg domain
  *
  * Return: true or false
  */
-bool reg_etsi13_regdmn(uint8_t reg_dmn);
+bool reg_etsi_regdmn(uint8_t reg_dmn);
 
 /**
  * reg_fcc_regdmn () - Checks if the reg domain is FCC3/FCC8/FCC15/FCC16 or not

+ 1 - 1
umac/regulatory/core/src/reg_services_common.c

@@ -3917,7 +3917,7 @@ reg_skip_invalid_chan_freq(struct wlan_objmgr_pdev *pdev,
 				}
 
 				if (!(enable_srd_chan & srd_mask) &&
-				    reg_is_etsi13_srd_chan_for_freq(
+				    reg_is_etsi_srd_chan_for_freq(
 					pdev, res_msg[chan_enum].freq)) {
 					res_msg[chan_enum].iface_mode_mask &=
 						~(iface_mode);

+ 9 - 9
umac/regulatory/core/src/reg_utils.c

@@ -654,7 +654,7 @@ bool reg_is_dsrc_freq(qdf_freq_t freq)
 }
 #endif  /*CONFIG_CHAN_FREQ_API*/
 #else
-bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
+bool reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev)
 {
 	struct cur_regdmn_info cur_reg_dmn;
 	QDF_STATUS status;
@@ -665,25 +665,25 @@ bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
 		return false;
 	}
 
-	return reg_etsi13_regdmn(cur_reg_dmn.dmn_id_5g);
+	return reg_etsi_regdmn(cur_reg_dmn.dmn_id_5g);
 }
 
 #ifdef CONFIG_CHAN_FREQ_API
-bool reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
-				     uint16_t freq)
+bool reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
+				   uint16_t freq)
 {
 	if (!REG_IS_5GHZ_FREQ(freq))
 		return false;
 
-	if (!(freq >= REG_ETSI13_SRD_START_FREQ &&
-	      freq <= REG_ETSI13_SRD_END_FREQ))
+	if (!(freq >= REG_ETSI_SRD_START_FREQ &&
+	      freq <= REG_ETSI_SRD_END_FREQ))
 		return false;
 
-	return reg_is_etsi13_regdmn(pdev);
+	return reg_is_etsi_regdmn(pdev);
 }
 #endif /* CONFIG_CHAN_FREQ_API */
 
-bool reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
+bool reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
 {
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
@@ -701,7 +701,7 @@ bool reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
 	}
 
 	return psoc_priv_obj->enable_srd_chan_in_master_mode &&
-	       reg_is_etsi13_regdmn(pdev);
+	       reg_is_etsi_regdmn(pdev);
 }
 #endif
 

+ 17 - 16
umac/regulatory/core/src/reg_utils.h

@@ -33,8 +33,8 @@
 #define REG_DSRC_END_FREQ   channel_map[MAX_DSRC_CHANNEL].center_freq
 #endif
 
-#define REG_ETSI13_SRD_START_FREQ 5745
-#define REG_ETSI13_SRD_END_FREQ   5865
+#define REG_ETSI_SRD_START_FREQ 5745
+#define REG_ETSI_SRD_END_FREQ   5865
 
 /**
  * reg_is_world_ctry_code() - Check if the given country code is WORLD regdomain
@@ -560,13 +560,13 @@ QDF_STATUS reg_set_keep_6ghz_sta_cli_connection(struct wlan_objmgr_pdev *pdev,
 bool reg_is_dsrc_freq(qdf_freq_t freq);
 #endif /* CONFIG_CHAN_FREQ_API*/
 
-static inline bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
+static inline bool reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev)
 {
 	return false;
 }
 
 /**
- * reg_is_etsi13_srd_chan_for_freq() - Checks the channel for ETSI13 srd ch
+ * reg_is_etsi_srd_chan_for_freq() - Checks the channel for ETSI13 srd ch
  * frequency or not
  * @freq: Channel center frequency
  * @pdev: pdev ptr
@@ -574,13 +574,13 @@ static inline bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
  * Return: true or false
  */
 static inline bool
-reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev, uint16_t freq)
+reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev, uint16_t freq)
 {
 	return false;
 }
 
 static inline bool
-reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
+reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
 {
 	return true;
 }
@@ -591,27 +591,28 @@ static inline bool reg_is_dsrc_freq(qdf_freq_t freq)
 }
 
 #ifdef CONFIG_CHAN_FREQ_API
-bool reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev
-				     *pdev, uint16_t freq);
+bool reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev
+				   *pdev, uint16_t freq);
 #endif /*CONFIG_CHAN_FREQ_API */
 
 /**
- * reg_is_etsi13_regdmn() - Checks if the current reg domain is ETSI13 or not
+ * reg_is_etsi_regdmn() - Check if the current reg domain is
+ * ETSI13/ETSI18/ETSI20 or not
  * @pdev: pdev ptr
  *
  * Return: true or false
  */
-bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev);
+bool reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev);
 
 /**
- * reg_is_etsi13_srd_chan_allowed_master_mode() - Checks if regdmn is ETSI13
+ * reg_is_etsi_srd_chan_allowed_master_mode() - Checks if regdmn is ETSI13
  * and SRD channels are allowed in master mode or not.
  *
  * @pdev: pdev ptr
  *
  * Return: true or false
  */
-bool reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev);
+bool reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev);
 #else
 static inline bool reg_is_dsrc_freq(qdf_freq_t freq)
 {
@@ -619,19 +620,19 @@ static inline bool reg_is_dsrc_freq(qdf_freq_t freq)
 }
 
 static inline
-bool reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
-				     uint16_t freq)
+bool reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
+				   uint16_t freq)
 {
 	return false;
 }
 
-static inline bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
+static inline bool reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev)
 {
 	return false;
 }
 
 static inline bool
-reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
+reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
 {
 	return false;
 }

+ 9 - 7
umac/regulatory/dispatcher/inc/wlan_reg_services_api.h

@@ -638,34 +638,36 @@ wlan_reg_get_best_6g_power_type(struct wlan_objmgr_psoc *psoc,
 
 #ifdef CONFIG_CHAN_FREQ_API
 /**
- * wlan_reg_is_etsi13_srd_chan_for_freq() - Checks if the ch is ETSI13 srd ch
+ * wlan_reg_is_etsi_srd_chan_for_freq() - Checks if the ch is
+ * ETSI13/ETSI18/ETSI20 srd ch
  * or not
  * @pdev: pdev ptr
  * @freq: channel center frequency
  *
  * Return: true or false
  */
-bool wlan_reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
-					  qdf_freq_t freq);
+bool wlan_reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
+					qdf_freq_t freq);
 #endif /*CONFIG_CHAN_FREQ_API*/
 
 /**
- * wlan_reg_is_etsi13_regdmn() - Checks if current reg domain is ETSI13 or not
+ * wlan_reg_is_etsi_regdmn() - Check if current reg domain is
+ * ETSI13/ETSI18/ETSI20 or not
  * @pdev: pdev ptr
  *
  * Return: true or false
  */
-bool wlan_reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev);
+bool wlan_reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev);
 
 /**
- * wlan_reg_is_etsi13_srd_chan_allowed_master_mode() - Checks if regdmn is
+ * wlan_reg_is_etsi_srd_chan_allowed_master_mode() - Checks if regdmn is
  * ETSI13 and SRD channels are allowed in master mode or not.
  *
  * @pdev: pdev ptr
  *
  * Return: true or false
  */
-bool wlan_reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev
+bool wlan_reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev
 						     *pdev);
 #endif
 

+ 7 - 7
umac/regulatory/dispatcher/src/wlan_reg_services_api.c

@@ -710,15 +710,15 @@ bool wlan_reg_11d_enabled_on_host(struct wlan_objmgr_psoc *psoc)
 	return reg_11d_enabled_on_host(psoc);
 }
 
-bool wlan_reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
+bool wlan_reg_is_etsi_regdmn(struct wlan_objmgr_pdev *pdev)
 {
-	return reg_is_etsi13_regdmn(pdev);
+	return reg_is_etsi_regdmn(pdev);
 }
 
-bool wlan_reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev
+bool wlan_reg_is_etsi_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev
 						     *pdev)
 {
-	return reg_is_etsi13_srd_chan_allowed_master_mode(pdev);
+	return reg_is_etsi_srd_chan_allowed_master_mode(pdev);
 }
 
 bool wlan_reg_is_6ghz_band_set(struct wlan_objmgr_pdev *pdev)
@@ -1075,10 +1075,10 @@ bool wlan_reg_is_freq_present_in_cur_chan_list(struct wlan_objmgr_pdev *pdev,
 	return reg_is_freq_present_in_cur_chan_list(pdev, freq);
 }
 
-bool wlan_reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
-					  qdf_freq_t freq)
+bool wlan_reg_is_etsi_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
+					qdf_freq_t freq)
 {
-	return reg_is_etsi13_srd_chan_for_freq(pdev, freq);
+	return reg_is_etsi_srd_chan_for_freq(pdev, freq);
 }
 
 bool wlan_reg_is_dsrc_freq(qdf_freq_t freq)