Browse Source

qcacld-3.0: Change channel to Frequency for acs_cfg fields

Change vht_seg0_center_ch and vht_seg1_center_ch in acs_cfg
struct to vht_seg0_center_ch_freq, vht_seg1_center_ch_freq
respectively.

Change-Id: Ie3378376e6f31c239157c8eaaf3ceb22d2e35073
CRs-Fixed: 2564065
Liangwei Dong 5 years ago
parent
commit
0e18c47d0c

+ 28 - 12
core/hdd/src/wlan_hdd_cfg80211.c

@@ -2957,9 +2957,17 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
 					wlan_reg_freq_to_chan(hdd_ctx->pdev,
 					sap_config->acs_cfg.ht_sec_ch_freq);
 			sap_config->ch_params.center_freq_seg0 =
-					sap_config->acs_cfg.vht_seg0_center_ch;
+			wlan_reg_freq_to_chan(
+				hdd_ctx->pdev,
+				sap_config->acs_cfg.vht_seg0_center_ch_freq);
 			sap_config->ch_params.center_freq_seg1 =
-					sap_config->acs_cfg.vht_seg1_center_ch;
+			wlan_reg_freq_to_chan(
+				hdd_ctx->pdev,
+				sap_config->acs_cfg.vht_seg1_center_ch_freq);
+			sap_config->ch_params.mhz_freq_seg0 =
+				sap_config->acs_cfg.vht_seg0_center_ch_freq;
+			sap_config->ch_params.mhz_freq_seg1 =
+				sap_config->acs_cfg.vht_seg1_center_ch_freq;
 			/*notify hostapd about channel override */
 			wlan_hdd_cfg80211_acs_ch_select_evt(adapter);
 			ret = 0;
@@ -3157,6 +3165,7 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
 	uint16_t ch_width;
 	uint8_t pri_channel;
 	uint8_t ht_sec_channel;
+	uint8_t vht_seg0_center_ch, vht_seg1_center_ch;
 
 	vendor_event = cfg80211_vendor_event_alloc(hdd_ctx->wiphy,
 			&(adapter->wdev),
@@ -3192,19 +3201,23 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
 		kfree_skb(vendor_event);
 		return;
 	}
-
+	vht_seg0_center_ch = wlan_reg_freq_to_chan(
+				hdd_ctx->pdev,
+				sap_cfg->acs_cfg.vht_seg0_center_ch_freq);
 	ret_val = nla_put_u8(vendor_event,
 			QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL,
-			sap_cfg->acs_cfg.vht_seg0_center_ch);
+			vht_seg0_center_ch);
 	if (ret_val) {
 		hdd_err("QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL put fail");
 		kfree_skb(vendor_event);
 		return;
 	}
