From 5dc5ea538c8b07fc2c46b32cbc6c531c2616a326 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Mon, 27 Jul 2020 21:39:59 +0530 Subject: [PATCH] qcacld-3.0: STA falis to notify Disassoc Imminent to UI In case of connection with Hotspot 2.0 AP, Disassocition Imminent frame needs to be forwarded to userspace, so that user can take necessary action, like issue pop-up notification etc. Currently, in case of connection with Hotspot 2.0 AP, FW/HOST does not forward disassocition imminent frame to userspace. This causes user-space fail to issue necessary notification(s). Disable BTM offload in firmware if connect req has HS2.0 IE, so that FW/HOST forward Disassocition Imminent frame to to userspace. Change-Id: Ica57fb7399ef21069d599a1046a7da6fbd42bb43 CRs-Fixed: 2733036 --- core/hdd/src/wlan_hdd_cfg80211.c | 1 + core/sme/inc/csr_api.h | 1 + core/sme/src/csr/csr_api_roam.c | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 1e07e2e47e2f..f1d379f90811 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -20839,6 +20839,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter, assoc_add_ie->addIEdata; roam_profile->nAddIEAssocLength = assoc_add_ie->length; + roam_profile->is_hs_20_ap = true; } /* Appending OSEN Information Element in Assiciation Request */ else if ((0 == memcmp(&genie[0], OSEN_OUI_TYPE, diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 702339e5f222..133896da4386 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -726,6 +726,7 @@ struct csr_roam_profile { struct wlan_fils_connection_info *fils_con_info; #endif bool force_rsne_override; + bool is_hs_20_ap; }; #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index b187a7aa42e0..7a3b00c5916e 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -7665,6 +7665,7 @@ QDF_STATUS csr_roam_copy_profile(struct mac_context *mac, pDstProfile->chan_switch_hostapd_rate_enabled = pSrcProfile->chan_switch_hostapd_rate_enabled; pDstProfile->force_rsne_override = pSrcProfile->force_rsne_override; + pDstProfile->is_hs_20_ap = pSrcProfile->is_hs_20_ap; end: if (!QDF_IS_STATUS_SUCCESS(status)) { csr_release_profile(mac, pDstProfile); @@ -17045,7 +17046,9 @@ static void csr_update_btm_offload_config(struct mac_context *mac_ctx, return; /* For RSO Stop Disable BTM offload to firmware */ - if (command == ROAM_SCAN_OFFLOAD_STOP) { + if (command == ROAM_SCAN_OFFLOAD_STOP || + session->pCurRoamProfile->is_hs_20_ap) { + sme_debug("RSO cmd: %d", command); *btm_offload_config = 0; return; }