wlan: Added a check before updating the rssi value
Added a conditional check before updating the rssi value
CRs-Fixed: 475979
Change-Id: I774d1fcdbb44425f20b0e8f9d450a5e8723cfda5
diff --git a/CORE/SAP/src/sapChSelect.c b/CORE/SAP/src/sapChSelect.c
index d2f804e..914962b 100644
--- a/CORE/SAP/src/sapChSelect.c
+++ b/CORE/SAP/src/sapChSelect.c
@@ -96,6 +96,11 @@
--------------------------------------------------------------------------*/
#define SAP_DEBUG
+#define IS_RSSI_VALID( extRssi, rssi ) \
+( \
+ ((extRssi < rssi)?eANI_BOOLEAN_TRUE:eANI_BOOLEAN_FALSE) \
+)
+
/*==========================================================================
FUNCTION sapCleanupChannelList
@@ -487,6 +492,7 @@
void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
{
tSapSpectChInfo *pExtSpectCh = NULL;
+ v_S31_t rssi;
switch(pSpectCh->chNum)
{
case CHANNEL_1:
@@ -494,7 +500,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -502,7 +512,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -510,7 +524,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -518,7 +536,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FOURTH_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FOURTH_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -528,7 +550,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -536,7 +562,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -544,7 +574,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -552,7 +586,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -568,7 +606,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -576,7 +618,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -584,7 +630,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -592,7 +642,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -602,7 +656,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -610,7 +668,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -618,7 +680,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -626,7 +692,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -636,7 +706,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -644,7 +718,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -652,7 +730,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -660,7 +742,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_24GHZ_FOURTH_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_24GHZ_FOURTH_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -797,8 +883,12 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
// REducing the rssi by -20 and assigning it to Extension channel
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -807,7 +897,11 @@
pExtSpectCh = (pSpectCh - 1);
if(pExtSpectCh != NULL)
{
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
++pExtSpectCh->bssCount;
@@ -823,7 +917,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY); // Reducing the rssi by -20 and assigning it to Subband 1
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi; // Reducing the rssi by -20 and assigning it to Subband 1
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -831,7 +929,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY); // Reducing the rssi by -30 and assigning it to Subband 2
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi; // Reducing the rssi by -30 and assigning it to Subband 2
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -839,7 +941,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY); // Reducing the rssi by -40 and assigning it to Subband 3
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi; // Reducing the rssi by -40 and assigning it to Subband 3
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -851,7 +957,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -859,7 +969,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -867,7 +981,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -879,7 +997,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -887,7 +1009,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -895,7 +1021,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -907,7 +1037,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -915,7 +1049,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -923,7 +1061,11 @@
if(pExtSpectCh != NULL)
{
++pExtSpectCh->bssCount;
- pExtSpectCh->rssiAgr = (pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY);
+ rssi = pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY;
+ if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
+ {
+ pExtSpectCh->rssiAgr = rssi;
+ }
if(pExtSpectCh->rssiAgr < SOFTAP_MIN_RSSI)
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
}
@@ -1195,9 +1337,8 @@
#else
// Get the first channel in sorted array as best 20M Channel
bestChNum = (v_U8_t)pSpectInfoParams->pSpectCh[0].chNum;
-
#endif
-
+
//Select Best Channel from Channel List if Configured
bestChNum = sapSelectPreferredChannelFromChannelList(bestChNum, pSapCtx, pSpectInfoParams);
@@ -1226,10 +1367,10 @@
sapChanSelExit(pSpectInfoParams);
VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, "In %s, Running SAP Ch select Completed, Ch=%d",
- __func__, bestChNum);
-
+ __func__, bestChNum);
if (bestChNum > 0 && bestChNum <= 252)
return bestChNum;
else
return SAP_CHANNEL_NOT_SELECTED;
}
+