Browse Source

qcacld-3.0: Use new APIs to get and set DFS Non-Occupancy-List(NOL)

Current driver is using pld_wlan_set_dfs_nol() and pld_wlan_get_dfs_nol()
directly through eSAP_DFS_NOL_SET and eSAP_DFS_NOL_GET case statements
respectively within HDD module. These methods are obsoleted as per
new driver design.

Use DFS component's utils_dfs_init_nol() and utils_dfs_save_nol() APIs
instead to get and set DFS NOL respectively.

Change-Id: I63e8adac3f99c2052c26e6b01d19071f098e0a4f
CRs-Fixed: 2172024
bings 7 years ago
parent
commit
02297abea9

+ 0 - 34
core/hdd/src/wlan_hdd_hostapd.c

@@ -2532,40 +2532,6 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent,
 	case eSAP_ACS_SCAN_SUCCESS_EVENT:
 		return hdd_handle_acs_scan_event(pSapEvent, adapter);
 
-	case eSAP_DFS_NOL_GET:
-		hdd_debug("Received eSAP_DFS_NOL_GET event");
-
-		/* get the dfs nol from PLD */
-		ret = pld_wlan_get_dfs_nol(hdd_ctx->parent_dev,
-					   pSapEvent->sapevt.sapDfsNolInfo.
-					   pDfsList,
-					   pSapEvent->sapevt.sapDfsNolInfo.
-					   sDfsList);
-
-		if (ret > 0) {
-			hdd_debug("Get %d bytes of dfs nol from PLD", ret);
-			return QDF_STATUS_SUCCESS;
-		}
-		hdd_debug("No dfs nol entry in PLD, ret: %d", ret);
-		return QDF_STATUS_E_FAULT;
-
-	case eSAP_DFS_NOL_SET:
-		hdd_debug("Received eSAP_DFS_NOL_SET event");
-
-		/* set the dfs nol to PLD */
-		ret = pld_wlan_set_dfs_nol(hdd_ctx->parent_dev,
-					   pSapEvent->sapevt.sapDfsNolInfo.
-					   pDfsList,
-					   pSapEvent->sapevt.sapDfsNolInfo.
-					   sDfsList);
-
-		if (ret) {
-			hdd_debug("Failed to set dfs nol - ret: %d", ret);
-		} else {
-			hdd_debug(" Set %d bytes dfs nol to PLD",
-				 pSapEvent->sapevt.sapDfsNolInfo.sDfsList);
-		}
-		return QDF_STATUS_SUCCESS;
 	case eSAP_ACS_CHANNEL_SELECTED:
 		hdd_debug("ACS Completed for wlan%d",
 					adapter->dev->ifindex);

+ 0 - 4
core/sap/inc/sap_api.h