-
+	vht_seg1_center_ch = wlan_reg_freq_to_chan(
+				hdd_ctx->pdev,
+				sap_cfg->acs_cfg.vht_seg1_center_ch_freq);
 	ret_val = nla_put_u8(vendor_event,
 			QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL,
-			sap_cfg->acs_cfg.vht_seg1_center_ch);
+			vht_seg1_center_ch);
 	if (ret_val) {
 		hdd_err("QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL put fail");
 		kfree_skb(vendor_event);
@@ -3246,8 +3259,8 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
 	hdd_debug("ACS result for %s: PRI_CH_FREQ: %d SEC_CH_FREQ: %d VHT_SEG0: %d VHT_SEG1: %d ACS_BW: %d",
 		adapter->dev->name, sap_cfg->acs_cfg.pri_ch_freq,
 		sap_cfg->acs_cfg.ht_sec_ch_freq,
-		sap_cfg->acs_cfg.vht_seg0_center_ch,
-		sap_cfg->acs_cfg.vht_seg1_center_ch, ch_width);
+		sap_cfg->acs_cfg.vht_seg0_center_ch_freq,
+		sap_cfg->acs_cfg.vht_seg1_center_ch_freq, ch_width);
 
 	cfg80211_vendor_event(vendor_event, GFP_KERNEL);
 	/* ***Note*** As already mentioned Completion variable usage is not
@@ -10964,10 +10977,13 @@ static void hdd_update_acs_sap_config(struct hdd_context *hdd_ctx,
 	sap_config->acs_cfg.pri_ch_freq =
 		wlan_reg_chan_to_freq(hdd_ctx->pdev, channel_list->pri_ch);
 	sap_config->acs_cfg.ch_width = channel_list->chan_width;
-	sap_config->acs_cfg.vht_seg0_center_ch =
-				channel_list->vht_seg0_center_ch;
-	sap_config->acs_cfg.vht_seg1_center_ch =
-				channel_list->vht_seg1_center_ch;
+	sap_config->acs_cfg.vht_seg0_center_ch_freq =
+			wlan_reg_chan_to_freq(
+			hdd_ctx->pdev, channel_list->vht_seg0_center_ch);
+	sap_config->acs_cfg.vht_seg1_center_ch_freq =
+			wlan_reg_chan_to_freq(
+			hdd_ctx->pdev, channel_list->vht_seg1_center_ch);
+
 	sap_config->acs_cfg.ht_sec_ch_freq =
 		wlan_reg_chan_to_freq(hdd_ctx->pdev, channel_list->ht_sec_ch);
 }

+ 25 - 17
core/hdd/src/wlan_hdd_hostapd.c

@@ -2527,24 +2527,28 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
 			sap_event->sapevt.sap_ch_selected.pri_ch_freq;
 		ap_ctx->sap_config.acs_cfg.ht_sec_ch_freq =
 			sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq;
-		ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch =
-			sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
-		ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch =
-			sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
+		ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch_freq =
+		sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq;
+		ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch_freq =
+		sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq;
 		ap_ctx->sap_config.acs_cfg.ch_width =
 			sap_event->sapevt.sap_ch_selected.ch_width;
 
 		sap_ch_param.ch_width =
 			sap_event->sapevt.sap_ch_selected.ch_width;
 		sap_ch_param.center_freq_seg0 =
-			sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
+		wlan_reg_freq_to_chan(
+			hdd_ctx->pdev,
+		sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq);
+
 		sap_ch_param.center_freq_seg1 =
-			sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
-		wlan_reg_set_channel_params(hdd_ctx->pdev,
-			wlan_reg_freq_to_chan(hdd_ctx->pdev,
-			sap_event->sapevt.sap_ch_selected.pri_ch_freq),
-			wlan_reg_freq_to_chan(hdd_ctx->pdev,
-			sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq),
+		wlan_reg_freq_to_chan(
+			hdd_ctx->pdev,
+		sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq);
+		wlan_reg_set_channel_params_for_freq(
+			hdd_ctx->pdev,
+			sap_event->sapevt.sap_ch_selected.pri_ch_freq,
+			sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq,
 			&sap_ch_param);
 
 		cdp_hl_fc_set_td_limit(cds_get_context(QDF_MODULE_ID_SOC),
@@ -2577,9 +2581,13 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
 		chan_change.chan_params.sec_ch_offset =
 			sap_ch_param.sec_ch_offset;
 		chan_change.chan_params.center_freq_seg0 =
-			sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
+		wlan_reg_freq_to_chan(
+			hdd_ctx->pdev,
+		sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq);
 		chan_change.chan_params.center_freq_seg1 =
-			sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
+		wlan_reg_freq_to_chan(
+			hdd_ctx->pdev,
+		sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq);
 
 		return hdd_chan_change_notify(adapter, dev,
 					      chan_change, legacy_phymode);
@@ -2595,10 +2603,10 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
 			sap_event->sapevt.sap_ch_selected.pri_ch_freq;
 		ap_ctx->sap_config.acs_cfg.ht_sec_ch_freq =
 			sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq;
-		ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch =
-			sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
-		ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch =
-			sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
+		ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch_freq =
+		sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq;
+		ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch_freq =
+		sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq;
 		ap_ctx->sap_config.acs_cfg.ch_width =
 			sap_event->sapevt.sap_ch_selected.ch_width;
 		wlan_hdd_cfg80211_acs_ch_select_evt(adapter);

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

@@ -350,8 +350,8 @@ typedef struct sap_MaxAssocExceededEvent_s {
 struct sap_ch_selected_s {
 	uint32_t pri_ch_freq;
 	uint32_t ht_sec_ch_freq;
-	uint16_t vht_seg0_center_ch;
-	uint16_t vht_seg1_center_ch;
+	uint16_t vht_seg0_center_ch_freq;
+	uint16_t vht_seg1_center_ch_freq;
 	uint16_t ch_width;
 };
 
@@ -452,8 +452,8 @@ struct sap_acs_cfg {
 	/* ACS Algo Output */
 	uint32_t   pri_ch_freq;
 	uint32_t   ht_sec_ch_freq;
-	uint8_t    vht_seg0_center_ch;
-	uint8_t    vht_seg1_center_ch;
+	uint32_t    vht_seg0_center_ch_freq;
+	uint32_t    vht_seg1_center_ch_freq;
 	uint32_t   band;
 };
 

