Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 394b1100 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 416e7495 on remote branch

Change-Id: I099fdb5af384772a17b12d20be93640e8da3bec8
parents 78f08463 416e7495
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2022-2023 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
@@ -884,6 +884,7 @@ policy_mgr_nan_sap_pre_enable_conc_check(struct wlan_objmgr_psoc *psoc,
 * @psoc:	PSOC object information
 * @mode:	connection mode
 * @ch_freq:	target channel frequency to switch
 * @bw:	target channel bandwidth
 * @vdev_id:	vdev id of channel switch interface
 * @forced:	forced to chan switch.
 * @reason:	request reason of CSA
@@ -903,8 +904,17 @@ policy_mgr_nan_sap_pre_enable_conc_check(struct wlan_objmgr_psoc *psoc,
bool
policy_mgr_allow_concurrency_csa(struct wlan_objmgr_psoc *psoc,
				 enum policy_mgr_con_mode mode,
				 uint32_t ch_freq, uint32_t vdev_id,
				 bool forced, enum sap_csa_reason_code reason);
				 uint32_t ch_freq, enum hw_mode_bandwidth bw,
				 uint32_t vdev_id, bool forced,
				 enum sap_csa_reason_code reason);

/**
 * policy_mgr_get_bw() - Convert phy_ch_width to hw_mode_bandwidth.
 * @chan_width: phy_ch_width
 *
 * Return: hw_mode_bandwidth
 */
enum hw_mode_bandwidth policy_mgr_get_bw(enum phy_ch_width chan_width);

/**
 * policy_mgr_get_first_connection_pcl_table_index() - provides the
+17 −12
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2022-2023 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
@@ -2653,11 +2653,14 @@ bool policy_mgr_is_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
	}

	if (ch_freq) {
		chan_state = wlan_reg_get_5g_bonded_channel_state_for_freq(
		if (wlan_reg_is_5ghz_ch_freq(ch_freq)) {
			chan_state =
			wlan_reg_get_5g_bonded_channel_state_for_freq(
					pm_ctx->pdev, ch_freq,
					policy_mgr_get_ch_width(bw));
			if (chan_state == CHANNEL_STATE_DFS)
				is_dfs_ch = true;
		}
		/* don't allow 3rd home channel on same MAC
		 * also check for single mac target which doesn't
		 * support interbad MCC as well
@@ -2693,8 +2696,10 @@ bool policy_mgr_is_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
		sta_sap_scc_on_dfs_chan =
			policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc);
		go_force_scc = policy_mgr_go_scc_enforced(psoc);
		if ((!sta_sap_scc_on_dfs_chan && mode == PM_SAP_MODE) ||
		    (!go_force_scc && mode == PM_P2P_GO_MODE)) {
		if ((mode == PM_SAP_MODE || mode == PM_P2P_GO_MODE) &&
		    (!sta_sap_scc_on_dfs_chan ||
		     !policy_mgr_is_sta_sap_scc(psoc, ch_freq) ||
		     (!go_force_scc && mode == PM_P2P_GO_MODE))) {
			if (is_dfs_ch)
				match = policy_mgr_disallow_mcc(psoc,
								ch_freq);
@@ -2796,8 +2801,9 @@ bool policy_mgr_allow_concurrency(struct wlan_objmgr_psoc *psoc,
bool
policy_mgr_allow_concurrency_csa(struct wlan_objmgr_psoc *psoc,
				 enum policy_mgr_con_mode mode,
				 uint32_t ch_freq, uint32_t vdev_id,
				 bool forced, enum sap_csa_reason_code reason)
				 uint32_t ch_freq, enum hw_mode_bandwidth bw,
				 uint32_t vdev_id, bool forced,
				 enum sap_csa_reason_code reason)
{
	bool allow = false;
	struct policy_mgr_conc_connection_info
@@ -2812,8 +2818,8 @@ policy_mgr_allow_concurrency_csa(struct wlan_objmgr_psoc *psoc,
		policy_mgr_err("Invalid Context");
		return allow;
	}
	policy_mgr_debug("check concurrency_csa vdev:%d ch %d, forced %d, reason %d",
			 vdev_id, ch_freq, forced, reason);
	policy_mgr_debug("check concurrency_csa vdev:%d ch %d bw %d, forced %d, reason %d",
			 vdev_id, ch_freq, bw, forced, reason);

	status = policy_mgr_get_chan_by_session_id(psoc, vdev_id,
						   &old_ch_freq);
@@ -2851,8 +2857,7 @@ policy_mgr_allow_concurrency_csa(struct wlan_objmgr_psoc *psoc,
		policy_mgr_store_and_del_conn_info_by_vdev_id(
			psoc, vdev_id, info, &num_cxn_del);

	allow = policy_mgr_allow_concurrency(psoc, mode, ch_freq,
					     HW_MODE_20_MHZ);
	allow = policy_mgr_allow_concurrency(psoc, mode, ch_freq, bw);
	/* Restore the connection entry */
	if (num_cxn_del > 0)
		policy_mgr_restore_deleted_conn_info(psoc, info, num_cxn_del);
+1 −8
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022-2023 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
@@ -570,14 +571,6 @@ void pm_dbs_opportunistic_timer_handler(void *data);
enum policy_mgr_con_mode policy_mgr_get_mode(uint8_t type,
		uint8_t subtype);

/**
 * policy_mgr_get_bw() - Convert phy_ch_width to hw_mode_bandwidth.
 * @chan_width: phy_ch_width
 *
 * Return: hw_mode_bandwidth
 */
enum hw_mode_bandwidth policy_mgr_get_bw(enum phy_ch_width chan_width);

QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc,
			enum policy_mgr_pcl_type pcl,
			uint32_t *pcl_channels, uint32_t *len,
+1 −0
Original line number Diff line number Diff line
@@ -1822,6 +1822,7 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc,
	lfr->roam_preauth_retry_count =
		cfg_get(psoc, CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT);
	lfr->roam_rssi_diff = cfg_get(psoc, CFG_LFR_ROAM_RSSI_DIFF);
	lfr->roam_rssi_diff_6ghz = cfg_get(psoc, CFG_LFR_ROAM_RSSI_DIFF_6GHZ);
	lfr->bg_rssi_threshold = cfg_get(psoc, CFG_LFR_ROAM_BG_RSSI_TH);
	lfr->roam_scan_offload_enabled =
		cfg_get(psoc, CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED);
+31 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2022 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
@@ -1250,6 +1251,35 @@
	CFG_VALUE_OR_DEFAULT, \
	"Enable roam based on rssi")

