qcacld-3.0: Optimize logs during start bss

Instead of print each frequency in separate line,
print  all the frequencies in one shot in
csr_save_to_channel_power2_g_5_g.

Change-Id: I9bca0a94b702626e247bd63f3aa3a617597351a0
CRs-Fixed: 3128543
This commit is contained in:
Divyajyothi Goparaju
2022-02-14 14:06:37 +05:30
committed by Madan Koyyalamudi
parent e398b7e48d
commit 5e8af21ed8

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2011-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
@@ -147,6 +148,14 @@ static void csr_purge_channel_power(struct mac_context *mac,
csr_ll_unlock(pChannelList);
}
#define FREQ_SIZE 4
#define SPACE_SIZE 2
#define SIZEOFNULL 1
#define BUF24GHZSIZE (NUM_24GHZ_CHANNELS * (\
FREQ_SIZE + SPACE_SIZE) + SIZEOFNULL)
#define BUF5GHZSIZE (NUM_5GHZ_CHANNELS * (\
FREQ_SIZE + SPACE_SIZE) + SIZEOFNULL)
/*
* Save the channelList into the ultimate storage as the final stage of channel
* Input: pCountryInfo -- the country code (e.g. "USI"), channel list, and power
@@ -158,41 +167,53 @@ QDF_STATUS csr_save_to_channel_power2_g_5_g(struct mac_context *mac,
{
uint32_t i = tableSize / sizeof(struct pwr_channel_info);
struct pwr_channel_info *pChannelInfo;
struct csr_channel_powerinfo *pChannelSet;
struct csr_channel_powerinfo *pchannelset;
bool f2GHzInfoFound = false;
bool f2GListPurged = false, f5GListPurged = false;
uint8_t *buf24ghz = qdf_mem_malloc(BUF24GHZSIZE);
uint8_t *buf5ghz = qdf_mem_malloc(BUF5GHZSIZE);
uint32_t size24ghz = 0, size5ghz = 0;
if (!buf24ghz || !buf5ghz) {
if (buf24ghz)
qdf_mem_free(buf24ghz);
if (buf5ghz)
qdf_mem_free(buf5ghz);
return QDF_STATUS_E_NOMEM;
}
pChannelInfo = channelTable;
/* atleast 3 bytes have to be remaining -- from "countryString" */
while (i--) {
pChannelSet = qdf_mem_malloc(sizeof(struct csr_channel_powerinfo));
if (!pChannelSet) {
pchannelset = qdf_mem_malloc(sizeof(struct csr_channel_powerinfo));
if (!pchannelset) {
pChannelInfo++;
continue;
}
pChannelSet->first_chan_freq = pChannelInfo->first_freq;
pChannelSet->numChannels = pChannelInfo->num_chan;
pchannelset->first_chan_freq = pChannelInfo->first_freq;
pchannelset->numChannels = pChannelInfo->num_chan;
/*
* Now set the inter-channel offset based on the frequency band
* the channel set lies in
*/
if (WLAN_REG_IS_24GHZ_CH_FREQ(pChannelSet->first_chan_freq) &&
(pChannelSet->first_chan_freq + 5 * (pChannelSet->numChannels - 1) <=
if (WLAN_REG_IS_24GHZ_CH_FREQ(pchannelset->first_chan_freq) &&
(pchannelset->first_chan_freq + 5 * (pchannelset->numChannels - 1) <=
WLAN_REG_MAX_24GHZ_CHAN_FREQ)) {
pChannelSet->interChannelOffset = 5;
pchannelset->interChannelOffset = 5;
f2GHzInfoFound = true;
} else if (WLAN_REG_IS_5GHZ_CH_FREQ(pChannelSet->first_chan_freq) &&
(pChannelSet->first_chan_freq + 20 * (pChannelSet->numChannels - 1) <=
} else if (WLAN_REG_IS_5GHZ_CH_FREQ(pchannelset->first_chan_freq) &&
(pchannelset->first_chan_freq + 20 * (pchannelset->numChannels - 1) <=
WLAN_REG_MAX_5GHZ_CHAN_FREQ)) {
pChannelSet->interChannelOffset = 20;
pchannelset->interChannelOffset = 20;
f2GHzInfoFound = false;
} else {
sme_warn("Invalid Channel freq %d Present in Country IE",
pChannelSet->first_chan_freq);
qdf_mem_free(pChannelSet);
pchannelset->first_chan_freq);
qdf_mem_free(pchannelset);
qdf_mem_free(buf24ghz);
qdf_mem_free(buf5ghz);
return QDF_STATUS_E_FAILURE;
}
pChannelSet->txPower = pChannelInfo->max_tx_pwr;
pchannelset->txPower = pChannelInfo->max_tx_pwr;
if (f2GHzInfoFound) {
if (!f2GListPurged) {
/* purge previous results if found new */
@@ -205,13 +226,14 @@ QDF_STATUS csr_save_to_channel_power2_g_5_g(struct mac_context *mac,
/* add to the list of 2.4 GHz channel sets */
csr_ll_insert_tail(&mac->scan.
channelPowerInfoList24,
&pChannelSet->link,
&pchannelset->link,
LL_ACCESS_LOCK);
} else {
sme_debug(
"Adding 11B/G ch in 11A. 1st ch freq %d",
pChannelSet->first_chan_freq);
qdf_mem_free(pChannelSet);
size24ghz += qdf_scnprintf(
buf24ghz + size24ghz,
BUF24GHZSIZE - size24ghz, " %d",
pchannelset->first_chan_freq);
qdf_mem_free(pchannelset);
}
} else {
/* 5GHz info found */
@@ -226,20 +248,26 @@ QDF_STATUS csr_save_to_channel_power2_g_5_g(struct mac_context *mac,
/* add to the list of 5GHz channel sets */
csr_ll_insert_tail(&mac->scan.
channelPowerInfoList5G,
&pChannelSet->link,
&pchannelset->link,
LL_ACCESS_LOCK);
} else {
sme_debug(
"Adding 11A ch in B/G. 1st ch freq %d",
pChannelSet->first_chan_freq);
qdf_mem_free(pChannelSet);
size5ghz += qdf_scnprintf(
buf5ghz + size5ghz,
BUF5GHZSIZE - size5ghz, " %d",
pchannelset->first_chan_freq);
qdf_mem_free(pchannelset);
}
}
pChannelInfo++; /* move to next entry */
}
if (size24ghz)
sme_nofl_debug("Adding 11B/G ch in 11A:%s", buf24ghz);
qdf_mem_free(buf24ghz);
if (size5ghz)
sme_nofl_debug("Adding 11A ch in B/G:%s", buf5ghz);
qdf_mem_free(buf5ghz);
return QDF_STATUS_SUCCESS;
}
void csr_apply_power2_current(struct mac_context *mac)
{
sme_debug("Updating Cfg with power settings");