+ 11 - 12
core/sap/src/sap_api_link_cntl.c

@@ -97,27 +97,26 @@ void sap_config_acs_result(mac_handle_t mac_handle,
 			   struct sap_context *sap_ctx,
 			   uint32_t sec_ch_freq)
 {
-	uint32_t channel = wlan_freq_to_chan(sap_ctx->acs_cfg->pri_ch_freq);
 	struct ch_params ch_params = {0};
 	struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
-	uint8_t sec_ch;
 
-	sec_ch = wlan_freq_to_chan(sec_ch_freq);
 	ch_params.ch_width = sap_ctx->acs_cfg->ch_width;
-	wlan_reg_set_channel_params(mac_ctx->pdev, channel, sec_ch,
-			&ch_params);
+	wlan_reg_set_channel_params_for_freq(
+			mac_ctx->pdev, sap_ctx->acs_cfg->pri_ch_freq,
+			sec_ch_freq, &ch_params);
 	sap_ctx->acs_cfg->ch_width = ch_params.ch_width;
-	if (sap_ctx->acs_cfg->ch_width > CH_WIDTH_40MHZ)
-		sap_ctx->acs_cfg->vht_seg0_center_ch =
-						ch_params.center_freq_seg0;
+	if (sap_ctx->acs_cfg->ch_width > CH_WIDTH_40MHZ ||
+	    WLAN_REG_IS_6GHZ_CHAN_FREQ(sap_ctx->acs_cfg->pri_ch_freq))
+		sap_ctx->acs_cfg->vht_seg0_center_ch_freq =
+						ch_params.mhz_freq_seg0;
 	else
-		sap_ctx->acs_cfg->vht_seg0_center_ch = 0;
+		sap_ctx->acs_cfg->vht_seg0_center_ch_freq = 0;
 
 	if (sap_ctx->acs_cfg->ch_width == CH_WIDTH_80P80MHZ)
-		sap_ctx->acs_cfg->vht_seg1_center_ch =
-						ch_params.center_freq_seg1;
+		sap_ctx->acs_cfg->vht_seg1_center_ch_freq =
+						ch_params.mhz_freq_seg1;
 	else
-		sap_ctx->acs_cfg->vht_seg1_center_ch = 0;
+		sap_ctx->acs_cfg->vht_seg1_center_ch_freq = 0;
 
 	if (ch_params.sec_ch_offset == PHY_DOUBLE_CHANNEL_HIGH_PRIMARY)
 		sap_ctx->acs_cfg->ht_sec_ch_freq =

+ 8 - 8
core/sap/src/sap_fsm.c

@@ -1505,10 +1505,10 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
 			acs_selected->ht_sec_ch_freq =
 					sap_ctx->acs_cfg->ht_sec_ch_freq;
 			acs_selected->ch_width = sap_ctx->acs_cfg->ch_width;
-			acs_selected->vht_seg0_center_ch =
-				sap_ctx->acs_cfg->vht_seg0_center_ch;
-			acs_selected->vht_seg1_center_ch =
-				sap_ctx->acs_cfg->vht_seg1_center_ch;
+			acs_selected->vht_seg0_center_ch_freq =
+				sap_ctx->acs_cfg->vht_seg0_center_ch_freq;
+			acs_selected->vht_seg1_center_ch_freq =
+				sap_ctx->acs_cfg->vht_seg1_center_ch_freq;
 		} else if (eSAP_STATUS_FAILURE == (eSapStatus)context) {
 			acs_selected->pri_ch_freq = 0;
 		}
@@ -1750,10 +1750,10 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
 		acs_selected->ht_sec_ch_freq = sap_ctx->sec_ch_freq;
 		acs_selected->ch_width =
 			sap_ctx->csr_roamProfile.ch_params.ch_width;
-		acs_selected->vht_seg0_center_ch =
-			sap_ctx->csr_roamProfile.ch_params.center_freq_seg0;
-		acs_selected->vht_seg1_center_ch =
-			sap_ctx->csr_roamProfile.ch_params.center_freq_seg1;
+		acs_selected->vht_seg0_center_ch_freq =
+			sap_ctx->csr_roamProfile.ch_params.mhz_freq_seg0;
+		acs_selected->vht_seg1_center_ch_freq =
+			sap_ctx->csr_roamProfile.ch_params.mhz_freq_seg1;
 		break;
 
 	case eSAP_ECSA_CHANGE_CHAN_IND: