Commit Graph

880 Commits

Author SHA1 Message Date
Naveen Rawat
e6ddcaab1a qcacld-3.0: Proper mem allocation for lim, pre auth timers
This is qcacld-2.0 to qcacld-3.0 propagation.

Fix mem alloc for pre auth timer and add error handling for limInitMlm.

Currently number of preauth timer is taken as cfg param and memory is
allocated in bulk. In case the memory allocation fails, no error is
returned from limInitMlm, which causes undefined behavior. Also preauth
timers do not need contiguous memory allocation, so allocate an array of
pointers instead of single chunk for pre auth timers.

Change-Id: I92677aa9bb7970034630f4c6487fa9d196ccfb4c
CRs-Fixed: 955557
2016-04-13 21:51:24 -07:00
Sandeep Puligilla
fade9b7887 qcacld3.0: Remove condition to start BSS in HT20
SAP is always coming up in HT20 on 2.4Ghz band even though
hostapd configures HT40 mode.

Remove condition to start BSS only in HT20 for
2.4Ghz channels.

Change-Id: I1e4712ee49bbb079c81a2193e2130d2c846c865f
CRs-Fixed: 970396
2016-04-13 21:51:24 -07:00
Sandeep Puligilla
e390be5cda qcacld-3.0: Remove pending scans from HDD scan queue
Pending scan entries are not cleared during SSR
execution which is causing scan failure after SSR
recovery.

Remove all pendings scans from global scan queue and
send scan complete callback to NL with abort flag set.

Change-Id: Iebffcf56ace59a3ded4df8141caf639c55f0b278
CRs-Fixed: 966580
2016-04-13 21:51:24 -07:00
Jeff Johnson
1f61b61df4 qcacld-3.0: Use ENTER_DEV() in cfg80211 vendor commands
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all cfg80211 vendor command
handlers to use this macro.

Change-Id: I3bb7112c6e5967577fa0f891e0b37ad7412bd2fc
CRs-Fixed: 975826
2016-04-13 21:51:24 -07:00
Jeff Johnson
6ee91eeeb3 qcacld-3.0: Use ENTER_DEV() in STA private WEXT ioctls
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all STA-mode private
wireless extensions ioctl handlers to use this macro.

Change-Id: I5a69d2a92c82bcf7931350e12ee7610748f5e3ab
CRs-Fixed: 975414
2016-04-13 21:51:24 -07:00
Jeff Johnson
0205031ea9 qcacld-3.0: Use ENTER_DEV() in HostAP private WEXT ioctls
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all HostAP-mode private
wireless extensions ioctl handlers to use this macro.

Change-Id: I746788be7dd9a0d5317b483908adde22d96413dc
CRs-Fixed: 975414
2016-04-13 21:51:23 -07:00
Jeff Johnson
651f9f2758 qcacld-3.0: Use ENTER_DEV() in HostAP standard WEXT ioctls
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all HostAP-mode standard
wireless extensions ioctl handlers to use this macro.

Change-Id: I5cc2ee8c6fbde2778d4153a0dc3d5e509a3bb647
CRs-Fixed: 975414
2016-04-13 21:51:23 -07:00
Jeff Johnson
b25dcb1704 qcacld-3.0: Use ENTER_DEV() in STA standard WEXT ioctls
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all STA-mode standard
wireless extensions ioctl handlers to use this macro.

Change-Id: Ia76fb5a471e4e3f03a1b4cd53c95227e6b7a815c
CRs-Fixed: 975414
2016-04-13 21:51:23 -07:00
Jeff Johnson
3c3994a8be qcacld-3.0: Use ENTER_DEV() in control plane netdev ops
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered.  Update all control plane netdev
methods to use this macro.

Change-Id: Id73214481616eb34cc40f125ea7fb756b3097dc7
CRs-Fixed: 938146
2016-04-13 21:51:23 -07:00
Jeff Johnson
a6177c31b6 qcacld-3.0: Convert wlan_hdd_trace.c to unified logging
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_trace.c to use the unified set of APIs.

