qcacld-3.0: Enable Host STA OBSS Scan
Enable supplicant STA OBSS Scan and disable OBSS SCAN WMI command sending if Firmware doesn't support OBSS scan offload. Change-Id: Id8fde7301d307c355b9f6cf82b85854a6d84ca79 CRs-Fixed: 2275065
This commit is contained in:
@@ -1923,6 +1923,7 @@ struct hdd_context {
|
|||||||
bool force_rsne_override;
|
bool force_rsne_override;
|
||||||
qdf_wake_lock_t monitor_mode_wakelock;
|
qdf_wake_lock_t monitor_mode_wakelock;
|
||||||
bool lte_coex_ant_share;
|
bool lte_coex_ant_share;
|
||||||
|
bool obss_scan_offload;
|
||||||
int sscan_pid;
|
int sscan_pid;
|
||||||
uint32_t track_arp_ip;
|
uint32_t track_arp_ip;
|
||||||
|
|
||||||
|
@@ -2092,6 +2092,7 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|||||||
hdd_nan_datapath_target_config(hdd_ctx, cfg);
|
hdd_nan_datapath_target_config(hdd_ctx, cfg);
|
||||||
hdd_ctx->dfs_cac_offload = cfg->dfs_cac_offload;
|
hdd_ctx->dfs_cac_offload = cfg->dfs_cac_offload;
|
||||||
hdd_ctx->lte_coex_ant_share = cfg->services.lte_coex_ant_share;
|
hdd_ctx->lte_coex_ant_share = cfg->services.lte_coex_ant_share;
|
||||||
|
hdd_ctx->obss_scan_offload = cfg->services.obss_scan_offload;
|
||||||
status = sme_cfg_set_int(mac_handle, WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
status = sme_cfg_set_int(mac_handle, WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
||||||
cfg->obss_detection_offloaded);
|
cfg->obss_detection_offloaded);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
@@ -7260,6 +7261,12 @@ static int hdd_wiphy_init(struct hdd_context *hdd_ctx)
|
|||||||
wiphy->wowlan.pattern_min_len = WOW_MIN_PATTERN_SIZE;
|
wiphy->wowlan.pattern_min_len = WOW_MIN_PATTERN_SIZE;
|
||||||
wiphy->wowlan.pattern_max_len = WOW_MAX_PATTERN_SIZE;
|
wiphy->wowlan.pattern_max_len = WOW_MAX_PATTERN_SIZE;
|
||||||
#endif
|
#endif
|
||||||
|
if (hdd_ctx->obss_scan_offload) {
|
||||||
|
hdd_debug("wmi_service_obss_scan supported");
|
||||||
|
} else if (hdd_ctx->config->nChannelBondingMode24GHz) {
|
||||||
|
hdd_debug("enable wpa_supp obss_scan");
|
||||||
|
wiphy->features |= NL80211_FEATURE_NEED_OBSS_SCAN;
|
||||||
|
}
|
||||||
|
|
||||||
/* registration of wiphy dev with cfg80211 */
|
/* registration of wiphy dev with cfg80211 */
|
||||||
ret_val = wlan_hdd_cfg80211_register(wiphy);
|
ret_val = wlan_hdd_cfg80211_register(wiphy);
|
||||||
|
@@ -928,6 +928,7 @@ typedef struct sAniSirGlobal {
|
|||||||
tDot11fIEhe_cap he_cap_2g;
|
tDot11fIEhe_cap he_cap_2g;
|
||||||
tDot11fIEhe_cap he_cap_5g;
|
tDot11fIEhe_cap he_cap_5g;
|
||||||
#endif
|
#endif
|
||||||
|
bool obss_scan_offload;
|
||||||
} tAniSirGlobal;
|
} tAniSirGlobal;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -13627,6 +13627,8 @@ void sme_update_tgt_services(tHalHandle hal, struct wma_tgt_services *cfg)
|
|||||||
{
|
{
|
||||||
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
|
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
|
||||||
|
|
||||||
|
mac_ctx->obss_scan_offload = cfg->obss_scan_offload;
|
||||||
|
sme_debug("obss_scan_offload: %d", mac_ctx->obss_scan_offload);
|
||||||
mac_ctx->lteCoexAntShare = cfg->lte_coex_ant_share;
|
mac_ctx->lteCoexAntShare = cfg->lte_coex_ant_share;
|
||||||
mac_ctx->beacon_offload = cfg->beacon_offload;
|
mac_ctx->beacon_offload = cfg->beacon_offload;
|
||||||
mac_ctx->pmf_offload = cfg->pmf_offload;
|
mac_ctx->pmf_offload = cfg->pmf_offload;
|
||||||
|
@@ -12564,7 +12564,8 @@ csr_roam_chk_lnk_set_ctx_rsp(tpAniSirGlobal mac_ctx, tSirSmeRsp *msg_ptr)
|
|||||||
* OBSS SCAN Indication will be sent to Firmware
|
* OBSS SCAN Indication will be sent to Firmware
|
||||||
* to start OBSS Scan
|
* to start OBSS Scan
|
||||||
*/
|
*/
|
||||||
if (CSR_IS_CHANNEL_24GHZ(
|
if (mac_ctx->obss_scan_offload &&
|
||||||
|
CSR_IS_CHANNEL_24GHZ(
|
||||||
session->connectedProfile.operationChannel)
|
session->connectedProfile.operationChannel)
|
||||||
&& (session->connectState ==
|
&& (session->connectState ==
|
||||||
eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED)
|
eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED)
|
||||||
|
@@ -69,6 +69,7 @@ struct wma_tgt_services {
|
|||||||
bool is_11k_offload_supported;
|
bool is_11k_offload_supported;
|
||||||
bool twt_requestor;
|
bool twt_requestor;
|
||||||
bool twt_responder;
|
bool twt_responder;
|
||||||
|
bool obss_scan_offload;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -4849,6 +4849,8 @@ static inline void wma_update_target_services(struct wmi_unified *wmi_handle,
|
|||||||
cfg->twt_requestor = true;
|
cfg->twt_requestor = true;
|
||||||
if (wmi_service_enabled(wmi_handle, wmi_service_twt_responder))
|
if (wmi_service_enabled(wmi_handle, wmi_service_twt_responder))
|
||||||
cfg->twt_responder = true;
|
cfg->twt_responder = true;
|
||||||
|
if (wmi_service_enabled(wmi_handle, wmi_service_obss_scan))
|
||||||
|
cfg->obss_scan_offload = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user