qcacmn: Enable STA DFS in F/W
If STA DFS is enabled before vdev creation through etc/config/wireless then VDEV START is sent to F/W as a part of the normal flow to bring the VAP up. However, if STA DFS is enabled/disabled on the fly for a running VAP then do a VDEV STOP, followed by a VDEV START of the STA VAP and set/unset WMI_CHAN_FLAG_STA_DFS flag in VDEV start. Change-Id: I032ffa53d89eaafcb43c648670af3b3f2134561f CRs-Fixed: 2843248
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
@@ -51,6 +51,8 @@ wlan_psoc_get_dfs_txops(struct wlan_objmgr_psoc *psoc)
|
||||
return &tx_ops->dfs_tx_ops;
|
||||
}
|
||||
|
||||
qdf_export_symbol(wlan_psoc_get_dfs_txops);
|
||||
|
||||
bool tgt_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct wlan_lmac_if_dfs_tx_ops *dfs_tx_ops;
|
||||
|
@@ -121,7 +121,7 @@ static QDF_STATUS vdev_mgr_start_param_update(
|
||||
{
|
||||
struct wlan_channel *des_chan;
|
||||
uint32_t dfs_reg;
|
||||
bool set_agile = false, dfs_set_cfreq2 = false;
|
||||
bool set_agile = false, dfs_set_cfreq2 = false, is_stadfs_en = false;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
struct wlan_objmgr_pdev *pdev;
|
||||
enum QDF_OPMODE op_mode;
|
||||
@@ -174,6 +174,8 @@ static QDF_STATUS vdev_mgr_start_param_update(
|
||||
utils_dfs_agile_sm_deliver_evt(pdev,
|
||||
DFS_AGILE_SM_EV_AGILE_STOP);
|
||||
|
||||
is_stadfs_en = tgt_dfs_is_stadfs_enabled(pdev);
|
||||
param->channel.is_stadfs_en = is_stadfs_en;
|
||||
param->beacon_interval = mlme_obj->proto.generic.beacon_interval;
|
||||
param->dtim_period = mlme_obj->proto.generic.dtim_period;
|
||||
param->disable_hw_ack = mlme_obj->mgmt.generic.disable_hw_ack;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2019-2021 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
|
||||
@@ -265,6 +265,7 @@ struct fils_discovery_tmpl_params {
|
||||
* @allow_ht: HT allowed in chan
|
||||
* @allow_vht: VHT allowed on chan
|
||||
* @set_agile: is agile mode
|
||||
* @is_stadfs_en: STA DFS enabled
|
||||
* @phy_mode: phymode (vht80 or ht40 or ...)
|
||||
* @cfreq1: centre frequency on primary
|
||||
* @cfreq2: centre frequency on secondary
|
||||
@@ -285,7 +286,8 @@ struct mlme_channel_param {
|
||||
is_chan_passive:1,
|
||||
allow_ht:1,
|
||||
allow_vht:1,
|
||||
set_agile:1;
|
||||
set_agile:1,
|
||||
is_stadfs_en:1;
|
||||
enum wlan_phymode phy_mode;
|
||||
uint32_t cfreq1;
|
||||
uint32_t cfreq2;
|
||||
|
@@ -1001,6 +1001,9 @@ static inline void copy_channel_info(
|
||||
if (req->channel.dfs_set_cfreq2)
|
||||
WMI_SET_CHANNEL_FLAG(chan, WMI_CHAN_FLAG_DFS_CFREQ2);
|
||||
|
||||
if (req->channel.is_stadfs_en)
|
||||
WMI_SET_CHANNEL_FLAG(chan, WMI_CHAN_FLAG_STA_DFS);
|
||||
|
||||
/* According to firmware both reg power and max tx power
|
||||
* on set channel power is used and set it to max reg
|
||||
* power from regulatory.
|
||||
|
Reference in New Issue
Block a user