Selaa lähdekoodia

qcacmn: Add API to check for passive frequency

Add new API to check if frequency is passive or not. The API checks
the channel flag against REGULATORY_CHAN_NO_IR.

Change-Id: I166a7a79517f81c23ff933d2657ef3f4c551c082
CRs-fixed: 2822205
Lincoln Tran 4 vuotta sitten
vanhempi
sitoutus
8652562a87

+ 9 - 0
umac/regulatory/core/src/reg_services_common.c

@@ -3956,6 +3956,15 @@ bool reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
 
 	return ch_state == CHANNEL_STATE_DISABLE;
 }
+
+bool reg_is_passive_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
+{
+	uint32_t chan_flags;
+
+	chan_flags = reg_get_channel_flags_for_freq(pdev, freq);
+
+	return chan_flags & REGULATORY_CHAN_NO_IR;
+}
 #endif /* CONFIG_CHAN_FREQ_API */
 
 uint8_t  reg_get_max_tx_power(struct wlan_objmgr_pdev *pdev)

+ 10 - 0
umac/regulatory/core/src/reg_services_common.h

@@ -1147,6 +1147,16 @@ reg_get_5g_bonded_channel_for_freq(struct wlan_objmgr_pdev *pdev,
  * Return: True if channel state is disabled, else false
  */
 bool reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq);
+
+/**
+ * reg_is_passive_for_freq() - Check if the given channel frequency is in
+ * passive state
+ * @pdev: Pointer to pdev
+ * @freq: Channel frequency
+ *
+ * Return: True if channel state is passive, else false
+ */
+bool reg_is_passive_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq);
 #endif /* CONFIG_CHAN_FREQ_API */
 
 /**

+ 11 - 0
umac/regulatory/dispatcher/inc/wlan_reg_services_api.h

@@ -1334,6 +1334,17 @@ bool wlan_reg_is_passive_or_disable_for_freq(struct wlan_objmgr_pdev *pdev,
 bool wlan_reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev,
 				  qdf_freq_t freq);
 
+/**
+ * wlan_reg_is_passive_for_freq() - Check the channel flags to see if the
+ * passive flag is set
+ * @pdev: pdev ptr
+ * @freq: Channel center frequency
+ *
+ * Return: true or false
+ */
+bool wlan_reg_is_passive_for_freq(struct wlan_objmgr_pdev *pdev,
+				  qdf_freq_t freq);
+
 /**
  * wlan_reg_chan_to_band() - Get band from channel number
  * @chan_num: channel number

+ 6 - 0
umac/regulatory/dispatcher/src/wlan_reg_services_api.c

@@ -1011,6 +1011,12 @@ bool wlan_reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev,
 	return reg_is_disable_for_freq(pdev, freq);
 }
 
+bool wlan_reg_is_passive_for_freq(struct wlan_objmgr_pdev *pdev,
+				  qdf_freq_t freq)
+{
+	return reg_is_passive_for_freq(pdev, freq);
+}
+
 QDF_STATUS
 wlan_reg_get_channel_list_with_power_for_freq(struct wlan_objmgr_pdev *pdev,
 					      struct channel_power *ch_list,