Parcourir la source

qcacmn: Add DFS master feature flag

Add config flag to enable / disable DFS master feature

Change-Id: Iddd82dd5f117a4d75fda161f5a531aa7eab25016
CRs-Fixed: 2222557
Wen Gong il y a 7 ans
Parent
commit
67d105d445

+ 96 - 40
umac/dfs/dispatcher/inc/wlan_dfs_tgt_api.h

@@ -78,6 +78,7 @@ extern struct dfs_to_mlme global_dfs_to_mlme;
  * @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
  * @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
  */
+#ifdef DFS_COMPONENT_ENABLE
 QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
 		uint16_t dfs_ch_freq,
 		uint64_t dfs_ch_flags,
@@ -86,6 +87,34 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
 		uint8_t dfs_ch_vhtop_ch_freq_seg1,
 		uint8_t dfs_ch_vhtop_ch_freq_seg2);
 
+/**
+ * tgt_dfs_radar_enable() - Enables the radar.
+ * @pdev: Pointer to DFS pdev object.
+ * @no_cac: If no_cac is 0, it cancels the CAC.
+ *
+ * This is called each time a channel change occurs, to (potentially) enable
+ * the radar code.
+ */
+QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
+	int no_cac, uint32_t opmode);
+
+/**
+ * tgt_dfs_control()- Used to process ioctls related to DFS.
+ * @pdev: Pointer to DFS pdev object.
+ * @id: Command type.
+ * @indata: Input buffer.
+ * @insize: size of the input buffer.
+ * @outdata: A buffer for the results.
+ * @outsize: Size of the output buffer.
+ */
+QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
+	u_int id,
+	void *indata,
+	uint32_t insize,
+	void *outdata,
+	uint32_t *outsize,
+	int *error);
+
 /**
  * tgt_dfs_get_radars() - Based on the chipset, calls init radar table functions
  * @pdev: Pointer to DFS pdev object.
@@ -95,6 +124,60 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
  */
 QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev);
 
+/**
+ * tgt_dfs_process_radar_ind() - Process radar found indication.
+ * @pdev: Pointer to DFS pdev object.
+ * @radar_found: radar found info.
+ *
+ * Process radar found indication.
+ *
+ * Return QDF_STATUS.
+ */
+QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
+		struct radar_found_info *radar_found);
+#else
+static inline QDF_STATUS tgt_dfs_set_current_channel(
+		struct wlan_objmgr_pdev *pdev,
+		uint16_t dfs_ch_freq,
+		uint64_t dfs_ch_flags,
+		uint16_t dfs_ch_flagext,
+		uint8_t dfs_ch_ieee,
+		uint8_t dfs_ch_vhtop_ch_freq_seg1,
+		uint8_t dfs_ch_vhtop_ch_freq_seg2)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
+	int no_cac, uint32_t opmode)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
+	u_int id,
+	void *indata,
+	uint32_t insize,
+	void *outdata,
+	uint32_t *outsize,
+	int *error)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS tgt_dfs_process_radar_ind(
+		struct wlan_objmgr_pdev *pdev,
+		struct radar_found_info *radar_found)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
 /**
  * tgt_dfs_process_phyerr() - Process phyerr.
  * @pdev: Pointer to DFS pdev object.
@@ -147,17 +230,6 @@ QDF_STATUS tgt_dfs_is_phyerr_filter_offload(struct wlan_objmgr_psoc *psoc,
  */
 QDF_STATUS tgt_dfs_destroy_object(struct wlan_objmgr_pdev *pdev);
 
-/**
- * tgt_dfs_radar_enable() - Enables the radar.
- * @pdev: Pointer to DFS pdev object.
- * @no_cac: If no_cac is 0, it cancels the CAC.
- *
- * This is called each time a channel change occurs, to (potentially) enable
- * the radar code.
- */
-QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
-	int no_cac, uint32_t opmode);
-
 #ifdef QCA_MCL_DFS_SUPPORT
 /**
  * tgt_dfs_set_tx_leakage_threshold() - set tx_leakage_threshold.
@@ -168,25 +240,15 @@ QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
  */
 QDF_STATUS tgt_dfs_set_tx_leakage_threshold(struct wlan_objmgr_pdev *pdev,
 		uint16_t tx_leakage_threshold);
+#else
+static inline QDF_STATUS tgt_dfs_set_tx_leakage_threshold
+		(struct wlan_objmgr_pdev *pdev,
+		uint16_t tx_leakage_threshold)
+{
+	return QDF_STATUS_SUCCESS;
+}
 #endif
 
-/**
- * tgt_dfs_control()- Used to process ioctls related to DFS.
- * @pdev: Pointer to DFS pdev object.
- * @id: Command type.
- * @indata: Input buffer.
- * @insize: size of the input buffer.
- * @outdata: A buffer for the results.
- * @outsize: Size of the output buffer.
- */
-QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
-	u_int id,
-	void *indata,
-	uint32_t insize,
-	void *outdata,
-	uint32_t *outsize,
-	int *error);
-
 /**
  * tgt_dfs_is_precac_timer_running() - Check whether precac timer is running.
  * @pdev: Pointer to DFS pdev object.
@@ -221,18 +283,6 @@ QDF_STATUS tgt_dfs_find_vht80_chan_for_precac(struct wlan_objmgr_pdev *pdev,
 		bool *dfs_set_cfreq2,
 		bool *set_agile);
 
-/**
- * tgt_dfs_process_radar_ind() - Process radar found indication.
- * @pdev: Pointer to DFS pdev object.
- * @radar_found: radar found info.
- *
- * Process radar found indication.
- *
- * Return QDF_STATUS.
- */
-QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
-		struct radar_found_info *radar_found);
-
 /**
  * tgt_dfs_cac_complete() - Process cac complete indication.
  * @pdev: Pointer to DFS pdev object.
@@ -283,6 +333,12 @@ QDF_STATUS tgt_dfs_process_emulate_bang_radar_cmd(struct wlan_objmgr_pdev *pdev,
  * Return: QDF_STATUS
  */
 QDF_STATUS tgt_dfs_set_phyerr_filter_offload(struct wlan_objmgr_pdev *pdev);
