wlan: Stop scan refresh timer while resetting report scan state.

This check-in addresses the following:
1) Refresh scan results timer fires in wrong state (CR405567): When
pre-auth fails three times and there are no other roam candidates, we
start ResultsRefreshTimer which is 20s. In the meantime, we could
receive a deauth from the current AP. But, we do not stop the
ResultsRefreshTimer in csrNeighborRoamResetReportScanStateControlInfo.
Due to this, the timer fires when CSR state machine is in INIT state and
tries to scan by transitioning to CFG_CHAN_SCAN. This by itself is a
wrong state transition. In addition, we clear session ID related info in
the timers when we received the deauth. Due to this, APQ freezes (the
screen goes blank and no access to adb shell either) and happens every
time the ResultsRefreshTimer fires after 3 pre-auth failures. This is
fixed by stopping the timer in
csrNeighborRoamResetReportScanStateControlInfo.
2) Outdated results in scan list prevents roam candidate selection and
leading to heartbead failure (CR397106): At a site where there are more
than 150 APs, roam candidate selection fails because the scan list is
filled with outdated results. This is fixed by: a) increasing the size
of scan list to 200, and b) purging old results every time we begin a
fresh scan cycle (by definition, a scan cycle is hopping through
multiple channels in search of roam candidates). Our tests showed that
(b) alone was sufficient, but (a) would help in instances where we could
find more than 100 scan results within each scan cycle.

Change-Id: Ie91b112da0dcab36645364c5b90b314053031d1a
CR-Fixed: 397106,405567
2 files changed
tree: 0114d88ec5898bc68b5c9e61c9080c7f96628ebe
  1. CORE/
  2. firmware_bin/
  3. riva/
  4. Kconfig
  5. Makefile