@@ -167,10 +167,6 @@ typedef enum {
 	eSAP_DFS_PRE_CAC_END,
 	eSAP_DFS_RADAR_DETECT,
 	eSAP_DFS_RADAR_DETECT_DURING_PRE_CAC,
-	/* Event sent when user need to get the DFS NOL from CNSS */
-	eSAP_DFS_NOL_GET,
-	/* Event sent when user need to set the DFS NOL to CNSS */
-	eSAP_DFS_NOL_SET,
 	/* No ch available after DFS RADAR detect */
 	eSAP_DFS_NO_AVAILABLE_CHANNEL,
 	eSAP_STOP_BSS_DUE_TO_NO_CHNL,

+ 0 - 6
core/sap/src/sap_api_link_cntl.c

@@ -861,9 +861,6 @@ static void wlansap_update_vendor_acs_chan(tpAniSirGlobal mac_ctx,
 		mac_ctx->sap.SapDfsInfo.cac_state =
 			eSAP_DFS_DO_NOT_SKIP_CAC;
 		sap_cac_reset_notify(hal);
-		/* set DFS-NOL back to keep it update-to-date in CNSS */
-		sap_signal_hdd_event(sap_ctx, NULL, eSAP_DFS_NOL_SET,
-				     (void *) eSAP_STATUS_SUCCESS);
 		return;
 	}
 	/* App failed to provide new channel, try random channel algo */
@@ -1053,9 +1050,6 @@ wlansap_roam_callback(void *ctx, struct csr_roam_info *csr_roam_info,
 			mac_ctx->sap.SapDfsInfo.cac_state =
 				eSAP_DFS_DO_NOT_SKIP_CAC;
 			sap_cac_reset_notify(hal);
-			/* set DFS-NOL back to keep it update-to-date in CNSS */
-			sap_signal_hdd_event(sap_ctx, NULL, eSAP_DFS_NOL_SET,
-					     (void *) eSAP_STATUS_SUCCESS);
 			break;
 		}
 		/* Issue stopbss for each sapctx */

+ 1 - 72
core/sap/src/sap_fsm.c

@@ -859,8 +859,6 @@ static uint8_t *sap_hdd_event_to_string(eSapHddEvent event)
 	CASE_RETURN_STRING(eSAP_DFS_PRE_CAC_END);
 	CASE_RETURN_STRING(eSAP_DFS_RADAR_DETECT);
 	CASE_RETURN_STRING(eSAP_DFS_RADAR_DETECT_DURING_PRE_CAC);
-	CASE_RETURN_STRING(eSAP_DFS_NOL_GET);
-	CASE_RETURN_STRING(eSAP_DFS_NOL_SET);
 	CASE_RETURN_STRING(eSAP_DFS_NO_AVAILABLE_CHANNEL);
 #ifdef FEATURE_WLAN_AP_AP_ACS_OPTIMIZE
 	CASE_RETURN_STRING(eSAP_ACS_SCAN_SUCCESS_EVENT);
@@ -1593,7 +1591,6 @@ sap_dfs_is_channel_in_nol_list(struct sap_context *sap_context,
 	uint8_t channels[MAX_BONDED_CHANNELS];
 	uint8_t num_channels;
 	struct wlan_objmgr_pdev *pdev = NULL;
-	tSapDfsInfo *dfs_info;
 	enum channel_state ch_state;
 
 	if (!h_hal) {
@@ -1604,16 +1601,6 @@ sap_dfs_is_channel_in_nol_list(struct sap_context *sap_context,
 		mac_ctx = PMAC_STRUCT(h_hal);
 	}
 
-	dfs_info = &mac_ctx->sap.SapDfsInfo;
-	if ((dfs_info->numCurrentRegDomainDfsChannels == 0) ||
-	    (dfs_info->numCurrentRegDomainDfsChannels >
-	     NUM_5GHZ_CHANNELS)) {
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_LOW,
-			  FL("invalid dfs channel count %d"),
-			  dfs_info->numCurrentRegDomainDfsChannels);
-		return false;
-	}
-
 	/* get the bonded channels */
 	if (channel_number == sap_context->channel && chan_bondState >=
 						PHY_CHANNEL_BONDING_STATE_MAX)
@@ -2650,22 +2637,6 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
 			sap_ctx->csr_roamProfile.ch_params.center_freq_seg1;
 		break;
 
-	case eSAP_DFS_NOL_GET:
-		sap_ap_event.sapHddEventCode = eSAP_DFS_NOL_GET;
-		sap_ap_event.sapevt.sapDfsNolInfo.sDfsList =
-			NUM_5GHZ_CHANNELS * sizeof(tSapDfsNolInfo);
-		sap_ap_event.sapevt.sapDfsNolInfo.pDfsList = (void *)
-			(&mac_ctx->sap.SapDfsInfo.sapDfsChannelNolList[0]);
-		break;
-
-	case eSAP_DFS_NOL_SET:
-		sap_ap_event.sapHddEventCode = eSAP_DFS_NOL_SET;
-		sap_ap_event.sapevt.sapDfsNolInfo.sDfsList =
-			mac_ctx->sap.SapDfsInfo.numCurrentRegDomainDfsChannels *
-			sizeof(tSapDfsNolInfo);
-		sap_ap_event.sapevt.sapDfsNolInfo.pDfsList = (void *)
-			(&mac_ctx->sap.SapDfsInfo.sapDfsChannelNolList[0]);
-		break;
 	case eSAP_ECSA_CHANGE_CHAN_IND:
 
 		if (!csr_roaminfo) {
@@ -4475,9 +4446,6 @@ static int sap_start_dfs_cac_timer(struct sap_context *sap_ctx)
  */
 QDF_STATUS sap_init_dfs_channel_nol_list(struct sap_context *sapContext)
 {
-	uint8_t count = 0;
-	int i;
-	bool bFound = false;
 	tHalHandle hHal;
 	tpAniSirGlobal pMac;
 
@@ -4495,46 +4463,7 @@ QDF_STATUS sap_init_dfs_channel_nol_list(struct sap_context *sapContext)
 	}
 	pMac = PMAC_STRUCT(hHal);
 
-	/* to indicate hdd to get cnss dfs nol */
-	if (QDF_STATUS_SUCCESS == sap_signal_hdd_event(sapContext, NULL,
-						       eSAP_DFS_NOL_GET,
-						       (void *)
-						       eSAP_STATUS_SUCCESS)) {
-		bFound = true;
-	}
-
-	for (i = CHAN_ENUM_36; i <= CHAN_ENUM_165; i++) {
-		if (wlan_reg_get_channel_state(pMac->pdev, i) ==
-				CHANNEL_STATE_DFS) {
-			/* if dfs nol is not found, initialize it */
-			if (!bFound) {
-				pMac->sap.SapDfsInfo.sapDfsChannelNolList[count]
-				.dfs_channel_number =
-					WLAN_REG_CH_NUM(i);
-
-				QDF_TRACE(QDF_MODULE_ID_SAP,
-					  QDF_TRACE_LEVEL_INFO_LOW,
-					  "%s: CHANNEL = %d", __func__,
-					  pMac->sap.SapDfsInfo.
-					  sapDfsChannelNolList[count].
-					  dfs_channel_number);
-
-				pMac->sap.SapDfsInfo.sapDfsChannelNolList[count]
-				.radar_status_flag =
-					eSAP_DFS_CHANNEL_USABLE;
-				pMac->sap.SapDfsInfo.sapDfsChannelNolList[count]
-				.radar_found_timestamp = 0;
-			}
-			count++;
-		}
-	}
-
-	pMac->sap.SapDfsInfo.numCurrentRegDomainDfsChannels = count;
-
-	QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_LOW,
-		  "%s[%d] NUMBER OF DFS CHANNELS = %d",
-		  __func__, __LINE__,
-		  pMac->sap.SapDfsInfo.numCurrentRegDomainDfsChannels);
+	utils_dfs_init_nol(pMac->pdev);
 
 	return QDF_STATUS_SUCCESS;
 }

+ 0 - 9
core/sap/src/sap_module.c

@@ -2364,11 +2364,6 @@ QDF_STATUS wlansap_set_dfs_nol(struct sap_context *sap_ctx,
 	}
 
 	mac = PMAC_STRUCT(hal);
-	if (!mac->sap.SapDfsInfo.numCurrentRegDomainDfsChannels) {
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO,
-			  "%s: DFS NOL is empty", __func__);
-		return QDF_STATUS_SUCCESS;
-	}
 
 	if (conf == eSAP_DFS_NOL_CLEAR) {
 		struct wlan_objmgr_pdev *pdev;
@@ -2392,10 +2387,6 @@ QDF_STATUS wlansap_set_dfs_nol(struct sap_context *sap_ctx,
 			  "%s: unsupport type %d", __func__, conf);
 	}
 
-	/* set DFS-NOL back to keep it update-to-date in CNSS */
-	sap_signal_hdd_event(sap_ctx, NULL, eSAP_DFS_NOL_SET,
-			  (void *) eSAP_STATUS_SUCCESS);
-
 	return QDF_STATUS_SUCCESS;
 }