qcacld-3.0: Add INI support to disable STA roaming

Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
    LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)

As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.

Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
This commit is contained in:
Abhishek Ambure
2020-03-09 20:50:19 +05:30
committed by nshrivas
parent c1b5bd080a
commit 48b790c62d
16 changed files with 158 additions and 37 deletions

View File

@@ -98,32 +98,9 @@
1, \
"derive the P2P MAC address from the primary MAC address")
/*
* <ini>
* p2p_disable_roam - Disable Roam on sta interface during P2P connection
* @Min: 0 - Roam Enabled on sta interface during P2P connection
* @Max: 1 - Roam Disabled on sta interface during P2P connection
* @Default: 0
*
* Disable roaming on STA iface to avoid audio glitches on p2p if its connected
*
* Related: None.
*
* Supported Feature: Disable Roam during P2P
*
* Usage: Internal
*
* </ini>
*/
#define CFG_P2P_DISABLE_ROAM CFG_INI_BOOL( \
"p2p_disable_roam", \
0, \
"disable roam on STA iface if p2p is connected")
#define CFG_P2P_ALL \
CFG(CFG_GO_KEEP_ALIVE_PERIOD) \
CFG(CFG_GO_LINK_MONITOR_PERIOD) \
CFG(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED) \
CFG(CFG_P2P_DISABLE_ROAM)
CFG(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED)
#endif

View File

@@ -24,6 +24,7 @@
#include "wlan_p2p_public_struct.h"
#include "wlan_p2p_cfg_api.h"
#include "../../core/src/wlan_p2p_main.h"
#include "wlan_mlme_ucfg_api.h"
static inline struct p2p_soc_priv_obj *
wlan_psoc_get_p2p_object(struct wlan_objmgr_psoc *psoc)
@@ -88,13 +89,11 @@ cfg_p2p_get_device_addr_admin(struct wlan_objmgr_psoc *psoc,
bool cfg_p2p_is_roam_config_disabled(struct wlan_objmgr_psoc *psoc)
{
struct p2p_soc_priv_obj *p2p_soc_obj;
uint32_t sta_roam_disable = 0;
p2p_soc_obj = wlan_psoc_get_p2p_object(psoc);
if (!p2p_soc_obj) {
p2p_err("p2p psoc null");
return false;
}
if (ucfg_mlme_get_roam_disable_config(psoc, &sta_roam_disable) ==
QDF_STATUS_SUCCESS)
return sta_roam_disable & LFR3_STA_ROAM_DISABLE_BY_P2P;
return p2p_soc_obj->param.p2p_disable_roam;
return false;
}