qcacld-3.0: Update NSS for SAP dynamically

Currently host driver does not support dynamic NSS update for
SAP. Based on new requirement update NSS for SAP.
To achieve this requirement, add a logic to update the NSS and
restart the SAP with the updated NSS based on the ini.

Change-Id: Ie770b1103ba4050c48cd4ba3674a5e0d89c86fdf
CRs-Fixed: 3307308
Dieser Commit ist enthalten in:
Ashish Kumar Dhanotiya
2022-11-08 14:52:22 +05:30
committet von Madan Koyyalamudi
Ursprung cba34a2b34
Commit 3297080714
7 geänderte Dateien mit 135 neuen und 20 gelöschten Zeilen

Datei anzeigen

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2018, 2020 The Linux Foundation. All rights reserved.
* Copyright (c) 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
@@ -554,6 +555,27 @@
1, \
"enable dynamic nss chain config")
/*
* <ini>
* restart_sap_on_dynamic_nss_chains_config - Decide whether SAP needs to be
* restarted on dynamic nss chains update
* @Min: 0
* @Max: 1
* @Default: 0
*
* Related: SAP/P2P.
*
* Supported Feature: Dynamic chainmask
*
* Usage: External
*
* </ini>
*/
#define CFG_RESTART_SAP_ON_DYNAMIC_NSS_CHAINS_CONFIG CFG_INI_BOOL( \
"restart_sap_on_dynamic_nss_chains_config", \
0, \
"Restart SAP on dynamic nss chain config")
#define CFG_NSS_CHAINS_ALL \
CFG(CFG_NUM_TX_CHAINS_2G) \
CFG(CFG_NUM_TX_CHAINS_5G) \
@@ -570,7 +592,8 @@
CFG(CFG_DISABLE_RX_MRC_2G) \
CFG(CFG_DISABLE_TX_MRC_5G) \
CFG(CFG_DISABLE_RX_MRC_5G) \
CFG(CFG_ENABLE_DYNAMIC_NSS_CHAIN_CONFIG)
CFG(CFG_ENABLE_DYNAMIC_NSS_CHAIN_CONFIG) \
CFG(CFG_RESTART_SAP_ON_DYNAMIC_NSS_CHAINS_CONFIG)
#endif /* __CFG_MLME_NSS_CHAINS */

Datei anzeigen

@@ -2230,6 +2230,22 @@ QDF_STATUS
wlan_mlme_get_enable_dynamic_nss_chains_cfg(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* wlan_mlme_get_restart_sap_on_dynamic_nss_chains_cfg() - API to get whether
* SAP needs to be restarted or not on dynamic nss chain config
* @psoc: psoc context
* @value: data to be set
*
* API to get whether SAP needs to be restarted or not on dynamic nss chain
* config
*
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
*/
QDF_STATUS
wlan_mlme_get_restart_sap_on_dynamic_nss_chains_cfg(
struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* wlan_mlme_get_vht_enable2x2() - Enables/disables VHT Tx/Rx MCS values for 2x2
* @psoc: psoc context

Datei anzeigen

@@ -1609,6 +1609,8 @@ enum dot11p_mode {
* @disable_rx_mrc: disable 2 rx chains, in rx nss 1 mode
* @disable_tx_mrc: disable 2 tx chains, in tx nss 1 mode
* @enable_dynamic_nss_chains_cfg: enable the dynamic nss chain config to FW
* @restart_sap_on_dyn_nss_chains_cfg: restart SAP on dynamic NSS chains
* update
*/
struct wlan_mlme_nss_chains {
uint32_t num_tx_chains[NSS_CHAINS_BAND_MAX];
@@ -1621,6 +1623,7 @@ struct wlan_mlme_nss_chains {
bool disable_rx_mrc[NSS_CHAINS_BAND_MAX];
bool disable_tx_mrc[NSS_CHAINS_BAND_MAX];
bool enable_dynamic_nss_chains_cfg;
bool restart_sap_on_dyn_nss_chains_cfg;
};
/**

Datei anzeigen

@@ -2605,6 +2605,25 @@ ucfg_mlme_get_enable_dynamic_nss_chains_cfg(struct wlan_objmgr_psoc *psoc,
return wlan_mlme_get_enable_dynamic_nss_chains_cfg(psoc, value);
}
/**
* ucfg_mlme_get_restart_sap_on_dynamic_nss_chains_cfg() - API to get whether
* SAP needs to be restarted or not on dynamic nss chain config
* @psoc: psoc context
* @value: data to be set
*
* API to get whether SAP needs to be restarted or not on dynamic nss chain
* config
*
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
*/
static inline QDF_STATUS
ucfg_mlme_get_restart_sap_on_dynamic_nss_chains_cfg(
struct wlan_objmgr_psoc *psoc,
bool *value)
{
return wlan_mlme_get_restart_sap_on_dynamic_nss_chains_cfg(psoc, value);
}
/**
* ucfg_mlme_get_vht_enable2x2() - Enables/disables VHT Tx/Rx MCS values for 2x2
* @psoc: psoc context