Change-Id: I41f40000031a6a7203bebfdd4fcf11cc0673a973
CRs-Fixed: 959683
2016-04-13 21:51:23 -07:00
Jeff Johnson
398b3d640f qcacld-3.0: Introduce ENTER_DEV() logging macro
Currently HDD defines an ENTER() macro which is used to log entry into
certain HDD functions.  Many of the functions HDD registers with the
kernel are called with either a netdev or wdev parameter.  When
logging entry into those functions it would be beneficial to log the
name of the netdev so that in subsequent log analysis we not only know
which functions were called but also know which device was being used.
Introduce a new ENTER_DEV() macro for this purpose which will log both
the function name and the device name.

Change-Id: I32ef2bcc958b8148e6d439b30b21102be144a327
CRs-Fixed: 938146
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
ce2172e9ed qcacld-3.0: Fix reason code used during Nss update request
Fix the reason code used during Nss update request. If
there is MCC upgrade or DBS downgrade, the hw mode change
request internally send the Nss update request. But, the
current implementation uses the same fixed reason code
during Nss update request and due to this on receiving the
hw mode change response, the expected callback function is
not getting invoked. Fix this by passing the right reason
code during Nss update request.

CRs-Fixed: 978663
Change-Id: I706cb9a86d66d8601ec87f560459604e562f6037
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
2859de43af qcacld-3.0: Sanitize the session id before issuing scan
Ensure that the session id is sanitized before issuing
the scan request. During the transient stages of a new
interface when no session exists for that interface and
if a scan is received for that particular interface, it
would result in scan with invalid vdev id. Validate the
session id to avoid the same.

Change-Id: Ib22262493a141491d1d86ae682b14113d303685d
CRs-Fixed: 973773
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
41ab6b0036 qcacld-3.0: Fix incorrect value of Rx Nss in operating mode field
Fix the incorrect value of receive spatial streams added for use
in operating mode field. The Operating Mode field is present in
the Operating Mode Notification frame and Operating Mode
Notification element. These are used to notify STAs that the
transmitting STA is changing its operating channel width, the
maximum number of spatial streams it can receive, or both.

As per the 802.11ac spec:
- If the Rx NSS Type subfield is 0, indicates the maximum number
of spatial streams that the STA can receive.
- If the Rx NSS Type subfield is 1, indicates the maximum number of
spatial streams that the STA can receive as a beamformee in an SU
PPDU using a beamforming steering matrix derived from a VHT
Compressed Beamforming report with Feedback Type subfield
indicating MU in the corresponding VHT Compressed Beamforming
frame sent by the STA.

Set to 0 for Nss = 1
Set to 1 for Nss = 2
...
Set to 7 for Nss = 8

Change-Id: I60cb7259df3986c0356666a357b8a4ef575b7ca4
CRs-Fixed: 973411
2016-04-13 21:51:23 -07:00
Krunal Soni
ee57247afe qcacld-3.0: Fix follow-up comments for csa changes in STA/CLI case
Move cdf/cds module related operation from
lim_handle_hw_mode_change_on_csa to cdf_handle_hw_mode_change_on_csa
to keep majority of cdf/cds operation in one place.

Change-Id: I5af9ee941f8430be49cf2e467f9eac77dc09dde4
CRs-Fixed: 972184
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
5c19dc5f8e qcacld-3.0: Set hw mode during channel switch in STA/P2P-CLI case
Set the hw mode, if needed, during channel switch in STA and
P2P-CLI scenario. The STA/P2P-CLI on receiving the channel change
event may need to do a hw mode change to get the best out of the
hw capabilities.

e.g.1, In a STA+SAP concurrency, the STA and SAP are doing SCC on
channel 6. When the STA interface receives a channel event for
channel 36, it is better the driver moves to a DBS scenario.

e.g.2, In a STA+SAP concurrency, the STA is on channel 6 and the
SAP is on channel 36. When the STA interface receives a channel
event for channel 36, it is better the driver moves from a DBS
scenario to a SCC scenario.

