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
committad av nshrivas
förälder a71b36fc0a
incheckning 059c4a06c2
10 ändrade filer med 209 tillägg och 19 borttagningar

Visa fil

@@ -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
@@ -137,6 +137,35 @@ QDF_STATUS
cfg_tdls_set_off_channel_enable(struct wlan_objmgr_psoc *psoc,
bool val);
/**
* cfg_tdls_get_off_channel_enable_orig() - get tdls off channel enable orig
* @psoc: pointer to psoc object
* @val: pointer to tdls off channel enable
*
* This function gets tdls off channel enable orig
*/
QDF_STATUS
cfg_tdls_get_off_channel_enable_orig(struct wlan_objmgr_psoc *psoc,
bool *val);
/**
* cfg_tdls_restore_off_channel_enable() - set tdls off channel enable to
* tdls_off_chan_enable_orig
* @psoc: pointer to psoc object
*
* Return: NULL
*/
void cfg_tdls_restore_off_channel_enable(struct wlan_objmgr_psoc *psoc);
/**
* cfg_tdls_store_off_channel_enable() - save tdls off channel enable to
* tdls_off_chan_enable_orig
* @psoc: pointer to psoc object
*
* Return: NULL
*/
void cfg_tdls_store_off_channel_enable(struct wlan_objmgr_psoc *psoc);
/**
* cfg_tdls_get_wmm_mode_enable() - get tdls wmm mode enable
* @psoc: pointer to psoc object

Visa fil

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-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
@@ -461,6 +461,7 @@ enum tdls_feature_bit {
* @tdls_vdev_nss_5g: tdls NSS setting for 5G band
* @tdls_buffer_sta_enable: tdls buffer station enable
* @tdls_off_chan_enable: tdls off channel enable
* @tdls_off_chan_enable_orig: original tdls off channel enable
* @tdls_wmm_mode_enable: tdls wmm mode enable
* @tdls_external_control: tdls external control enable
* @tdls_implicit_trigger_enable: tdls implicit trigger enable
@@ -492,6 +493,7 @@ struct tdls_user_config {
uint8_t tdls_vdev_nss_5g;
bool tdls_buffer_sta_enable;
bool tdls_off_chan_enable;
bool tdls_off_chan_enable_orig;
bool tdls_wmm_mode_enable;
bool tdls_external_control;
bool tdls_implicit_trigger_enable;
@@ -929,7 +931,7 @@ struct tdls_peer_update_state {
struct tdls_channel_switch_params {
uint32_t vdev_id;
uint8_t peer_mac_addr[QDF_MAC_ADDR_SIZE];
uint16_t tdls_off_ch_bw_offset;
uint8_t tdls_off_ch_bw_offset;
uint8_t tdls_off_ch;
uint8_t tdls_sw_mode;
uint8_t oper_class;