qcacld-3.0: Configure TDLS off channel mode when band switches

Disable TDLS off channel if 2g or 5g is disabled, restore TDLS off
channel configure when all bands are enabled.

Change-Id: Iabfdcdbf84e4a6313ad04e381b70e21c871d66c2
CRs-Fixed: 2595303
This commit is contained in:
bings
2019-12-31 18:24:21 +08:00
committed by nshrivas
parent a71b36fc0a
commit 059c4a06c2
10 changed files with 209 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
* Copyright (c) 2018-2020 The Linux Foundation. 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
@@ -201,6 +201,53 @@ cfg_tdls_set_off_channel_enable(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
cfg_tdls_get_off_channel_enable_orig(struct wlan_objmgr_psoc *psoc,
bool *val)
{
struct tdls_soc_priv_obj *soc_obj;
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
if (!soc_obj) {
*val = false;
tdls_err("tdls soc null");
return QDF_STATUS_E_INVAL;
}
*val = soc_obj->tdls_configs.tdls_off_chan_enable_orig;
return QDF_STATUS_SUCCESS;
}
void cfg_tdls_store_off_channel_enable(struct wlan_objmgr_psoc *psoc)
{
struct tdls_soc_priv_obj *soc_obj;
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
if (!soc_obj) {
tdls_err("tdls soc null");
return;
}
soc_obj->tdls_configs.tdls_off_chan_enable_orig =
soc_obj->tdls_configs.tdls_off_chan_enable;
}
void cfg_tdls_restore_off_channel_enable(struct wlan_objmgr_psoc *psoc)
{
struct tdls_soc_priv_obj *soc_obj;
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
if (!soc_obj) {
tdls_err("tdls soc null");
return;
}
soc_obj->tdls_configs.tdls_off_chan_enable =
soc_obj->tdls_configs.tdls_off_chan_enable_orig;
soc_obj->tdls_configs.tdls_off_chan_enable_orig = false;
}
QDF_STATUS
cfg_tdls_get_wmm_mode_enable(struct wlan_objmgr_psoc *psoc,
bool *val)