For MCC upgrade, the following steps are taken
1. Opportunistic timer is started
2. vdev restart is initiated on the new channel
3. PM will check if MCC upgrade can be done on timer expiry

For DBS downgrade, the following steps are taken
1. PM will initiate HW mode change to DBS right away
2. vdev restart is initiated on the new channel

Change-Id: I202842bf28c3117e8cc91954cdfd3b39a0062f4e
CRs-Fixed: 972184
2016-04-13 21:51:23 -07:00
Satish Singh
107e6a36c1 Release 5.1.0.3G
Rebase of 5.0.0.163 onto 5.1.0.2G

Change-Id: If244ee2a2bc26a8b4387c89d7bce965c00497630
CRs-Fixed: 688141
2016-04-13 21:51:23 -07:00
Houston Hoffman
c7c72a8cc9 qcacld-3.0: Prevent runtime suspend when recovery initiated
qcacld-2.0 to qcacld-3.0 propagation

When self recovery initiated, CRASH_INJECT command is sent to
firmware. If firmware crash doesn't reach the host in time then
RuntimePM may kick in and try to suspend the PCIe link. At this
time, firmware might already been crashed just that host missed
the interrupt. Add the logic to prevent the Runtime suspend when
initiating the recovery so that host driver doesn't attempt the
suspend which may not go through and cause stability issues.

Change-Id: Ie8d5fc6aa08e4864fa5f03119c25037f5aeb5cec
CRs-fixed: 924538
2016-04-13 21:51:23 -07:00
Krishna Kumaar Natarajan
164e6b0c7b qcacld-3.0: Merge extended capability IE in beacon/probe resp template
qcacld-2.0 to qcacld-3.0 propagation.

Merge extended capability coming from hostapd and remove it from
extra IE before sending beacon/probe response template to firmware.

Change-Id: Iae50bbf1f70fd280f3366a89e58ad8f2c729720c
CRs-Fixed: 943078
2016-04-13 21:51:23 -07:00
Krishna Kumaar Natarajan
70133f0f37 qcacld-3.0: Fix double free of delete sta params
Fix double free of delete sta params by adding appropriate
check in wma_delete_sta.

If the synchronization feature is enabled, memory will be freed
in the wma_peer_delete_handler else memory will be free in
wma_delete_sta.

Change-Id: I40e664f10766faa8a20e9089f1c6b95d490b8658
CRs-Fixed: 971280
2016-04-13 21:51:23 -07:00
Krishna Kumaar Natarajan
608291e13b qcacld-3.0: Pass correct data length in oem data response msg
Add data length information in oem data response messages. Currently
maximum response size is passed to upper layers.

Change-Id: Id74d44e03755af9a5402e5409ee5f6b5e7abbb7c
CRs-Fixed: 942260
2016-04-13 21:51:23 -07:00
Prakash Manjunathappa
6eae0cd539 qcacld-3.0: Enable CE classification by default
Enables the CE classification by default.

Change-Id: Iabe2b58e41e30a449bebaa16daf8f869b2634b82
CRs-Fixed: 973502
2016-04-13 21:51:23 -07:00
Deepak Dhamdhere
4fc968d17f qcacld-3.0: Remove WLAN_FEATURE_VOWIFI_11R option from WMA
Conditional compilation option WLAN_FEATURE_VOWIFI_11R is always
defined in cld3.0 and underlying code is permanent in the driver.
Hence, remove #ifdef WLAN_FEATURE_VOWIFI_11R check from WMA source
code.
Remove -DWLAN_FEATURE_VOWIFI_11R compilation flag from Kbuild.

CRs-Fixed: 960105
Change-Id: Idbcea2faf9aa31ef62920ef322d6de61378198a6
2016-04-13 21:51:23 -07:00
Rajeev Kumar
b08f39cc4c qcacld-3.0: Add error log in wow periodic pattern handler
WoW periodic transmit pattern handler has no error log if
given input format is wrong. Add error log message to indicate
input is wrong and suggest the correct input format.

