Browse Source

qcacld-3.0: Update secondary channel params for SAP after SSR

In case of recovery of SAP after SSR, driver is not updating
params for secondary channel as per primary channel (Operation
channel) for SAP.

Update parameters for secondary channel as per primary channel
before SAP start.

Change-Id: I2da2eff62881fe4e65208be778618d0b9c05bf88
CRs-Fixed: 2292645
Abhinav Kumar 6 years ago
parent
commit
6f6944851b
2 changed files with 11 additions and 2 deletions
  1. 8 2
      core/hdd/src/wlan_hdd_hostapd.c
  2. 3 0
      core/hdd/src/wlan_hdd_main.c

+ 8 - 2
core/hdd/src/wlan_hdd_hostapd.c

@@ -1594,6 +1594,7 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent,
 	tSap_StationDisassocCompleteEvent *disassoc_comp;
 	struct hdd_station_info *stainfo;
 	mac_handle_t mac_handle;
+	tsap_config_t *sap_config;
 
 	dev = context;
 	if (!dev) {
@@ -1637,6 +1638,7 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent,
 	dfs_info.channel = ap_ctx->operating_channel;
 	sme_get_country_code(mac_handle, dfs_info.country_code, &cc_len);
 	staId = pSapEvent->sapevt.sapStartBssCompleteEvent.staId;
+	sap_config = &adapter->session.ap.sap_config;
 
 	switch (sapEvent) {
 	case eSAP_START_BSS_EVENT:
@@ -1650,13 +1652,17 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent,
 		adapter->session_id =
 			pSapEvent->sapevt.sapStartBssCompleteEvent.sessionId;
 
-		adapter->session.ap.sap_config.channel =
+		sap_config->channel =
 			pSapEvent->sapevt.sapStartBssCompleteEvent.
 			operatingChannel;
 
-		adapter->session.ap.sap_config.ch_params.ch_width =
+		sap_config->ch_params.ch_width =
 			pSapEvent->sapevt.sapStartBssCompleteEvent.ch_width;
 
+		wlan_reg_set_channel_params(hdd_ctx->hdd_pdev,
+					    sap_config->channel, 0,
+					    &sap_config->ch_params);
+
 		hostapd_state->qdf_status =
 			pSapEvent->sapevt.sapStartBssCompleteEvent.status;
 

+ 3 - 0
core/hdd/src/wlan_hdd_main.c

@@ -12232,6 +12232,9 @@ void wlan_hdd_start_sap(struct hdd_adapter *ap_adapter, bool reinit)
 		hdd_err("SAP Not able to set AP IEs");
 		goto end;
 	}
+	wlan_reg_set_channel_params(hdd_ctx->hdd_pdev,
+				    hdd_ap_ctx->sap_config.channel, 0,
+				    &hdd_ap_ctx->sap_config.ch_params);
 
 	qdf_event_reset(&hostapd_state->qdf_event);
 	if (wlansap_start_bss(hdd_ap_ctx->sap_context, hdd_hostapd_sap_event_cb,