/*
 * <ini>
 * RoamRssiDiff6GHz - Enable roam to 6 GHz AP based on rssi
 * @Min: 0
 * @Max: 100
 * @Default: 5
 *
 * This INI is used to decide whether to roam to 6 GHz AP or not based on RSSI.
 * AP1 is the currently associated AP(2.4 GHz / 5 GHz) and AP2(6 GHz) is chosen
 * for roaming. The Roaming will happen only if AP2 has better Signal Quality
 * and it has a RSSI better than AP1. RoamRssiDiff6GHz is the number of units
 * (typically measured in dB) AP2 is better than AP1.
 *
 * Related: None
 *
 * Supported Feature: Roaming
 *
 * Usage: External
 *
 * </ini>
 */
#define CFG_LFR_ROAM_RSSI_DIFF_6GHZ CFG_INI_UINT( \
	"RoamRssiDiff6GHz", \
	0, \
	100, \
	5, \
	CFG_VALUE_OR_DEFAULT, \
	"Enable 6 GHz roam based on rssi")

/*
 * <ini>
 * bg_rssi_threshold - To set RSSI Threshold for BG scan roaming
@@ -2899,6 +2929,7 @@
	CFG(CFG_LFR_MAWC_FEATURE_ENABLED) \
	CFG(CFG_LFR_FAST_TRANSITION_ENABLED) \
	CFG(CFG_LFR_ROAM_RSSI_DIFF) \
	CFG(CFG_LFR_ROAM_RSSI_DIFF_6GHZ) \
	CFG(CFG_LFR_ROAM_BG_RSSI_TH) \
	CFG(CFG_LFR_ENABLE_WES_MODE) \
	CFG(CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED) \
Loading