Change-Id: Ie3a37c7e1a9b9fd8a974c68a5cc7456b1b622168
CRs-Fixed: 973006
2016-04-13 21:51:23 -07:00
Rajeev Kumar
dca5f81346 qcacld-3.0: Extend wow debug fs support to all interfaces
Currently WoW debug fs support is limited to 1st interface.
FW supports wow and periodic pattern generation on all
interface types. Extend wow debug fs support to all interfaces.

Change-Id: I83deb1845f921ecf8c5422786e025a051ee3c561
CRs-Fixed: 973003
2016-04-13 21:51:23 -07:00
Varun Reddy Yeturu
28925b4c24 qcacld-3.0: LFR3.0: Fill Self MAC Address properly
The self MAC address should be filled from the previous
session in PE and has to be passed to WMA which is used
while creating the new PEER.

CRs-Fixed: 973463
Change-Id: If7f0d4d8400fd8dfcafb08e3795e434621b67a6d
2016-04-13 21:51:22 -07:00
Varun Reddy Yeturu
9044489d18 qcacld-3.0: Improve default logging for LFR3
Log the improtant messages with respect to roam synch propagation
by default so that they appear in the kernel logs and give an
hint of roaming. Also ensure not to log too much.

CRs-Fixed: 972498
Change-Id: Ia0bd7c9960a29275f872a9ec18173b8c5a08539a
2016-04-13 21:51:22 -07:00
Varun Reddy Yeturu
30bc42cbe8 qcacld-3.0: LFR2.0 Ignore STA kickout when roaming is in progress
If roaming is in progress, then there is a good chance to connect
to a better AP very soon, so ignore the sta kickout event that is
received from the firmware.

CRs-Fixed: 947880
Change-Id: I9197ed09a40d9acb706d1bfa535a4eb292a1af74
2016-04-13 21:51:22 -07:00
Varun Reddy Yeturu
16e8f0114e qcacld-3.0: Do not send replay counter for CCKM
Do not include replay counter attribute when roaming
is done for CCKM authentication type. For 11R and CCKM
roaming, the re-association frame carries additional
IE's which help cut down the Key exchange post
association. Hence there would be no EAPOL exchange
and hence it is not needed to include the replay
counter attribute to the supplicant after roaming.

CRs-Fixed: 972486
Change-Id: Ib861bdc91e949605788a19df4a706e6544dd4c73
2016-04-13 21:51:22 -07:00
Varun Reddy Yeturu
d521600a10 qcacld-3.0: Change channel bonding mode after roaming
The CB mode could get changed after roaming since the non-AP STA
can roam to an AP which has a different channel bonding mode.
So, derive the CB mode from the IE's and accordingly set in the
connected profile.

CRs-Fixed: 972479
Change-Id: I01daa88d69397fb0e88615656903c43ed623ed38
2016-04-13 21:51:22 -07:00
Krunal Soni
8c37e32104 qcacld-3.0: Fix to make common change intf api for ibss/sta/p2pcli
Current code is using seperate change interface for IBSS and
STA/P2PCLI.

Fix the API such that IBSS/STA/P2PCLI all can use same API.

Change-Id: I7a1d9fa3ef42091fcb7f71d95b604e3dceb8da50
CRs-Fixed: 973626
2016-04-13 21:51:22 -07:00
Krunal Soni
9be5eaa438 qcacld-3.0: Remove wma_recreate_ibss_vdev_and_bss_peer logic
wma_recreate_ibss_vdev_and_bss_peer is obsoleted API and no longer
needed. Remove this API as part of clean-up efforts.

Change-Id: I277e775b7f44ca5aa05129d45e80c98fe1a53753
CRs-Fixed: 973626
2016-04-13 21:51:22 -07:00
Krunal Soni
f988222e04 qcacld-3.0: Fix memory leak while cleaning up scan filter
Memory leak observed while cleaning up scan filter in SME module.

Change-Id: Ic4bbf622f1950d1ed6323a45504e4ad57fbf3b09
CRs-Fixed: 973626
2016-04-13 21:51:22 -07:00
Deepak Dhamdhere
641bf32b43 qcacld-3.0: Remove WLAN_FEATURE_VOWIFI conditional compilation
Remove #ifdef WLAN_FEATURE_VOWIFI from host driver source code.
It has alwasys been defined in Kbuild and underlying features
will be permanent in cld3.0. Those features are 11r radio
resource measurement, beacon report, link report, neighbor
report and power constraint.

Please note that WLAN_FEATURE_VOWIFI_11R is used for different
purpose and it is not removed in this change.

CRs-Fixed: 958729
Change-Id: Icd80e9cce08c4662e86ccda94491c1fc22c5756d
2016-04-13 21:51:22 -07:00
Deepak Dhamdhere
262d95a523 qcacld-3.0: Remove WLAN_FEATURE_VOWIFI_11R option from MAC
Conditional compilation option WLAN_FEATURE_VOWIFI_11R is always
defined in cld3.0 and underlying code is permanent in the driver.
Hence, remove #ifdef WLAN_FEATURE_VOWIFI_11R check from MAC source
code.

CRs-Fixed: 960105
Change-Id: Iae95c169c7e78310d18cbf9ae097501d4c66230c
2016-04-13 21:51:22 -07:00
Satish Singh
e27e2aa2c0 Release 5.1.0.2G
Rebase of 5.0.0.162 onto 5.1.0.1G

Change-Id: Ice0a1557e23a66b94d278879337ea10769b894d1
CRs-Fixed: 688141
2016-04-13 21:51:22 -07:00
Tushnim Bhattacharyya
3e2e935a03 qcacld-3.0: Fix typo on gEnableM2MLimitation config
Fix a typo on default values of gEnableM2MLimitation config parameter

Change-Id: I730dd10118777359fe644d5c5c9f1671b5d185bb
CRs-fixed: 922181
2016-04-13 21:51:22 -07:00
Naveen Rawat
ada5faca16 qcacld-3.0: Fix names for lim_process_assoc_req_frame.c
This patch fixes:
1) Fixes variable names as per linux kernel coding guidelines.
2) Removes PELOG definitions.
3) Fixes few of long debug prints.
4) Fixes function headers
for file lim_process_assoc_req_frame.c. This patch is then used as
base for reindentation of function lim_process_assoc_req_frame()

Change-Id: I5d4a39356b4555789ca9119f54a54766594b26c3
CRs-Fixed: 824222
2016-04-13 21:51:22 -07:00
Chandrasekaran, Manishekar
abc98d1483 qcacld-3.0: Log the channel switch IEs to debug any related issue
Log the channel switch and extended channel switch information
element along with the wide channel bandwidth sub element to
debug any channel switch related issues. Since the IEs are
populated only during channel switch, this logging of the IEs
from the beacon should not have any impact in performance.

Change-Id: I7a7e0dcf45f39fb6e4d049dde0b02289bde1d4f7
CRs-Fixed: 972007
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
5738eb0fe8 qcacld-3.0: Fix extraction of invalid PE session entry during Nss update
Ensure that the PE session is extracted using the SME session id during
Nss update request. The Nss update request carries the SME session id
and not the PE session id. Fixing the implementation by invoking
pe_find_session_by_sme_session_id() to extract the PE session entry
using the SME session id, instead of pe_find_session_by_session_id()
which uses the PE session id.

Change-Id: If388fa917635c7a536d21fcfb664b081babd5c2a
CRs-Fixed: 970802
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
ce7ab08669 qcacld-3.0: Update the policy manager table during channel switch
Update the policy manager table during channel switch in case of
STA/CLI/SAP/P2P-GO mode. The vdev (re)start response carries the
updated vdev parameters such as the new MAC to which the vdev
connection moved to etc.

