wlan: Protect DXE register access during SSR

During SSR, DXE registers should not accessed until WCNSS comes out
of reset. Accessing these registers when WCNSS is in shutdown could
cause unclocked register issues.

Change-Id: I4c578e28a64a7d55e0ab853ba2dc8c7ee4cd0bf9
CRs-Fixed: 564064
wlan: Serialize enter/exit bmps in hdd_smeRoamCallback

hdd_smeRoamCallback gets called in the MC_Thread context and invoking
wlan_hdd_enter and exit bmps function is causing a deadlock.
In other words the MC_Thread will be blocked waiting for the
MC_Thread to perform some work and subsequently unblock the MC_Thread

The fix is to call SME function to post a command to
the PMC queue (MC_Thread) and there by unblocking the caller
immediately and process the command later when scheduled.

Change-Id: Icaf8105abcc3cbec9670e39f0a5b4dd1340f9d46
CRs-Fixed: 589921
Merge "Merge "wlan:Revision 3.2.7.21""
Merge "Merge "msm: kgsl: avoid zero length scatterlist allocation""
Merge "Merge "Merge "wlan:Revision 3.2.7.21"""
Merge "Merge "Merge "msm: kgsl: avoid zero length scatterlist allocation"""
Merge "Merge "wlan:Revision 3.2.7.21""
Merge "Merge "msm: kgsl: avoid zero length scatterlist allocation""
wlan: release the nv while unloading but not while doing an SSR

The nv data structures have to be released while unloading the
driver to prevent memory leaks, but while doing a subsystem restart
(SSR) do not release the nv during the shutdown procedures, this
way we dont have to load the nv again and it will save the restart
time.

Change-Id: I99f53144a817ac1e61fe789a839dc56791a51475
CRs-Fixed: 591220
wlan: During SSR ensure that driver threads complete their work

TX, RX and MC Threads should complete exexution before
the exit routine tries to free the dynamic data these threads
are trying to process. The current implementation does an
interruptible wait for completion of the threads; but it has been
observed that if the process which initiated the driver unload
receives SIGKILL while waiting for threads to complete, the process
will continue without waiting for threads to complete and the threads
will try to access invalidated data after the module has been removed
leading to a kernel panic. To fix this make the wait uninterruptible
during SSR and ensure that the driver threads complete execution
before the driver exits.

Change-Id: Ib79e38e2ab1810b2a61c57c155ce099b0468e311
CRs-Fixed: 590623
Merge "Merge "Merge "wlan:Revision 3.2.7.21"""
Merge "Merge "Merge "msm: kgsl: avoid zero length scatterlist allocation"""
wlan: VHT IEs missing in Reassoc Request after roam

When roaming from one AP that supports Very High Throughput
(802.11ac, VHT) to another, the 802.11ac rates are no longer
used.  The problem is that there are no VHT IEs in the Reassoc
Request that is sent to the AP that is being roamed to.

To fix this issue, the LIM session entry that is used for the new
BSS has the VHT information set correctly.  Also, the routine
that sends out the Reassoc Request is modified to look at the
VHT information and add the VHT IEs to the frame if appropriate.

Change-Id: Ia368d65f874b3db833c805616ba1d41d9ed10297
CRs-Fixed:  573910
Delete PMKID from the cache when forget the AP from GUI

Wlan driver still include cached PMK ID in assoc Req after
forget AP and connect back.Delete the PMKID from the cache
in the driver as part of disconnect from supplicant.

Change-Id: Id248dc495d02769ad246a552fe88c4c0fbe8c06d
CRs-fixed: 536894
wlan: Cached PMK ID still included after forget AP

implement _del_pmksa/_flush_pmksa in wlan_hdd_cfg80211.c
to support deleting PMKID from the cache when forgetting
the AP from GUI

Change-Id: I1dcf71f02f998e865baf613d1752d59cdf14066e
CRs-fixed: 536894
wlan: Fix bssid in del_pmksa and flush_pmksa

While deleting or flushing the PMK cache, the bssid reference is
given to CSR to update its table. But the bssid is cleared even
before CSR is processing it. So CSR always fails to locate the
entry in PMKID table.

Change-Id: I321286474f6aef71df950a798968b1bd47d3d737
CRs-fixed: 536894
wlan: wlan_hdd_cfg80211_del_pmksa error code causing infinite loop

wlan_hdd_cfg80211_del_pmksa() return an error code which causing
wpa_supplicant send_and_recv() go into infinite loop

Change-Id: I0f5305b72048d235b802d75c5b6799fef846b80a
CRs-fixed: 587500
Merge "Merge "wlan:Revision 3.2.7.21""
Merge "Merge "msm: kgsl: avoid zero length scatterlist allocation""
Revert "Execute shader on wakeup from power collapse"

This reverts commit 28eabf6987637c6c438c461aa31ce25e0f7edcc5.

Conflicts:

	drivers/gpu/msm/adreno.c
	drivers/gpu/msm/adreno.h
	drivers/gpu/msm/adreno_a3xx.c
	drivers/gpu/msm/adreno_ringbuffer.c

Change-Id: I0a979f33d9030546d1e72b63cff88d269f63a4c7
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>