+#else
+static inline QDF_STATUS tgt_dfs_set_phyerr_filter_offload
+	(struct wlan_objmgr_pdev *pdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
 #endif
 
 #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)

+ 6 - 0
umac/dfs/dispatcher/inc/wlan_dfs_ucfg_api.h

@@ -251,6 +251,12 @@ QDF_STATUS ucfg_dfs_get_precac_enable(struct wlan_objmgr_pdev *pdev, int *buff);
  */
 QDF_STATUS ucfg_dfs_update_config(struct wlan_objmgr_psoc *psoc,
 		struct dfs_user_config *req);
+#else
+static inline QDF_STATUS ucfg_dfs_update_config(struct wlan_objmgr_psoc *psoc,
+		struct dfs_user_config *req)
+{
+	return QDF_STATUS_SUCCESS;
+}
 #endif
 
 /**

+ 32 - 5
umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h

@@ -331,8 +331,13 @@ QDF_STATUS utils_dfs_get_random_channel(struct wlan_objmgr_pdev *pdev,
  *
  * Return: None
  */
+#ifdef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
 void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev);
-
+#else
+static inline void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
+{
+}
+#endif
 /**
  * utils_dfs_save_nol() - save nol list to platform driver.
  * @pdev: pdev handler.
@@ -351,7 +356,13 @@ void utils_dfs_save_nol(struct wlan_objmgr_pdev *pdev);
  *
  * Return: None
  */
+#ifdef DFS_COMPONENT_ENABLE
 void utils_dfs_print_nol_channels(struct wlan_objmgr_pdev *pdev);
+#else
+static inline void utils_dfs_print_nol_channels(struct wlan_objmgr_pdev *pdev)
+{
+}
+#endif
 
 /**
  * utils_dfs_clear_nol_channels() - clear nol list.
@@ -371,8 +382,10 @@ void utils_dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev);
  *
  * Return: True if channel dfs, else false.
  */
-bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan);
-
+static inline bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan)
+{
+	return wlan_reg_is_dfs_ch(pdev, chan);
+}
 /**
  * utils_dfs_reg_update_nol_ch() - set nol channel
  *
@@ -402,8 +415,14 @@ uint8_t utils_dfs_freq_to_chan(uint32_t freq);
  *
  * Return: frequency
  */
+#ifdef DFS_COMPONENT_ENABLE
 uint32_t utils_dfs_chan_to_freq(uint8_t chan);
-
+#else
+static inline uint32_t utils_dfs_chan_to_freq(uint8_t chan)
+{
+	return 0;
+}
+#endif
 /**
  * utils_dfs_update_cur_chan_flags() - Update DFS channel flag and flagext.
  * @pdev: Pointer to DFS pdev object.
@@ -434,8 +453,16 @@ QDF_STATUS utils_dfs_mark_leaking_ch(struct wlan_objmgr_pdev *pdev,
 	enum phy_ch_width ch_width,
 	uint8_t temp_ch_lst_sz,
 	uint8_t *temp_ch_lst);
+#else
+static inline QDF_STATUS utils_dfs_mark_leaking_ch
+	(struct wlan_objmgr_pdev *pdev,
+	enum phy_ch_width ch_width,
+	uint8_t temp_ch_lst_sz,
+	uint8_t *temp_ch_lst)
+{
+	return QDF_STATUS_SUCCESS;
+}
 #endif
-
 /**
  * utils_get_dfsdomain() - Get DFS domain.
  * @pdev: Pointer to PDEV structure.

+ 1 - 11
umac/dfs/dispatcher/src/wlan_dfs_utils_api.c

@@ -670,11 +670,7 @@ random_chan_error:
 }
 qdf_export_symbol(utils_dfs_get_random_channel);
 
-#ifndef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
-void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
-{
-}
-#else
+#ifdef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
 void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
 {
 	struct wlan_dfs *dfs;
@@ -797,12 +793,6 @@ void utils_dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev)
 }
 qdf_export_symbol(utils_dfs_clear_nol_channels);
 
-bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan)
-{
-	return wlan_reg_is_dfs_ch(pdev, chan);
-}
-qdf_export_symbol(utils_is_dfs_ch);
-
 void utils_dfs_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
 		uint8_t *ch_list,
 		uint8_t num_ch,

+ 1 - 2
wmi/inc/wmi_unified_priv.h

@@ -1474,7 +1474,6 @@ QDF_STATUS (*extract_rcpi_response_event)(wmi_unified_t wmi_handle,
 					  void *evt_buf,
 					  struct rcpi_res *res);
 
-#ifdef DFS_COMPONENT_ENABLE
 QDF_STATUS (*extract_dfs_cac_complete_event)(wmi_unified_t wmi_handle,
 		uint8_t *evt_buf,
 		uint32_t *vdev_id,
@@ -1487,7 +1486,7 @@ QDF_STATUS (*extract_wlan_radar_event_info)(wmi_unified_t wmi_handle,
 		uint8_t *evt_buf,
 		struct radar_event_info *wlan_radar_event,
 		uint32_t len);
-#endif
+
 QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
 				struct set_country *param);