Loading components/mlme/core/src/wlan_mlme_main.c +3 −2 Original line number Diff line number Diff line /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -1831,9 +1832,9 @@ static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc, * If configured weights are greater than max weight, * fallback to default weights */ if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) { if (total_weight > MAX_BSS_SCORE) { mlme_legacy_err("Total weight greater than %d, using default weights", BEST_CANDIDATE_MAX_WEIGHT); MAX_BSS_SCORE); scoring_cfg->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE; scoring_cfg->weight_cfg.ht_caps_weightage = HT_CAPABILITY_WEIGHTAGE; Loading components/p2p/core/src/wlan_p2p_roc.c +40 −2 Original line number Diff line number Diff line Loading @@ -82,6 +82,8 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) struct wlan_objmgr_vdev *vdev; struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj; uint32_t go_num; uint8_t ndp_num = 0, nan_disc_enabled_num = 0; bool is_dbs; vdev = wlan_objmgr_get_vdev_by_id_from_psoc( p2p_soc_obj->soc, roc_ctx->vdev_id, Loading Loading @@ -122,7 +124,17 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) if (req->scan_req.dwell_time_passive < P2P_MAX_ROC_DURATION) { go_num = policy_mgr_mode_specific_connection_count( p2p_soc_obj->soc, PM_P2P_GO_MODE, NULL); p2p_debug("present go number:%d", go_num); policy_mgr_mode_specific_num_active_sessions(p2p_soc_obj->soc, QDF_NDI_MODE, &ndp_num); policy_mgr_mode_specific_num_active_sessions(p2p_soc_obj->soc, QDF_NAN_DISC_MODE, &nan_disc_enabled_num); p2p_debug("present go number:%d, NDP number:%d, NAN number:%d", go_num, ndp_num, nan_disc_enabled_num); is_dbs = policy_mgr_is_hw_dbs_capable(p2p_soc_obj->soc); if (go_num) req->scan_req.dwell_time_passive *= P2P_ROC_DURATION_MULTI_GO_PRESENT; Loading @@ -132,9 +144,35 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) /* this is to protect too huge value if some customers * give a higher value from supplicant */ if (req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION) if (go_num && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_GO_PRESENT) { req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_GO_PRESENT; } else if (ndp_num) { if (is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT; else if (!is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT; } else if (nan_disc_enabled_num) { if (is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT; else if (!is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT; else if (req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION; } } p2p_debug("FW requested roc duration is:%d", req->scan_req.dwell_time_passive); Loading components/p2p/core/src/wlan_p2p_roc.h +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ #define P2P_WAIT_CANCEL_ROC 1000 #define P2P_WAIT_CLEANUP_ROC 2000 #define P2P_MAX_ROC_DURATION 1500 #define P2P_MAX_ROC_DURATION_GO_PRESENT 600 #define P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT 400 #define P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT 250 #define P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT 450 #define P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT 300 #define P2P_ROC_DURATION_MULTI_GO_PRESENT 6 #define P2P_ROC_DURATION_MULTI_GO_ABSENT 10 Loading core/hdd/src/wlan_hdd_cfg80211.c +1 −1 Original line number Diff line number Diff line Loading @@ -8045,7 +8045,7 @@ static int hdd_config_latency_level(struct hdd_adapter *adapter, QDF_STATUS status; if (!hdd_is_wlm_latency_manager_supported(hdd_ctx)) return -EINVAL; return -ENOTSUPP; latency_level = nla_get_u16(attr); switch (latency_level) { Loading core/hdd/src/wlan_hdd_hostapd.c +3 −2 Original line number Diff line number Diff line Loading @@ -5740,7 +5740,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter, goto error; } qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, qdf_status = qdf_wait_single_event(&hostapd_state->qdf_event, SME_CMD_START_BSS_TIMEOUT); wlansap_reset_sap_config_add_ie(config, eUPDATE_IE_ALL); Loading @@ -5753,6 +5753,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter, hdd_set_connection_in_progress(false); sme_get_command_q_status(mac_handle); wlansap_stop_bss(WLAN_HDD_GET_SAP_CTX_PTR(adapter)); if (!cds_is_driver_recovering()) QDF_ASSERT(0); ret = -EINVAL; goto error; Loading Loading
components/mlme/core/src/wlan_mlme_main.c +3 −2 Original line number Diff line number Diff line /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the Loading Loading @@ -1831,9 +1832,9 @@ static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc, * If configured weights are greater than max weight, * fallback to default weights */ if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) { if (total_weight > MAX_BSS_SCORE) { mlme_legacy_err("Total weight greater than %d, using default weights", BEST_CANDIDATE_MAX_WEIGHT); MAX_BSS_SCORE); scoring_cfg->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE; scoring_cfg->weight_cfg.ht_caps_weightage = HT_CAPABILITY_WEIGHTAGE; Loading
components/p2p/core/src/wlan_p2p_roc.c +40 −2 Original line number Diff line number Diff line Loading @@ -82,6 +82,8 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) struct wlan_objmgr_vdev *vdev; struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj; uint32_t go_num; uint8_t ndp_num = 0, nan_disc_enabled_num = 0; bool is_dbs; vdev = wlan_objmgr_get_vdev_by_id_from_psoc( p2p_soc_obj->soc, roc_ctx->vdev_id, Loading Loading @@ -122,7 +124,17 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) if (req->scan_req.dwell_time_passive < P2P_MAX_ROC_DURATION) { go_num = policy_mgr_mode_specific_connection_count( p2p_soc_obj->soc, PM_P2P_GO_MODE, NULL); p2p_debug("present go number:%d", go_num); policy_mgr_mode_specific_num_active_sessions(p2p_soc_obj->soc, QDF_NDI_MODE, &ndp_num); policy_mgr_mode_specific_num_active_sessions(p2p_soc_obj->soc, QDF_NAN_DISC_MODE, &nan_disc_enabled_num); p2p_debug("present go number:%d, NDP number:%d, NAN number:%d", go_num, ndp_num, nan_disc_enabled_num); is_dbs = policy_mgr_is_hw_dbs_capable(p2p_soc_obj->soc); if (go_num) req->scan_req.dwell_time_passive *= P2P_ROC_DURATION_MULTI_GO_PRESENT; Loading @@ -132,9 +144,35 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) /* this is to protect too huge value if some customers * give a higher value from supplicant */ if (req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION) if (go_num && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_GO_PRESENT) { req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_GO_PRESENT; } else if (ndp_num) { if (is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT; else if (!is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT; } else if (nan_disc_enabled_num) { if (is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT; else if (!is_dbs && req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT; else if (req->scan_req.dwell_time_passive > P2P_MAX_ROC_DURATION) req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION; } } p2p_debug("FW requested roc duration is:%d", req->scan_req.dwell_time_passive); Loading
components/p2p/core/src/wlan_p2p_roc.h +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ #define P2P_WAIT_CANCEL_ROC 1000 #define P2P_WAIT_CLEANUP_ROC 2000 #define P2P_MAX_ROC_DURATION 1500 #define P2P_MAX_ROC_DURATION_GO_PRESENT 600 #define P2P_MAX_ROC_DURATION_DBS_NDP_PRESENT 400 #define P2P_MAX_ROC_DURATION_NON_DBS_NDP_PRESENT 250 #define P2P_MAX_ROC_DURATION_DBS_NAN_PRESENT 450 #define P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT 300 #define P2P_ROC_DURATION_MULTI_GO_PRESENT 6 #define P2P_ROC_DURATION_MULTI_GO_ABSENT 10 Loading
core/hdd/src/wlan_hdd_cfg80211.c +1 −1 Original line number Diff line number Diff line Loading @@ -8045,7 +8045,7 @@ static int hdd_config_latency_level(struct hdd_adapter *adapter, QDF_STATUS status; if (!hdd_is_wlm_latency_manager_supported(hdd_ctx)) return -EINVAL; return -ENOTSUPP; latency_level = nla_get_u16(attr); switch (latency_level) { Loading
core/hdd/src/wlan_hdd_hostapd.c +3 −2 Original line number Diff line number Diff line Loading @@ -5740,7 +5740,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter, goto error; } qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, qdf_status = qdf_wait_single_event(&hostapd_state->qdf_event, SME_CMD_START_BSS_TIMEOUT); wlansap_reset_sap_config_add_ie(config, eUPDATE_IE_ALL); Loading @@ -5753,6 +5753,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter, hdd_set_connection_in_progress(false); sme_get_command_q_status(mac_handle); wlansap_stop_bss(WLAN_HDD_GET_SAP_CTX_PTR(adapter)); if (!cds_is_driver_recovering()) QDF_ASSERT(0); ret = -EINVAL; goto error; Loading