Przeglądaj źródła

Merge "qcacmn: Update the dfs api"

Linux Build Service Account 4 lat temu
rodzic
commit
a792499a09

+ 3 - 4
target_if/mlme/psoc/inc/target_if_psoc_wake_lock.h

@@ -106,13 +106,12 @@ QDF_STATUS target_if_wake_lock_timeout_release(struct wlan_objmgr_psoc *psoc,
  * target_if_vdev_start_link_handler() - check for SAP mode and DFS freq
 						to handle link up/down
  * @vdev: pointer to vdev
- * @cfreq1 : center freq1
- * @cfreq2 : center freq2
+ * @is_dfs : is dfs freq
  *
  * Return: None
  */
 void target_if_vdev_start_link_handler(struct wlan_objmgr_vdev *vdev,
-				       uint32_t cfreq1, uint32_t cfreq2);
+				       uint32_t is_dfs);
 
 /**
  * target_if_vdev_stop_link_handler() - check for SAP mode to handle link
@@ -147,7 +146,7 @@ static inline QDF_STATUS target_if_wake_lock_timeout_release(
 
 static inline void
 target_if_vdev_start_link_handler(struct wlan_objmgr_vdev *vdev,
-				  uint32_t cfreq1, uint32_t cfreq2)
+				  uint32_t is_dfs)
 {
 }
 

+ 10 - 5
target_if/mlme/psoc/src/target_if_psoc_wake_lock.c

@@ -192,15 +192,21 @@ target_if_vote_for_link_up(struct wlan_objmgr_psoc *psoc,
 }
 
 void target_if_vdev_start_link_handler(struct wlan_objmgr_vdev *vdev,
-				       uint32_t cfreq1, uint32_t cfreq2)
+				       uint32_t is_dfs)
 {
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_objmgr_pdev *pdev;
 	struct psoc_mlme_wakelock *psoc_wakelock;
 	struct wlan_lmac_if_mlme_rx_ops *rx_ops;
+	struct wlan_channel *des_channel;
+	uint32_t ch_freq;
+	enum phy_ch_width ch_width;
 
 	psoc = wlan_vdev_get_psoc(vdev);
 	pdev = wlan_vdev_get_pdev(vdev);
+	des_channel = wlan_vdev_mlme_get_des_chan(vdev);
+	ch_freq = des_channel->ch_freq;
+	ch_width = des_channel->ch_width;
 
 	if (!pdev) {
 		mlme_err("pdev is NULL");
@@ -216,10 +222,9 @@ void target_if_vdev_start_link_handler(struct wlan_objmgr_vdev *vdev,
 
 	psoc_wakelock = rx_ops->psoc_get_wakelock_info(psoc);
 	if (wlan_vdev_mlme_get_opmode(vdev) == QDF_SAP_MODE) {
-		if ((wlan_reg_chan_has_dfs_attribute_for_freq(pdev,
-							      cfreq1)) ||
-		    (wlan_reg_chan_has_dfs_attribute_for_freq(pdev,
-							      cfreq2)))
+		if (is_dfs ||
+		    (wlan_reg_get_5g_bonded_channel_state_for_freq(pdev,
+			ch_freq, ch_width) == CHANNEL_STATE_DFS))
 			target_if_vote_for_link_up(psoc, psoc_wakelock);
 		else
 			target_if_vote_for_link_down(psoc, psoc_wakelock);

+ 1 - 2
target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c

@@ -481,8 +481,7 @@ static QDF_STATUS target_if_vdev_mgr_start_send(
 							  START_RESPONSE_BIT);
 	} else {
 		target_if_vdev_start_link_handler(vdev,
-						  param->channel.cfreq1,
-						  param->channel.cfreq2);
+						  param->channel.dfs_set);
 	}
 	return status;
 }

+ 1 - 0
wmi/inc/wmi_unified_param.h

@@ -5220,6 +5220,7 @@ typedef enum {
 	wmi_service_5dot9_ghz_support,
 	wmi_service_cfr_ta_ra_as_fp_support,
 	wmi_service_cfr_capture_count_support,
+	wmi_service_ll_stats_per_chan_rx_tx_time,
 	wmi_services_max,
 } wmi_conv_service_ids;
 #define WMI_SERVICE_UNAVAILABLE 0xFFFF

+ 2 - 0
wmi/src/wmi_unified_tlv.c

@@ -14754,6 +14754,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
 			WMI_SERVICE_CFR_TA_RA_AS_FP_SUPPORT;
 	wmi_service[wmi_service_cfr_capture_count_support] =
 			WMI_SERVICE_CFR_CAPTURE_COUNT_SUPPORT;
+	wmi_service[wmi_service_ll_stats_per_chan_rx_tx_time] =
+			WMI_SERVICE_LL_STATS_PER_CHAN_RX_TX_TIME_SUPPORT;
 }
 
 /**