Parcourir la source

qcacmn: Refine DFS object allocation for MCL

Currently DFS object can only be allocated if radio supports 5G.

Rome supports 5G and saves its wireless_mode in hal_reg_cap of
psoc->service_param because Rome FW does not support wmi event
wmi_service_ready_ext_event_id.

Check wireless_modes based on different DFS_SUPPORT.

Change-Id: I0120dde4fcf47bd71f6da512fae64dd62f5f46c8
CRs-Fixed: 2179925
bings il y a 7 ans
Parent
commit
b004c6d432
1 fichiers modifiés avec 25 ajouts et 6 suppressions
  1. 25 6
      target_if/dfs/src/target_if_dfs.c

+ 25 - 6
target_if/dfs/src/target_if_dfs.c

@@ -361,21 +361,18 @@ static QDF_STATUS target_process_bang_radar_cmd(
 	return status;
 }
 
+#ifdef QCA_MCL_DFS_SUPPORT
 static QDF_STATUS target_if_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev,
 		bool *is_5ghz)
 {
 	struct wlan_objmgr_psoc *psoc;
-	uint8_t pdev_id;
 
 	psoc = wlan_pdev_get_psoc(pdev);
 	if (!psoc) {
 		target_if_err("dfs: null psoc");
 		return QDF_STATUS_E_FAILURE;
 	}
-
-	pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
-
-	if (psoc->ext_service_param.reg_cap[pdev_id].wireless_modes &
+	if (psoc->service_param.hal_reg_cap.wireless_modes &
 			WMI_HOST_REGDMN_MODE_11A)
 		*is_5ghz = true;
 	else
@@ -384,7 +381,6 @@ static QDF_STATUS target_if_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev,
 	return QDF_STATUS_SUCCESS;
 }
 
-#ifdef QCA_MCL_DFS_SUPPORT
 /**
  * target_if_dfs_set_phyerr_filter_offload() - config phyerr filter offload.
  * @pdev: Pointer to DFS pdev object.
@@ -420,6 +416,29 @@ static QDF_STATUS target_if_dfs_set_phyerr_filter_offload(
 	return QDF_STATUS_SUCCESS;
 }
 #else
+static QDF_STATUS target_if_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev,
+		bool *is_5ghz)
+{
+	struct wlan_objmgr_psoc *psoc;
+	uint8_t pdev_id;
+
+	psoc = wlan_pdev_get_psoc(pdev);
+	if (!psoc) {
+		target_if_err("dfs: null psoc");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
+
+	if (psoc->ext_service_param.reg_cap[pdev_id].wireless_modes &
+			WMI_HOST_REGDMN_MODE_11A)
+		*is_5ghz = true;
+	else
+		*is_5ghz = false;
+
+	return QDF_STATUS_SUCCESS;
+}
+
 static QDF_STATUS target_if_dfs_set_phyerr_filter_offload(
 					struct wlan_objmgr_pdev *pdev,
 					bool dfs_phyerr_filter_offload)