Change-Id: I55a56acdba8234e09d1439698b2b13751d4e9b2d
CRs-Fixed: 970794
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
8104abd5a9 qcacld-3.0: Restrict channel switch only to the intended interface
Ensure that application triggered channel switch impacts only the
interface of interest. eSAP_DFS_CHNL_SWITCH_ANNOUNCEMENT_START
gets used for both radar detected channel switch and application
triggered channel switch using ioctl or nl commands. On radar
detected channel switch, if radar was detected by one of the SAP
interface, all SAP interfaces in the driver would vacate the
channel. In application triggered channel switch, only the
interface of interest should vacate the channel.

Change-Id: I8eee8bde89ae44eec31c1bd35a99a78e517b4a5e
CRs-Fixed: 969323
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
e716c40025 qcacld-3.0: Set hw mode during channel switch in SAP/P2P-GO case
Set the hw mode, if needed, during channel switch in SAP and
P2P-GO scenario.

Change-Id: Icef31277465b3a298695ccefb856d9cad8a16108
CRs-Fixed: 969307
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
6639d325cb qcacld-3.0: Move DBS opportunistic timer out of HDD context
Move the DBS opportunistic timer out, from the HDD context
to the CDS context.

Change-Id: I57cb3010bc1ba4ce3736edc6c4c1f4c32f226144
CRs-Fixed: 970163
2016-04-13 17:58:16 -07:00
Houston Hoffman
c45db899eb qcacld-3.0: Prevent runtime suspend untill clean-up completes
qcacld-2.0 to qcacld-3.0 propagation

When runtime suspend fails because of wma_suspend_req() not
completing in time, PM runtime workqueue posts resume request to
MC thread to clean-up. If MC thread is busy or slow in processing
resume request and after the timeout Runtime PM framework posts
another suspend request then there may be race condition between
MC thread processing resume request (Or even suspend request) and
Runtime PM workqueue posting subsequent suspend request.
Synchronize subsequent suspend request by not allowing the
runtime suspend till resume requests completes in MC thread
context.

Change-Id: Ie9aaf72fbced41f8d23640b9032a3c2236dc6826
CRs-fixed: 921373
2016-04-13 17:58:16 -07:00
Rajeev Kumar
aea89633d6 qcacld-3.0: Set wow enable parameter in WMA properly
WoW is getting enabled even in disconnected state when
PNO, EXT_SCAN or LPASS is not enabled. Enable wow only
when one of interface is in beaconing mode, connected
state or PNO/EXT_SCAN/LPASS is enabled.

Change-Id: I30226700844c9b4adbe3a0659a270b99dc6e66f8
CRs-Fixed: 971738
2016-04-13 17:58:16 -07:00
Satish Singh
88fdf825d4 cld-3.0: Incremental CLD3.1 Release 5.1.0.1H
Incremental CLD3.1 Release on top of 5.1.0.1G with
data path fix.

Change-Id: I3838483c0e1c7e3b698433fa74563e535e7cd309
CRs-Fixed: 688141
2016-04-12 14:04:02 -07:00
Dhanashri Atre
50141c53a3 qcacld-3.0: Register vdev before registering peer
Ensure that the per vdev rx callback is registered before
registering the peer. The peer registration function may
try to flush the rx frames so we need to ensure that the rx
callback is registered before it is called.

Change-Id: Ibd1d73d89105bbc3f9d29fa2c64e9f515d4b0da5
CRs-Fixed: 1000834
2016-04-07 16:28:28 -07:00
Vishwajith Upendra
e068982a92 cld-3.0: Incremental CLD3.1 Release 5.1.0.1G
Incremental CLD3.1 Release 5.1.0.1G after relocating
the driver development to new branch and path.

Change-Id: Ib75f16fb56ab6a9306f09377bb3df2094d0fc516
CRs-Fixed: 688141
2016-04-04 09:59:24 -07:00
Vishwajith Upendra
59e44b029c cld-3.0: Incremental CLD3.1 Release 5.1.0.1F
Incremental CLD3.1 Release 5.1.0.1F after relocating
the driver development to new branch and path.

Change-Id: Ic34b6e6f810f1ab32eaefe0b624b4183b86a43cf
CRs-Fixed: 688141
2016-04-01 17:01:08 -07:00