qcacld-3.0: Add OFDM Scrambler seed ini support

Add "gEnableUpdateScramSeed" ini support to send
WMI_PDEV_PARAM_EN_UPDATE_SCRAM_SEED command to firmware
to enable OFDM scrambler seed.

Change-Id: Ie5c244a7ea418eec0af1f576e8521804ee85a665
CRs-Fixed: 3106348
This commit is contained in:
VIJAY RAJ
2022-02-01 21:22:21 +05:30
committed by Madan Koyyalamudi
parent 73a8b41fd9
commit 3d11cb41da
8 changed files with 127 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012 - 2021 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
@@ -226,6 +227,7 @@ struct wlan_fwol_neighbor_report_cfg {
* @enable_ilp: ILP HW block configuration
* @sap_sho: SAP SHO HW offload configuration
* @disable_hw_assist: Flag to configure HW assist feature in FW
* @enable_ofdm_scrambler_seed: Decide to enable/disable OFDM scrambler seed
*/
struct wlan_fwol_cfg {
/* Add CFG and INI items here */
@@ -281,6 +283,9 @@ struct wlan_fwol_cfg {
uint32_t enable_ilp;
uint32_t sap_sho;
bool disable_hw_assist;
#ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
bool enable_ofdm_scrambler_seed;
#endif
};
/**

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018-2021 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
@@ -567,6 +568,20 @@ static void fwol_thermal_init(struct wlan_fwol_psoc_obj *fwol_obj)
}
#endif
#ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
static inline void fwol_ofdm_scrambler_init(struct wlan_fwol_cfg *fwol_cfg,
struct wlan_objmgr_psoc *psoc)
{
fwol_cfg->enable_ofdm_scrambler_seed =
cfg_get(psoc, CFG_ENABLE_OFDM_SCRAMBLER_SEED);
}
#else
static inline void fwol_ofdm_scrambler_init(struct wlan_fwol_cfg *fwol_cfg,
struct wlan_objmgr_psoc *psoc)
{
}
#endif
QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
@@ -633,6 +648,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
fwol_cfg->sap_sho = cfg_get(psoc, CFG_SAP_SHO_CONFIG);
fwol_cfg->disable_hw_assist = cfg_get(psoc, CFG_DISABLE_HW_ASSIST);
fwol_thermal_init(fwol_obj);
fwol_ofdm_scrambler_init(fwol_cfg, psoc);
return status;
}

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2021 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
@@ -65,6 +66,28 @@
0, \
"Set rts for sifs bursting")
#ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
/*
* <ini>
* gEnableUpdateScramSeed - Enable/Disable OFDM scambler seed
* @Min: 0
* @Max: 1
* @Default: 0
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_OFDM_SCRAMBLER_SEED CFG_INI_BOOL( \
"gEnableUpdateScramSeed", \
false, \
"Enable OFDM Scrambler Seed")
#define ENABLE_OFDM_SCRAMBLER_SEED CFG(CFG_ENABLE_OFDM_SCRAMBLER_SEED)
#else
#define ENABLE_OFDM_SCRAMBLER_SEED
#endif
/*
* <ini>
* sifs_burst_mask - Set sifs burst mask
@@ -897,6 +920,7 @@
CFG(CFG_ENABLE_FW_WOW_MODULE_LOG_LEVEL) \
CFG(CFG_SAP_SHO_CONFIG) \
CFG(CFG_DISABLE_HW_ASSIST) \
CFG(CFG_ENABLE_PCI_GEN)
CFG(CFG_ENABLE_PCI_GEN) \
ENABLE_OFDM_SCRAMBLER_SEED
#endif

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018-2021 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
@@ -491,6 +492,26 @@ bool ucfg_fwol_get_gcmp_enable(struct wlan_objmgr_psoc *psoc);
QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
uint8_t *enable_tx_sch_delay);
#ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
/**
* ucfg_fwol_get_ofdm_scrambler_seed() - Assigns enable_ofdm_scrambler_seed
* @psoc: pointer to psoc object
* @enable_ofdm_scrambler_seed: Pointer to return enable_ofdm_scrambler_seed
* value
*
* Return: QDF_STATUS_SUCCESS - in case of success
*/
QDF_STATUS ucfg_fwol_get_ofdm_scrambler_seed(struct wlan_objmgr_psoc *psoc,
bool *enable_ofdm_scrambler_seed);
#else
static inline QDF_STATUS ucfg_fwol_get_ofdm_scrambler_seed(
struct wlan_objmgr_psoc *psoc,
bool *enable_ofdm_scrambler_seed)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* ucfg_fwol_get_enable_secondary_rate() - Get enable secondary rate
* @psoc: pointer to the psoc object

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018-2021 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
@@ -792,6 +793,26 @@ QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
QDF_STATUS ucfg_fwol_get_ofdm_scrambler_seed(struct wlan_objmgr_psoc *psoc,
bool *enable_ofdm_scrambler_seed)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
*enable_ofdm_scrambler_seed =
cfg_default(CFG_ENABLE_OFDM_SCRAMBLER_SEED);
return QDF_STATUS_E_FAILURE;
}
*enable_ofdm_scrambler_seed =
fwol_obj->cfg.enable_ofdm_scrambler_seed;
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
uint32_t *enable_secondary_rate)
{