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:
Liangwei Dong
2018-07-03 03:30:23 -04:00
committed by nshrivas
부모 139485f809
커밋 0da1426e7b
7개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제

파일 보기

@@ -1923,6 +1923,7 @@ struct hdd_context {
bool force_rsne_override;
qdf_wake_lock_t monitor_mode_wakelock;
bool lte_coex_ant_share;
bool obss_scan_offload;
int sscan_pid;
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_ctx->dfs_cac_offload = cfg->dfs_cac_offload;
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,
cfg->obss_detection_offloaded);
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_max_len = WOW_MAX_PATTERN_SIZE;
#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 */
ret_val = wlan_hdd_cfg80211_register(wiphy);

파일 보기

@@ -928,6 +928,7 @@ typedef struct sAniSirGlobal {
tDot11fIEhe_cap he_cap_2g;
tDot11fIEhe_cap he_cap_5g;
#endif
bool obss_scan_offload;
} tAniSirGlobal;

파일 보기

@@ -13627,6 +13627,8 @@ void sme_update_tgt_services(tHalHandle hal, struct wma_tgt_services *cfg)
{
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->beacon_offload = cfg->beacon_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
* to start OBSS Scan
*/
if (CSR_IS_CHANNEL_24GHZ(
if (mac_ctx->obss_scan_offload &&
CSR_IS_CHANNEL_24GHZ(
session->connectedProfile.operationChannel)
&& (session->connectState ==
eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED)

파일 보기

@@ -69,6 +69,7 @@ struct wma_tgt_services {
bool is_11k_offload_supported;
bool twt_requestor;
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;
if (wmi_service_enabled(wmi_handle, wmi_service_twt_responder))
cfg->twt_responder = true;
if (wmi_service_enabled(wmi_handle, wmi_service_obss_scan))
cfg->obss_scan_offload = true;
}
/**