wlan: ba invalid lock crash fix

TL BA has mutex to protect BA resource from multi-thread access.
But current mutex implementation just protect from
timer context and RX thread context.
But DEL_BA session response came from FW through SMD thread it's
not protected properly.
During RX frame processing with RX thread, if DEL BA response
preempt RX thread, BA resources could not be protected properly.
Mutex should be initialized and destroy when STA creation and
deletion. And ADD BA, DEL BA also should be protected by mutex.

Change-Id: I858dd46eaafe14e2052ea011c05fb6674fbe6f1c
CRs-fixed: 605197
wlan: enahnce logic to obtain the country from country IEs

Sometimes the BSS from which country IE is used as the source
of deriving the regulatory data is not obtained in the current
scan. If the BSS is missed in the current scan the logic for
deriving country information will use the country IE from
any other BSS which was obtained in the scan results, this
results in frequent toggling of the country from which
regulatory data is obtained. This patchset handles such scenario
by caching the RSSI of the BSS from which the regulatory data
is derived and using it in the algorithm for determining the
regulatory domain.

Change-Id: Icffc2162575e8ca6ee0ceada01d35213a087a99f
CRs-Fixed: 604506
wlan: Fix for netd crash due to improper length updation.

Netd crash due to improper length updation to the user space. i.e
actual length of data copied to the user space buffer being
calculated after indication of the same to the user and wrong value
being updated to the user space.
This commit ensures that the length of the data copied to the user
space buffer and the length indicated to user is same.

Change-Id: I0a402798f5d923eaad1a681724a63cf0cb2c2663
CRs-Fixed: 612326
wlan : Division by zero in kernel

2nd argument of function "csrCalculateMCCBeaconInterval"
should be non-zero value. If its zero then assign default
beacon interval 100.

CRs-fixed: 601214

Change-Id: I9307c8cffde042319ec4dd5edb5edd2c2b9dd4a9
LIM: Pass Operating Channel and Class information to the firmware

This commit ensures to pass the TDLS peer's operating channel to the
firmware in TdlsLinkEstablishReq.

Change-Id: I11e4f4bef0010a2d8874c78a874d201683d82d57
CRs-Fixed: 610536
SME: Pass Operating Channel and Class information to the firmware.

This commit ensures to pass the TDLS peer's operating channel to the
firmware in LinkEstablishRequest.

Change-Id: I97c20b47b6168bace6fa190d6f51df8c864a42f2
CRs-Fixed: 610536
HDD: Pass Operating Channel and Class information to the firmware.

This commit ensures to pass the TDLS peer's operating channel to the
firmware in LinkEstablishRequest.

Change-Id: I1d13898ccbe5cc6387ef97e00f46ea17b3b9b19d
CRs-Fixed: 610536
Wlan: Revision 3.2.3.245

Revision 3.2.3.245