wlan: Improve convergence of LFR roam candidate scan algorithm.

When no roam candidates are found, the existing scan algorithm takes
long time to converge and there is no guarantee that all channels will
be scanned. This not only impacts power consumption, but also affects
roam convergence by not being able to find roam candidates quickly. The
algorithm is being modified as follows in an attempt to address both
power and convergence of the algorithm:
1. If no candidates were found for the very first time, re-register with
TL by lowering the lookup threshold by 3 dBm. Once look up DOWN
notification is received, we will scan on channels in the occupied list
followed by ALL valid channels not in the occupied list.
2. If still no candidates are found, start neighbor scan results refresh
timer (default is 20s). Upon expiry of the timer, once again scan on
channels in the occupied list followed by ALL valid channels not in the
occupied list.
3. If still no candidates are found, abort scanning and go back to
connected state. At this instant, only lookup UP event is registered
with TL.
This changelist includes the following:
a) Above mentioned scan algorithm.
b) Populate occupied list only with channels where candidates matching
the profile are found.
c) Initialize the occupied list only a connection is made to a profile
different from the previous profile.
d) Use lookup UP threshold 2dB higher than lookup DOWN threshold.
NOTE: This change is being made ONLY for LFR.

Change-Id: Idb3887704dedad753e6406d0d9b1176dbc36f223
CR-Fixed: 418914
diff --git a/CORE/SME/src/csr/csrInsideApi.h b/CORE/SME/src/csr/csrInsideApi.h
index 3ff8da7..9d76689 100644
--- a/CORE/SME/src/csr/csrInsideApi.h
+++ b/CORE/SME/src/csr/csrInsideApi.h
@@ -928,6 +928,12 @@
 eHalStatus csrRoamEnqueuePreauth(tpAniSirGlobal pMac, tANI_U32 sessionId, tpSirBssDescription pBssDescription,
                                 eCsrRoamReason reason, tANI_BOOLEAN fImmediate);
 eHalStatus csrRoamDequeuePreauth(tpAniSirGlobal pMac);
+#ifdef FEATURE_WLAN_LFR
+void csrInitOccupiedChannelsList(tpAniSirGlobal pMac);
+tANI_BOOLEAN csrNeighborRoamIsNewConnectedProfile(tpAniSirGlobal pMac);
+tANI_BOOLEAN csrNeighborRoamConnectedProfileMatch(tpAniSirGlobal pMac, tCsrScanResult *pResult,
+                                                  tDot11fBeaconIEs *pIes);
+#endif
 
 #endif