Commit Graph

571 Commits

Author SHA1 Message Date
Houston Hoffman
c9f2a429a0 qcacld-3.0: Record polled completion processing
Since the wmi tx copy engine's completions can be
processed in both its tasklet context and through
ce_per_engine_servicereap on a polled basis, we
wish to be able to distinguish the when each is used.

Change-Id: I5892eeeab4e1c7e4c35b958d98db7ad0293ec24f
CRs-Fixed: 951569
2016-02-08 15:50:35 -08:00
Houston Hoffman
d93b804d66 qcacld-3.0: Make ce_init_ce_desc_event_log not static
Fix a compilation error for perfbuild.

Change-Id: I26950eddb8c0f0835cf1faf145f7997a601f2339
CRs-Fixed: 955059
2016-02-08 15:50:35 -08:00
Vidyullatha Kanchanapally
dcd3b5a3a2 qcacld-3.0: Post message to SME upon DelBSS/DelSta failure
qcacld-2.0 to qcacld-3.0 propagation.

This fix ensures that a response message is sent back to SME if
a DelBSS/DelSta failure is returned by firmware, without which SME
command can get stuck.

Change-Id: I42425809ef93d447af0b34aee05e601e30a18ccc
CRs-Fixed: 810491
2016-02-08 15:50:35 -08:00
Ryan Hsu
cb118cf9df qcacld-3.0: hdd: Add EGAP interface and ini configuration
qcacld-2.0 to qcacld-3.0 propagation

This change introduces 4 ini parameters to configure to firmware
    - gEenableEGAP:   forcely overwrite firmware feature capb
    - gEGAPInactTime: inactivity timeout value
    - gEGAPWaitTime:  wait timeout value before enter EGAP mode
    - gEGAPFeatures:  the feature flag firmware would support
        WMI_AP_PS_EGAP_F_ENABLE_PHYERR_DETECTION       0x1
        WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_PS_STATE    0x2
        WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_INACTIVITY  0x4

Integrate the hdd_wlan_kick_green_ap to execute the Green AP
and EGAP features, depending on the ini and also the tgt_cfg
capability flag,

Change-Id: Ic5db3990aa0a028ed700f6e2f60a11e75c0f1ed1
CRs-fixed: 929063
2016-02-08 15:50:35 -08:00
Ryan Hsu
3c8f79f22c qcacld-3.0: Add Enhanced Green AP interfaces and event handler
qcacld-2.0 to qcacld-3.0 propagation

The firmware reports the Enhanced Green AP (EGAP) service
(EGAP_SERVICE) feature flag to indicate the support of EGAP
feature.

The EGAP is to offload the legacy Green AP feature to firmware
in order to aggressively enable the Green AP other than wait
for host control latency.

Add the knob to hold the EGAP infomation when firmware support
it, also populate the information up to hdd target config.

And then add a SME interface to allow hdd layer to configure
the EGAP configuration.

Change-Id: I9be927369e7cf07731f8e9ba49d65224e05c340b
CRs-fixed: 929063
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
ecce974317 qcacld-3.0: Remove #ifdef FEATURE_WLAN_LFR from SME
The condition #ifdef WLAN_FEATURE_LFR is used to include some of
the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef FEATURE_WLAN_LFR compiler flag from SME so that the code
will always be compiled in.

CRs-Fixed: 936683
Change-Id: I86b9e3dee6b92c89a54de6df769800c31fc3ad17
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
42b5c11dd8 qcacld-3.0: Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING from SME
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.

Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from SME
and CSR so that the code will always be compiled in.

CRs-Fixed: 936683
Change-Id: I63a43b7cfd9360341d4ac4126cbf9fc8ac89071a
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
9d1615c29b qcacld-3.0: Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING from HDD
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.

Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from HDD so
that the code will always be compiled in.

CRs-Fixed: 936683
Change-Id: I777d48f26aea36383747281bd4fef2eadc7beefb
2016-02-08 15:50:35 -08:00
Abhishek Singh
e068085f29 qcacld-3.0: Delete preauth session in case of deauth from host
qcacld-2.0 to qcacld-3.0 propagation

The preauth session is not deleted if the deauth is from host
(eCsrForcedDeauth).
Adds the check to delete the preauth session and stop the
preAuthReassocIntvlTimer timer, in case of deauth from host.

Change-Id: I181344b0f3a41ff5c3a77f30b4c8cf80557c23b5
CRs-fixed: 649521
2016-02-08 15:50:35 -08:00
Ganesh Kondabattini
59a4a9597f qcacld-3.0: set TX_USAGE flag for bss key in AP mode.
qcacld-2.0 to qcacld-3.0 propagation

Set TX_USAGE flag for default key (BSS key) when using WEP40 or
WEP140 encryption in AP mode.

Change-Id: Icb4411410d84b05a47f193ffbd632445f736246e
CRs-Fixed: 940725
2016-02-08 15:50:35 -08:00
Abhishek Singh
1e39fc24ee qcacld-3.0: If RSN IE is present ignore WPA IE to get cbmode
qcacld-2.0 to qcacld-3.0 propagation

if AP has RSN IE and supports AES, driver goes on to check
WPA IE and if it contains only TKIP in unicast cipher, it
sets cbmode to 0 (20Mhz).
Added a check to ignore the WPA IE if RSN IE is present and take
decision on cbmode with respect to RSN IE only.

Change-Id: I4eaf8a2d6a9f3a43e74e606045af995fbaa800ad
CRs-Fixed: 739345
2016-02-08 15:50:35 -08:00
Sreelakshmi Konamki
3b8ba61288 qcacld-3.0: Make data length as zero whenever we free the data
qcacld-2.0 to qcacld-3.0 propagation

In limSendSmeJoinReassocRsp API, assoc req, assoc rsp, ricData, tspecIes
are sent to SME layer if corresponding pointer in psessionEntry is
not NULL. There is bug here where the pointer is NULL but the length is
non zero. Because of this data is copied at incorrect offset and data
at SME layer is not at right offset leading to corrupted IE in
next re-assoc request.

Fix this by making length as zero whenever we free the data.

Change-Id: I4ba4ff49e56bc2f2758d869eae8ff9370b0c0489
CRs-Fixed: 932712
2016-02-08 15:50:34 -08:00
Ganesh Kondabattini
d6641d8473 qcacld-3.0: Transmit tdls mgmt frames only for STA in authenticated state
qcacld-2.0 to qcacld-3.0 propagation

Before transmitting the tdls mgmt frames the STA should be
connected to AP and it should be in authenticated state.

Change-Id: Id79d4e6ad55a6b80e2fac2369f48bedf6551bcd6
CRs-Fixed: 893784
2016-02-08 15:50:34 -08:00
Sreelakshmi Konamki
c88f537ccb qcacld-3.0: Add missing MTRACE log in HDD
qcacld-2.0 to qcacld-3.0 propagation

Currently, MTRACE logs are not captured for the events posted
from SME to HDD. So, add missing MTRACE log in hdd_smeRoamCallback()
and also add missing eRoamCmdStatus enums in get_eRoamCmdStatus_str().

Change-Id: I26ef8c651b7b873939341b643056ff977a40ea19
CRs-Fixed: 855875
2016-02-08 15:50:34 -08:00
Sreelakshmi Konamki
39acb13377 qcacld-3.0: Changes in Protocol Stack logs from numerical values to string
qcacld-2.0 to qcacld-3.0 propagation

As a part of logging enhancement,to make logs more
interactive, changed pmcstate,scanType etc from
numerical values to human readable string in
Protocol stack.

Change-Id: I589088c2c5fd0afa106a1d0773a2ff525b0dd083
CRs-Fixed: 638916
2016-02-08 15:50:34 -08:00
Sushant Kaushik
465560671b qcacld-3.0: Set peer staId for management frame.
qcacld-2.0 to qcacld-3.0 propagation

Currently for sta mode while sending management
frames such as auth, assoc, reasssoc,deauth,
diassoc driver sends selfStaId. This results
in frames going on the air with the self data
rate and not the data rate supported by peer.
As a part of fix, make sure that the peerStaId is
used for sending above management frames.

Change-Id: Ia368ff13aed1002600f5fb3ad55c3d20106d586a
CRs-Fixed: 826260
2016-02-08 15:50:34 -08:00
Abhishek Singh
96bda8e0e3 qcacld-3.0: Do not send DEL BSS to FW if ADD BSS fails
qcacld-2.0 to qcacld-3.0 propagation

Even though ADD_BSS fails the driver tries to send DEL BSS to
firmware which will crash upon receiving DEL BSS.

To avoid this crash do not send DEL BSS to Firmware if ADD BSS
fails and just do cleanup.

Change-Id: Ieabf241c8277ae76bb5f491f9d8a2b783d8ea47e
CRs-Fixed: 929249
2016-02-08 15:50:34 -08:00
Vidyullatha Kanchanapally
3554e4e25f qcacld-3.0: Error handling in Roaming code #2
Qcacld-2.0 to qcacld-3.0 propagation.

This fix contains the following changes
1. Ensure rx mgmt packet is freed in all cases.
2. Fail preauth if the pre-auth response timer
   failed to start.
3. Correct some logging and remove unnecessary code.

Change-Id: Icd3a12ba8878de5bad7ff1125ba8be123dfae4eb
CRs-Fixed: 808756
2016-02-08 15:50:34 -08:00
Krishna Kumaar Natarajan
03cc3860e6 qcacld-3.0: Check for session validity in pe_delete_session
Check if PE session passed to pe_delete_session is valid
before proceeding with the deletion.

Change-Id: Icfe54e8bc286f14ea757b0619c067cc74ce87492
CRs-Fixed: 948924
2016-02-08 15:50:34 -08:00
Krishna Kumaar Natarajan
48de7dedc8 qcacld-3.0: Initialize PMF timer in create session
Initialize PMF comeback timer in PE create session.

Currenlty PMF comeback timer is initialized in join request and
destroyed in delete session. In offload cases, PE session is
created without join request resulting in destruction of timer
which was not initialized. Add timer initialization in
pe_create_session.

Change-Id: I3dba6713b2bf64cc69f0f2d8322293ff763c0989
CRs-Fixed: 948924
2016-02-08 15:50:34 -08:00
Kiran Kumar Lokere
37d3aa2c93 qcacld-3.0: Log the rssi info from FW in sta kick out event
qcacld-2.0 to qcacld-3.0 propagation.

Log the RSSI info of the disconnect if the STA disconnection is
due to STA kick out event from FW.

Change-Id: I0fad3f8d0e7990f4211b7840bed7605a4b97f3cb
CRs-Fixed: 874197
2016-02-08 15:50:34 -08:00
Krishna Kumaar Natarajan
4d090352a5 qcacld-3.0: Check tdls off-channel passed is not a DFS channel
qcacld-2.0 to qcacld-3.0 propagation

Add check to validate if non-DFS channel is passed as
TDLS off channel via driver command and INI config.

Change-Id: I6696c47d438bdcc1b8733241e60ca5c52fb1022f
CRs-Fixed: 915972
2016-02-08 15:50:34 -08:00
Kiran Kumar Lokere
a3e5e0b538 qcacld-3.0: do not process HT IE change if RoC is in progress
qcacld-2.0 to qcacld-3.0 propagation.

Ignore HT IE change if RoC is in progress because as
part of HT IE change we will try to change the channel
parameters which use the same callback as RoC. So if
we try to change the channel parameters if RoC is in
progress we will overwrite the callback causing problems
in the upper layers which are expecting a notification.

Change-Id: I6bace6dd2bd40728ece94e3efe59f3e7038a4e6a
CRs-Fixed: 710027
2016-02-08 15:50:34 -08:00
Jeff Johnson
d399e90f96 qcacld-3.0: Relocate key adapter fields
This is a qcacld-2.0 to qcacld-3.0 propagation.

A crash was observed internally where wlan_hdd_ipv6_changed() was
accessing unmapped memory.  This function has logic which looks at key
fields in the netdev's private data area to make sure the netdev
belongs to this driver before it further utilizes the netdev.  The
problem with this logic is when it is invoked with non-wlan netdevs,
if those netdevs were created with small private data areas, then the
offsets at which the key fields would exist in the wlan netdev may
fall outside the memory mapped for those other netdevs.  In order to
avoid accessing unmapped memory in those cases, relocate the key wlan
netdev fields to the beginning of the wlan adapter structure.

Change-Id: Idb830fd18e5724a684505c9d110f6f1de5622eac
CRs-Fixed: 946373
2016-02-08 15:50:34 -08:00
Jeff Johnson
19caeb103e qcacld-3.0: Relocate init of tx_action_cnf_event
HDD has a completion variable which is used to synchronize the sending
of an action frame with the send confirmation.  Proper use of a
completion variable requires a specific sequence of steps:
- Initialize the completion variable
- Perform the activity that has asynchronous processing
- Wait on the completion variable

Currently HDD does not correctly follow this model for sending action
frames; it incorrectly initializes the completion variable after it
has invoked the UMAC function which sends the frame.  This creates a
race condition whereby the TX could complete and set the completion
variable before the completion variable is initialized, and then when
the completion variable is initialized the fact that the activity has
already completed will be lost.

In order to prevent this race condition and conform to the sequence of
steps required for proper completion variable usage, relocate the
initialization of tx_action_cnf_event.

Change-Id: Ibc54b8dd62c3a828d1a43922d89e7970af325f6e
CRs-Fixed: 950132
2016-02-08 15:50:34 -08:00
Jeff Johnson
f6358f1060 qcacld-3.0: Remove OEM DATA request callback support
qcacld-2.0 to qcacld-3.0 propagation.

The SME OEM DATA request API supports a callback function pointer,
however this callback functionality is obsolete.  Therefore remove
this functionality.

Change-Id: Id06910841ad625412ba1f3222407e471f4d7edd7
CRs-Fixed: 911404
2016-02-08 15:50:34 -08:00
Chandrasekaran, Manishekar
34e325a210 qcacld-3.0: Remove usage of fixed broadcast sta id for IBSS
Remove the usage of fixed broadcast sta id of 1 for IBSS.
Fixed broadcast std id of 1 was getting used for IBSS since
no concurrency was supported for IBSS earlier and sta id 1
was always used as broadcast sta id. Now with concurrency
being allowed with IBSS, this fixed broadcast sta id cannot
be used. Make the broadcast sta id dynamic.

Change-Id: I79222e276fbdd41a8938a3a26e58af9335f17ade
CRs-Fixed: 953523
2016-02-08 15:50:34 -08:00
Chandrasekaran, Manishekar
12a818a9a6 qcacld-3.0: Wait for MC thread clean-up during IBSS leave
Ensure that wait for MC thread clean-up happens as part
of IBSS leave so that by the time upper stack calls the
change interface, we are all set to proceed further.

CRs-Fixed: 949956
Change-Id: Ib0ee79fe38cbf3c462bd8157c4e014c086f5c29f
2016-02-08 15:50:34 -08:00
Krunal Soni
95a6dbc2a7 qcacld-3.0: Don't remove p2p device adapter when SAP comes up
With current code, as soon as change interface command comes to
convert interface type to AP, it removes p2p device adapter which
is not required. In new platform, various concurrencies are supported
which includes SAP+GO, SAP+STA+GO, and so on. To make these
concurrencies work properly, no longer remove the p2p device adapter
when SAP comes up.

Change-Id: Icb1729f25e0604e0c342a136d9b4cf332e50d7c8
CRs-Fixed: 953788
2016-02-08 15:50:34 -08:00
Krunal Soni
80aabd4583 qcacld-3.0: Do not allow STA scan on IBSS channel's band
As per the requirement when IBSS connection co-exist with STA
connection and scan request is coming from STA adapter,
don't include those channels which fall in same band as IBSS
channel's band.

Change-Id: Ifb42ea6b463bd5020bf544eee504b9c3ceefcfc2
CRs-Fixed: 953788
2016-02-08 15:50:34 -08:00
Tushnim Bhattacharyya
da030cbca6 qcacld-3.0: dump IBSS concurrency information
Dump IBSS related concurrency information

Change-Id: Id69bfa3681f38f9af376590f6bcc668f146ed9e8
CRs-fixed: 941652
2016-02-08 15:50:34 -08:00
Krunal Soni
7bc4f912e9 qcacld-3.0: Add support for IBSS+SAP
Provide necessary code changes to support IBSS+SAP concurrency for
emulation platform only.

Change-Id: I76dc023bd48ee79ba706f5a7009b1d8462c6b712
CRs-Fixed: 953796
2016-02-08 15:50:33 -08:00
Krunal Soni
2c68f23ccc qcacld-3.0: add support for IBSS+STA concurrency
Make necessary changes to support IBSS+STA concurrency for SCC and
2G+5G MCC. Don't support intraband MCC due to known limitation
for this specific concurrency.

Change-Id: I325b5f51abeee3da0a75f90723c8b882f71dbef2
CRs-Fixed: 953788
2016-02-08 15:50:33 -08:00
Satish Singh
64740919bf Release 5.0.0.152
Release 5.0.0.152

Change-Id: I5fbaf62af2831499f39274f3ffdad0979b467d68
CRs-Fixed: 688141
2016-02-08 15:50:33 -08:00
Satish Singh
e7f774d4da Release 5.0.0.151 QCACLD3 WLAN Driver
Release 5.0.0.151 QCACLD3 WLAN Driver

Change-Id: Icc3cf83583f5131f01f9ef7a0265409af71c06d0
CRs-Fixed: 688141
2016-02-08 15:29:50 -08:00
Mukul Sharma
a748fbb77b qcacld-3.0: while processing rx mgmt frame get vdev using bssid
During processing of rx mgmt frame, host try to get the
vdev using destination address but for BC frame it can't
find the vdev and iface too, so desired functionality will
not work.

As a part of this fix, host is getting vdev using bssid.

Change-Id: I52884faffc8c5fc8c2f9dcb4308e6f0739f80fe7
CRs-Fixed: 945583
2016-02-08 15:29:46 -08:00
Kiran Kumar Lokere
92d11bf978 qcacld-3.0: Fix the Rx data rate issue in 11b mode
Check for VHT caps in vendor specific IE only if the dot11mode
is set to 11ac or auto, so that the vht caps are included in
association reuest frame only if the dot11 mode is 11ac.

Change-Id: If72117e5a46a754ae602dabd596a2ad8aac33d2e
CRs-Fixed: 952134
2016-02-08 15:29:39 -08:00
Kiran Kumar Lokere
5aeae9a956 qcacld-3.0: Fix the crash in wlan re-initialization
Perform cfg download before the SME config update since the
SME config update operation accesses the cfg database.

Change-Id: Ic2d5b6d192ed164b20011b3eeaea6126951b87e8
CRs-Fixed: 948896
2016-02-08 15:29:35 -08:00
Manikandan Mohan
fba8e0dc26 qcacld-3.0: Add IPA UC WDI 1.0 backward compatibility
Update qcacld-3.0 for IPA UC WDI 1.0 backward compatibility for
Rome WIFI device.

Change-Id: I33084efd6dd3434d1f6baec49de43fab75c63e7f
CRs-fixed: 952114
2016-02-08 15:29:31 -08:00
Manikandan Mohan
22b8372341 qcacld-3.0: Fix MDM compilation errors
Fix compilation errors in MDM features and when compiled against
MDM kernel

Change-Id: Iee8fb5f88bfff22117e087f8879d4caf50a945c1
CRs-fixed: 952116
2016-02-08 15:29:28 -08:00
Jeff Johnson
32ad1749ce qcacld-3.0: Prepare HDD for 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. Due to the large
number of changes required, this will have to be done in a phased
approach, with conversions occurring one source file at a time.

One potential problem that could occur, in the absence of any
protection, is that once a particular source file has been converted
to the unified set of logging APIs, someone could introduce new code,
either as a new feature or as a change propagation from qcacld-2.0,
which re-introduces invocations of legacy logging APIs.  In order to
help prevent this, add conditional compilation to the hddLog() API so
that it will not be available to source files which have been
converted to the unified set of logging APIs.  This will cause a
compilation error if hddLog() is called from source files which have
been converted.

Once all of the source files have been converted, the hddLog() macro
itself can be removed from the source code.

Change-Id: I5debb0eb9cd89c08fdfcc4fc117776160ed34501
CRs-Fixed: 949529
2016-02-08 15:29:22 -08:00
Samuel Ahn
563506ac0f qcacld-3.0: Fix transmitting in OCB mode
qcacld-2.0 to qcacld-3.0 propagation

When transmitting a packet in OCB mode, the station does not need to
be associated to an access point.

CRs-Fixed: 863620
Change-Id: I71b7ad6afa10321a7c7cde597a727bed7454f644
2016-02-08 15:28:11 -08:00
Hanumantha Reddy Pothula
4532302d70 qcacld-3.0: Don't process TX frame in unauthenticated state
qcacld-2.0 to qcacld-3.0 propagation

Process TX frame only when STA state is in Connected state
otherwise drop the frame.

Change-Id: Id384bb4a11bc2783b8017a8b4fac67ba4f708cb5
CRs-Fixed: 778274
2015-12-28 22:35:56 -08:00
Ryan Hsu
6139d2de9d qcacld-3.0: Fix the incorrect mcs rate index conversion
qcacld-2.0 to qcacld-3.0 propagation

Driver would get the tx rate info from firmware and converts it
to mcs index or legacy rate for userspace.

The problem here is when firmware creates a valid ratesets,
it includes all the subset of lower grade rates.
e.g

 - VHT80 would include VHT80/VHT40/VHT20, VHT40 include VHT40/HT20
 - HT40 would include HT40/HT20
 - NSS2 would include NSS2 and NSS1

So that firmware would not only use one rateset, but would use all
other valid rates, the fix is to go through all other possibilities
to make sure the rate look up can find the correct mcs index.

Change-Id: I5df9059b73954951c4adec56002a3eba80915752
CRs-fixed: 936078
2015-12-28 22:35:56 -08:00
Ryan Hsu
d7e6fc7aa6 qcacld-3.0: Clean up inappropriate HDD API in CDS
Clean up the hddLog API and CDF_MODULE_ID_HDD with CDS_TRACE
misused in CDS module.

Change-Id: I786fa1ba216b42a6218f7eadba60ee7e5e82ebe5
CRs-fixed: 948327
2015-12-28 22:35:56 -08:00
Srinivas Girigowda
fe3e5b34cf qcacld-3.0: Process WOW wake up event in the tasklet context
This is a qcacld-2.0 to qcacld-3.0 propagation.

Currently WOW wake up event is processed in work thread which may be
delayed to schedule. Directly complete the event in tasklet in order
to proceed it in time. Also make sure the WOW wake up event handler
is in atomic context.

Change-Id: Ie6015d39321c7759b35f05acc7833ef8974c0157
CRs-Fixed: 900629
2015-12-28 22:35:56 -08:00
Houston Hoffman
dee0d5374c qcacld-3.0: Record CE interrupt and tasklet entry/exit
Record CE interrupt in CE event history since the interrupts
may come separately for the different interrupts.

Change-Id: I269a103054d3ab2015d67370c43f4af598871b8d
CRs-Fixed: 951569
2015-12-28 22:35:56 -08:00
Houston Hoffman
f82c7e880b qcacld-3.0: Record ce descriptor events
qcacld-2.0 to qcacld-3.0 propagation

Record when descriptors are posted to or completed by the copy engine
in SLUB_DEBUG builds.

Change-Id: I78ee028a7a61ffd253092cbb530ce9ec2e5022d3
CRs-Fixed: 938120
2015-12-28 22:35:56 -08:00
Houston Hoffman
4cf4763fb1 qcacld-3.0: Support atomic sub in cdf
qcacld-2.0 to qcacld-3.0 propagation

support atomic_sub in cdf

Change-Id: Ie03c786f96533063b429fa3ea011e6e05c9504e2
CRs-Fixed: 938145
2015-12-28 22:35:56 -08:00
Houston Hoffman
67056b2870 qcacld-3.0: Initialize irq_lock and connection_status_lock
Uninitialize spinlock caused crash on mdm platform.

Change-Id: I0d86999d70e35c69775e698e69a8388de24d6fb3
CRs-Fixed: 951563
2015-12-28 22:35:55 -08:00
Pradeep Reddy POTTETI
ed31554421 qcacld-3.0: Enable WMM if HT capabilities are present in beacon
qcacld-2.0 to qcacld-3.0 propagation.

WMM should be enabled if HT caps are present even if WMM ie is
not present in beacons/probe response frames. In few places it
is not taken care. This commit will address the issue.

CRs-fixed: 873761
Change-Id: I985b7721fc28c9b7d087123c6cff9d76f93696d5
2015-12-28 22:35:55 -08:00
Pradeep Reddy POTTETI
8226a1db51 qcacld-3.0: Send TDLS setup request and response with VI tid
qcacld-2.0 to qcacld-3.0 propagation.

Send tdls mgmt frames with VI tid to give more priority
to tdls mgmt frames.

CRs-Fixed: 873749
Change-Id: I9196680f09678185c1010b472851c1aca00b1635
2015-12-28 22:35:55 -08:00
Amar Singhal
01098f7526 qcacld-3.0: Remove the obsolete LINUX VERSION checks
We already know kernel version is more than equal to 3.10.
So remove static checks for any previous kernel.

Change-Id: I4e17614fae47782a02dd528c7b4adf3d2802ec69
CRs-Fixed: 920681
2015-12-28 22:35:55 -08:00
Yun Park
5b635014bc qcacld-3.0: Fix incorrect completion of pending IPA RM CONS request
qcacld-2.0 to qcacld-3.0 propagation

Fix incorrect completion of pending CONS RM request/release
notification, which is sent when receiving PROD RM notification
from IPA. Also cleanup pending CONS request flag when IPA resource
loading/unloading is compelted.

Change-Id: Ie37b7d21e1ad016dbaf9aa0f89c97402911b4a02
CRs-Fixed: 943635
2015-12-28 22:35:55 -08:00
Yun Park
ccc6d7a8d6 qcacld-3.0: Send IPA CONS RM grant notification when loading is completed
qcacld-2.0 to qcacld-3.0 propagation

When IPA requests WLAN CONS resource while IPA resource loading is in
progress, resource will not be granted even after the loading is
completed. This will eventually result IPA uC timeout.

Change-Id: Iae8373c43709cbbccef790973642f5992ddcd359
CRs-Fixed: 943635
2015-12-28 22:35:55 -08:00
Yun Park
312f71a503 qcacld-3.0: send CLIENT_CONNECT message to IPA after enable WDI pipes
qcacld-2.0 to qcacld-3.0 propagation

Since CLIENT_CONNECT message is sent to IPA before enabling WDI pipes,
CLIENT_CONNECT message count could be more than CLIENT_DISCONNECT
count, and this could cause an abnormal behavior in the IPACM.

Change-Id: I03d30c7f82aadf83979084b7e65b8ed14565588d
CRs-fixed: 941894
2015-12-28 22:35:55 -08:00
Prashanth Bhatta
29d7c9924b qcacld-3.0: hdd: Remove unused SSR code
Remove unused SSR code which were used for legacy chipsets.

Change-Id: I3ae3f330a573383890d6e13dd626813f32fc0d51
CRs-fixed: 951587
2015-12-28 22:35:55 -08:00
Prashanth Bhatta
62d1e808dd qcacld-3.0: Do not wait for probe in module_init
Module_init waits for probe to complete after registering the
driver. But this is unnecessary and module load is intended for
loading the module but probe would be called when hardware is
ready. Remove the wait during module_init.

Change-Id: Ic2fe7efa78a1527acf1fd5b7689d70f6d450ccd3
CRs-fixed: 950170
2015-12-28 22:35:55 -08:00
Prashanth Bhatta
5da711e712 qcacld-3.0: Clean-up module init and exit
In module init, bunch of initializations are done which are not
required till probe call back gets called. Also in module exit,
some clean-up done which should wait till remove call back gets
called. Move the initialization done in module init to probe call back and
clean-up done in module exit to remove call back.

Change-Id: Id4a0cb21300de1ceab8ed043638b735f31d516d4
CRs-fixed: 950170
2015-12-28 22:35:55 -08:00
Prashanth Bhatta
05aaf01126 qcacld-3.0: hdd: Fix conditional compilation for FTM
For statically linked driver, con_mode is used for moving from
machine mode to FTM mode but it has conditional compilation
issues. Fix the conditional compilation to properly compile when
FTM feature is enabled.
Along with it, unify the usage of con_mode such that
curr_con_mode is the variable which holds the connection mode
passed as part of module parameter as well as set by the driver.

Change-Id: I7d6a5c9b82d1dbb727208caca78089d6be357e71
CRs-fixed: 950170
2015-12-28 22:35:55 -08:00
Prashanth Bhatta
edd6ca2e39 qcacld-3.0: Move module init related implementation together
Move module init/exit related implementation together and at the
end of the file.

Change-Id: I17a02e4fdddc17fc3a725c29e89a52f5bd9d49b9
CRs-fixed: 950170
2015-12-28 22:35:55 -08:00
Kiran Kumar Lokere
0413ba4ab1 qcacld-3.0: Fix issue in Tx LDPC enable/disable using INI
qcacld-2.0 to qcacld-3.0 propagation.

FW checks the peer Rx LDPC capability in ht and vht capabilities
to do Tx LPDC. But host sets the Tx LPDC flag in peer_flags.
To disable Tx LDPC reset the Rx LDPC capability in peer ht
and vht caps based on Tx LPDC configuration in INI.

Change-Id: I211fd73fd70a35faaf4cfc2c5dc8d842c7ff1e5a
CRs-Fixed: 894306
2015-12-28 22:35:54 -08:00
Ravi Joshi
277ae9beed qcacld-3.0: Add support to indicate subnet change status to user space
LFR3 to indicate the change in IP subnet to user space (supplicant).
This enables the DHCP refresh in case of IP subnet change during
roaming.

Change-Id: I9842a28461346fe97ab39f5a11ae504f2e32fa16
CRs-Fixed: 876335
2015-12-28 22:35:54 -08:00
Ravi Joshi
deb5a8d6ff qcacld-3.0: Add handler for gateway parameter update request
Add handler for gateway parameter request vendor command. The
request is issued to update the gateway parameters to be used
during subnet detection post roaming.

Change-Id: I848f24b36a1d65a0e8bb8465b2b6f2016cb2224c
CRs-Fixed: 876335
2015-12-28 22:35:54 -08:00
Ravi Joshi
9e891bad23 qcacld-3.0: Add LFR Subnet Detection support
Add LFR subnet detection support to protocol stack and
device access layers. In LFR3, the device may perform multiple
roams (may be across multiple IP subnets) without the knowledge
of wlan host. The LFR subnet detection feature enables the device
to regain IP connectivity if the firmware has roamed across the
subnets which otherwise is not possible without disconnect and
reconnect.

Change-Id: I60959af8b6ed330313a7f08f8aa1edfb63938bb8
CRs-Fixed: 876335
2015-12-28 22:35:54 -08:00
Ravi Joshi
742495dd30 qcacld-3.0: Add an INI item to configure LFR subnet detection
Add an INI item to configure LFR subnet detection feature.
LFR subnet detection is enabled by default.

Change-Id: Ifb4bba60dfcd0347137f4a690db50b0c453d1ae8
CRs-Fixed: 876335
2015-12-28 22:35:54 -08:00
Ravi Joshi
61c3c7a927 qcacld-3.0: Interfacing files for LFR Subnet Detection support
Add interfacing files and configuration options to enable
LFR subnet detection feature support.

Change-Id: I46756dfb2dd8071fd2bb762038414709e6212c1c
CRs-fixed: 876335
2015-12-28 22:35:54 -08:00
Satish Singh
4acb24c8ce Release 5.0.0.150 QCACLD3 WLAN Driver
Release 5.0.0.150 QCACLD3 WLAN Driver

Change-Id: Ic243af4c7c3bd1061c2b5427ecab48da45b718b8
CRs-Fixed: 688141
2015-12-28 22:20:57 -08:00
Srinivas Girigowda
419e36b4fe qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirWPSPBCSession
Replace tSirMacAddr with cdf_mac_addr in tSirWPSPBCSession.

Change-Id: I46c321c74cfae794c3a77be2cba198baa5aba12f
CRs-Fixed: 898864
2015-12-28 22:20:28 -08:00
Srinivas Girigowda
edcfab99a7 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeGetWPSPBCSessionsReq
Replace tSirMacAddr with cdf_mac_addr in tSirSmeGetWPSPBCSessionsReq.

Change-Id: I675907f2408b74e580fb9c5364e4ad1030e79736
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
aab80e7298 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirWPSPBCProbeReq
Replace tSirMacAddr with cdf_mac_addr in tSirWPSPBCProbeReq.

Change-Id: I7f465505aceaf420172635b9b21e57fc1e1d51ae
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
d6673be8d7 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeProbeReqInd
Replace tSirMacAddr with cdf_mac_addr in tSirSmeProbeReqInd.

Change-Id: Ic9004fa301d196e684b1534a225a878f0df562a3
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
eba9ca5cb2 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPARSNIEsReq
Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPARSNIEsReq.

Change-Id: I4ea2e5fb65157a1760e81dcf3bbaad0821ce71e0
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
b084b55cf1 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirHostOffloadReq
Replace tSirMacAddr with cdf_mac_addr in tSirHostOffloadReq.

Change-Id: I94c7eace8e49f6e5a83e3d58d7ee3250c8100c0f
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
9c330a9063 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirKeepAliveReq
Replace tSirMacAddr with cdf_mac_addr in tSirKeepAliveReq.

Change-Id: Id7184f0acfba870c2f17b9d2dd76015687eb06b2
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
0420991d02 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirAppTypeParams
Replace tSirMacAddr with cdf_mac_addr in tSirAppTypeParams

Change-Id: I4629ab11d8014eae6ba27b24362b9253be1606b7
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
b053239279 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in struct roam_ext_params
Replace tSirMacAddr with cdf_mac_addr in struct roam_ext_params

Change-Id: I54abd74a93abdfee4a8eb413de78b939a07b97e7
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
198b203c98 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in roam_offload_synch_ind
Replace tSirMacAddr with cdf_mac_addr in roam_offload_synch_ind.

Change-Id: I953b089391f00ff2108e1f311a33d50aca724409
CRs-Fixed: 898864
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
730ae9836c qcacld-3.0: Remove #ifndef block of FEATURE_WLAN_ESE_UPLOAD
At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach of supporting ESE.
There is no support for #ifndef FEATURE_WLAN_ESE_UPLOAD block of code.
Hence clean up this code.

Change-Id: I1e1307ec3430353496b1cf7aaa2eb5291ca1d5b2
CRs-Fixed: 949634
2015-12-28 22:20:27 -08:00
Srinivas Girigowda
c79a7106b0 qcacld-3.0: Remove obsolete macros and functions
Remove obsolete macros and functions.

Change-Id: I18e3ba1ec3a38a0f1dfa2de70955f0af02bef37f
CRs-Fixed: 898864
2015-12-28 22:20:26 -08:00
Srinivas Girigowda
aeb842465a qcacld-3.0: Remove obsolete lim_cleanup_lmm()
Remove obsolete lim_cleanup_lmm().

Change-Id: I981c80bcd2f8b2a6755977423df80660036e9bb8
CRs-Fixed: 898864
2015-12-28 22:20:26 -08:00
Naveen Rawat
b14cab349f qcacld-3.0: Clear txSTBC capab if number of tx streams is less than 2
Currently tx STBC param sent to FW is taken from peer's response frame, which
is wrong if current hardware does not support 2x2 for given channel width.
Update the driver to check number of tx stream for current vdev and clear txSTBC
if needed.

Change-Id: If05e5de72ba5af95b343817d811db0f413493ee1
CRs-Fixed: 941217
2015-12-28 22:20:26 -08:00
Masti, Narayanraddi
605b536d10 qcacld-3.0: Fix SAP to not send Assoc Rsp for duplicate Assoc Req
qcacld-2.0 to qcacld-3.0 propagation

Fix soft AP to not send Assoc response for Assoc req which is
unprotected and initiated by an injector rather than a testbed
station.
If STAUT sends duplicate Assoc request, Assoc response should
be sent only in case of non-PMF connection.

Change-Id: I6fb4c139af333c937e767cb111df4d1d69bddbd9
CRs-Fixed: 902969
2015-12-28 22:20:26 -08:00
Sandeep Puligilla
ee029ad052 qcacld-3.0: BT AMP Cleanup in CSR
Remove unused BT AMP code from CSR module

Change-Id: I12ee3940ed8b9b4f50faffbed4ad949730cb1297
CRs-Fixed: 926965
2015-12-28 22:20:26 -08:00
Krishna Kumaar Natarajan
22b59a7689 qcacld-3.0: Add configuration option for mpdu density
qcacld-2.0 to qcacld-3.0 propagation

Add configuration option for mpdu density through INI. Update
the default value of mpdu density from 0 to 7.

Change-Id: Ib97869d4aec160065c945cd62876d6fd191d63a5
CRs-Fixed: 941182
2015-12-28 22:20:26 -08:00
Kabilan Kannan
2ccd9e6c57 qcacld-3.0: Change TDLS default teardown parameters
qcacld-2.0 to qcacld-3.0 propagation.

Current TDLS default teardown interval does not work in
all the scenarios. Hence, change the default teadown
interval to 5 seconds and default TDLS idle packet
threshold to 3 to support all TDLS use cases.

Change-Id: Idf8b4cd02963d24350a1322ac4c7465fbfc7204f
CRs-Fixed: 936003
2015-12-28 22:20:26 -08:00
Kabilan Kannan
421714b6c6 qcacld-3.0: Configure TDLS peer mac and kickout threshold to target
qcacld-2.0 to qcacld-3.0 propagation.

Add new TDLS mode for TDLS external control operation to
achieve power save on the target. Firmware will use this mode
to control timers precisely and save the power.
Add configuration "gTDLSPeerKickoutThreshold" to fine tune
TDLS peer sta kick out operation.

Change-Id: Ie941f93b54983ca6323ef4384a66e0807a56a7b1
CRs-Fixed: 929749
2015-12-28 22:20:26 -08:00
Kabilan Kannan
ca670be788 qcacld-3.0: Pass TDLS teardown notification interval to target
qcacld-2.0 to qcacld-3.0 propagation.

Firmware uses same notification interval to send trigger to the
driver for both TDLS setup and TDLS teardown operations. In ideal
scenario firmware needs to have an option to configure different
values for TDLS setup and TDLS tear down operations. This change
will enable firmware to have different values for setup and
teardown operations.

Change-Id: I300350c56d4ef23993953338529f29df2ea122a1
CRs-Fixed: 920835
2015-12-28 22:20:26 -08:00
Jeff Johnson
417af557d1 qcacld-3.0: Convert wlan_hdd_green_ap.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_green_ap.c to use the unified set of APIs.

Change-Id: If58683a833b1650a6cbea147debcead2551697da
CRs-Fixed: 937202
2015-12-28 22:20:26 -08:00
Rajeev Kumar
1bcfd63412 qcacld-3.0: Remove support of power gating parameters
Propagation from qcacld-2.0 to qcacld-3.0

- WLAN firmware does not support get/set operations for power
  gating VDEV parameters
- Remove support for power gating VDEV parameters from WLAN host
  driver

Change-Id: I5b262b71364c11f648b579a8bdb6fa993ecb4a81
CRs-Fixed: 880180
2015-12-28 22:20:25 -08:00
Abhishek Singh
daff59fc23 qcacld-3.0: Add log in vos_mem_alloc if kzalloc takes more than 3 seconds
qcacld-2.0 to qcacld-3.0 propagation

Sometime the thread sleeps in kzalloc for long time, resulting in
thread stuck.

This change prints time taken by kzalloc, if time taken is more
than 3 seconds.

Change-Id: I027ab2ad4e93f8a02ba9e48e47d7aa3123785a31
CRs-Fixed: 926479
2015-12-28 22:20:25 -08:00
Abhishek Singh
c12479078c qcacld-3.0: Lower the log level for unhandled Action frame logs
qcacld-2.0 to qcacld-3.0 propagation

Too many log prints are seen by default if unhandled action frame
are received.

This change lowers the log level for unhandled Action frame logs.

Change-Id: I4af258eed12c2f352f97df0f73e9ab0c6278a437
CRs-Fixed: 924661
2015-12-28 22:20:25 -08:00
Abhishek Singh
b7b2a3b712 qcacld-3.0: Add disconnect to the head of sme pending command list
qcacld-2.0 to qcacld-3.0 propagation

If connect is received and queued to sme pending list while scan
is in progress in sme, once scan is completed, again scan is
queued to get the scanned channel info with reason
eCsrScanGetScanChnInfo behind connect command.

Connect is executed next with scan command in pending queue.
Now if disconnect is received from hdd it is also queued in sme
pending cmd list behind scan.

Once connect is executed the wait for key state is set and wait
key timer is started. As only disconnect and set key command are
allowed in wait for key state, the pending cmd queue is not
executed with scan command at the head and thus the disconnect is
not executed. Also as supplicant has issued disconnect, no keys
will be set and pending command queue will not be processed till
wait for key timer expires.

If during this time unload starts all the commands including the
disconnect command sme pending queue are flushed and thus no
DEL BSS is sent to firmware before HAL STOP which leads to crash.
To avoid this add disconnect to the head of sme pending command
list so that disconnect can be processed after connect during
wait for key state.

Change-Id: I333e7b103ac10e368d34b5bf8b87cc360650cd50
CRs-Fixed: 930713
2015-12-28 22:20:25 -08:00
Satish Singh
82d8528bed Release 5.0.0.149 QCACLD3 WLAN Driver
Release 5.0.0.149 QCACLD3 WLAN Driver

Change-Id: I780e387e2df3e2b5f64cf193c81624efab4e92cd
CRs-Fixed: 688141
2015-12-28 14:23:23 -08:00
Houston Hoffman
5998d5f66d qcacld-3.0: Enable emergency reaping for wmi pipe.
Since management frames have been added to the wmi pipe,
the wmi pipe may fill up before the driver schedules the
tx completion processing.

Make tx completion processing use the DDR ce index to
avoid register access durring reaping.

Change-Id: I213aa0274d3c66e583bcdb700ced1133c2c30ebc
CRs-Fixed: 945831
2015-12-28 14:20:47 -08:00
Manjunathappa Prakash
c2425a6116 qcacld-3.0: add retry logic if htc_issue_packets fails
Fix WMI command path Tx failure case:
1) Current WMI command path frees the packet with dummy completion when hif
   fails to send the packet down. Fix it by putting back cmd to endpoint
   Tx queue for retry.
2) Also separate WMI mgmt command/event log buffer from control path
   command logs

Change-Id: Icc3f7fde10a592de3c5354ba720d6810ce1b635a
CRs-Fixed: 940100
2015-12-28 14:20:47 -08:00
Nirav Shah
f2e3637e64 qcacld-3.0: Ignore HTT_T2H_MSG_TYPE_MGMT_TX_COMPL_IND from FW
Ignore HTT_T2H_MSG_TYPE_MGMT_TX_COMPL_IND from firmware if
management over WMI is enabled.

Change-Id: Ic196d17526c251ae26dd59ca2f42b7bff9a46ffe
CRs-Fixed: 949946
2015-12-28 14:20:47 -08:00
Nirav Shah
22bf44dc87 qcacld-3.0: Do not reserve mgmt descriptors
Do not reserve tx descriptors for management packets
if management over WMI is enabled.

Change-Id: Iafe758d91d11f4875e3152d92538055784490a14
CRs-Fixed: 949917
2015-12-28 14:20:47 -08:00
Nirav Shah
331172a1d9 qcacld-3.0: Use appropriate list API
Use list_for_each_entry_safe API to traverse list
while deleting list entry in cds_drop_rxpkt_by_staid
to avoid crash.

CRs-Fixed: 943767
Change-Id: I4d09fd88f0faefacfc886866d9045b09feeb4432
2015-12-28 14:20:47 -08:00
Nirav Shah
6ea4ca5f0d qcacld-3.0: Remove per vdev tx descriptor pool
Remove per vdev tx descriptor pool feature as
it is applicable only for High Latency.

CRs-Fixed: 916724
Change-Id: I22ab3dd187518790694356bdde8475b194845bf5
2015-12-28 14:20:46 -08:00
Nirav Shah
9d7f2e8b79 qcacld-3.0: Enable enahnced flow control
a) Enabled flow control
b) Add small helper functions to avoid duplication of
   code.
c) Fix thermal mitigation unpause issue with flow control.

CRs-Fixed: 916716
Change-Id: Ic02b66d1c23768a1c71dc08ed50dcedd02b647ce
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
bdc98160e9 qcacld-3.0: Add support for telescopic PNO
This is a qcacld-2.0 to qcacld-3.0 propagation.

QCACLD firmware already addresses power concern during PNO scanning by
extending fast_scan_period, slow_scan_period and fast_scan_max_cycles
configuration which need to be set by the host driver.

Add the host driver support to do the same.

Description:
1. fast_scan_period: This is the fast PNO scan period. The scan interval time
sent down by the supplicant is assigned to this.
2. fast_scan_max_cycles: This parameter tells firmware to switch from
fast to slow scan period after this many number of fast_scan_periods
has elapsed.
3. slow_scan_period: This is slow PNO scan period with which scan happens
less frequently to save power. Once the FW switches from fast to slow period,
it remains in slow scan period until next PNO Start.

cfg.ini items:
1. Repurpose gPNOScanTimerRepeatValue to fast_scan_max_cycles.
2. Introduce new cfg.ini gPNOSlowScanMultiplier to act as multiplier of
   fast_scan_period.

Change-Id: I453f09d42be3228ecc9c5023eca26eae1e589d6a
CRs-Fixed: 902381
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
dccab9a38a qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirLinkSpeedInfo
Replace tSirMacAddr with cdf_mac_addr in sSirLinkSpeedInfo

Change-Id: Ieaac1d3bb7f632eeaa848e19dadb4f3013a272e4
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
3189655731 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirAddPeriodicTxPtrn
Replace tSirMacAddr with cdf_mac_addr in sSirAddPeriodicTxPtrn.

Change-Id: Idc7db873b0b1d5088465511eb7852fee40339c49
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
a5bba7ad2b qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirDelPeriodicTxPtrn
Replace tSirMacAddr with cdf_mac_addr in sSirDelPeriodicTxPtrn.

Change-Id: I0445b5c7ec7d1e361b5ab7d72d2c607c6b8121c0
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
4f59379d60 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirTdlsEventnotify
Replace tSirMacAddr with cdf_mac_addr in sSirTdlsEventnotify

Change-Id: Ia78eeffd98821ea075df0838dc7ff4367ce0ca36
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
a6a1d20a3a qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirWlanExcludeUnencryptParam
Replace tSirMacAddr with cdf_mac_addr in sSirWlanExcludeUnencryptParam

Change-Id: Ie6b3172757826d579ac44027b1d023be62b3292f
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
9853049218 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirRcvFltPkt
Replace tSirMacAddr with cdf_mac_addr in tSirRcvFltPkt group of
structures.
1. tSirRcvPktFilterCfgType
2. tSirRcvFltPktClearParam
3. tSirRcvFltMcAddrList
4. tSirRcvFltPktMatchRsp

Change-Id: I7c0dabc5c4643eee6dfe69dad76fb7363b40dce6
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
2213b1d9cf qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in GtkOffload Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in GtkOffload Req/Rsp.

Change-Id: Ib5a20b5741d08bd86cd8674d8e9724392093b706
CRs-Fixed: 898864
2015-12-28 14:20:46 -08:00
Srinivas Girigowda
a35f10958e qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirTdlsAddSta Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in tSirTdlsAddSta Req/Rsp.

Change-Id: Ie10b69ce99645f7ace3d772dc8c8de87ad86f2bc
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Srinivas Girigowda
84f4292b85 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirTdlsDelSta Req/Rsp/Ind
Replace tSirMacAddr with cdf_mac_addr in sSirTdlsDelSta Req/Rsp/Ind.

Change-Id: I98264dea13b7bc596c092461da0ecf865332095e
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Srinivas Girigowda
5146deef9f qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirPlmReq
Replace tSirMacAddr with cdf_mac_addr in sSirPlmReq.

Change-Id: I21df91d980bc081af28f67a344d138b3c54eaf14
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Srinivas Girigowda
9d6a6db43f qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sTSMStats
Replace tSirMacAddr with cdf_mac_addr in sTSMStats.

Change-Id: Ib7a00874a5ad1c90ac2ab332015b136efc73cdc9
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Srinivas Girigowda
37eeeb06c8 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeProbereq
Replace tSirMacAddr with cdf_mac_addr in sSirSmeProbereq.

Change-Id: I86622c1bca4bdcd0aad5b7a44ff490e11e8c142d
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Srinivas Girigowda
d8af4a6b62 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeStartBssReq
Replace tSirMacAddr with cdf_mac_addr in struct sSirSmeStartBssReq.

Change-Id: I76c09e0c865ada1fe53a9e4779a32b19291fbfda
CRs-Fixed: 898864
2015-12-28 14:20:45 -08:00
Krishna Kumaar Natarajan
1dfa3537bf qcacld-3.0: CL 1413998 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Add new RTT related wmi interface changes to support
TLV based messaging.

Change-Id: I0591907984c3c58039a06ce123dca777d24c590f
CRs-Fixed: 865207
2015-12-28 14:20:45 -08:00
Krishna Kumaar Natarajan
d913190603 qcacld-3.0: Fix mangled function names
Fix mangled APIs sme_configure_ext_wo_w,
sme_process_ready_to_ext_wo_w and
lim_remove_timeout_pbc_sessions which were introduced
while converting the names programmatically.

Change-Id: Ie0a79b476a99bf1be0411dae0542359e7d58141a
CRs-Fixed: 882962
2015-12-28 14:20:44 -08:00
Krishna Kumaar Natarajan
8a8df26374 qcacld-3.0: Fix incorrect reference to wiphy flags
Fix incorrect reference of wiphy flags while setting
WIPHY_FLAG_HAS_CHANNEL_SWITCH.

Change-Id: Ifebaa9a8452a8564f60f29015f240d5a43bb9afb
CRs-Fixed: 947551
2015-12-28 14:20:44 -08:00
Govind Singh
ede435fab0 qcacld-3.0: cleanup tx-queue during SSR
qcacld-2.0 to qcacld-3.0 propagation

During SSR, Host is sending packets to firmware before WMI_READY_EVENT.
Fix is to avoid sending tx when logp_in_progress & clean ll-queue
packets in shutdown.

Change-Id: Ib6b9f4d51f2aa7f85d384831818b45763c702c88
CRs-Fixed: 834887
2015-12-28 14:20:44 -08:00
DARAM SUDHA
a51d6fb5df qcacld-3.0: disable pn check for ibss network, in security mode
qcacld-2.0 to qcacld-3.0 propagation

Multicast packets using different sequence number space
gets dropped on the host due to the existing logic of
running duplicate detection check and out-of-order packet check
on all non-aggregation (legacy) TIDs, since f/w uses a
special (non-aggregation) TID (18) to indicate these packets
to the host, irrespective of sequence number space.

The fix is in 2 parts:

1) Do only duplicate detection on mcast packets & not out-of-order check
   (Also do dup-detection only if retry bit is set)
2) Instead of using mcast TID indicated by f/w, use the actual
   packet TID from the Rx descriptor to perform the duplicate detection
   and use a separate (new) field in rx_reorder_array to store
   the last successful mcast sequence number. On the next mcast packet
   perform the duplicate detection against mcast sequence number, rather
   than the ucast sequence number.

Change-Id: I4c3542e82a1917b4ed27513e9244702bb212df88
CRs-FIXED: 788954
2015-12-28 14:20:44 -08:00
DARAM SUDHA
61270b0e59 qcacld-3.0: initialize SendFlags in HTT before downloading to FW
qcacld-2.0 to qcacld-3.0 propagation

In Low-latency interface, to avoid 1d2 happening during roaming
test, host need to send HTC header to fw, by setting SendFlags
to zero to avoid deadlock situation.1d2 happened during roaming
test.

Change-Id: Ib3d16deadf038708fb75bcba692bd6adf3959c4e
CRs-Fixed: 807505
2015-12-28 14:20:44 -08:00
Konamki, Sreelakshmi
ec14e6a53b qcacld-3.0: STA is disconnected with specific AP IPTIME N904NS-second
qcacld-2.0 to qcacld-3.0 propagation

STA gets disconnected with AP IPTIME N904NS when AP is configured
for WPA1 + TKIP on CH 161.
Return value of memcmp function must be checked with NOT operation.

Change-Id: Ic866a70917c1e713855c28a8f156ffe7c381fa07
CRs-Fixed: 642070
2015-12-28 14:20:44 -08:00
Hema Aparna Medicharla
5e1f302b26 qcacld-3.0: Donot defer Rx frames processing if ADD TS request sent
qcacld-2.0 to qcacld-3.0 propagation

Current implementation defers all the received frames
when ADD TS request is sent out over the air. This,
in addition, to check for pMac->lim.gLimAddtsSent
incurs delay, till ADD TS response timeout, in processing
of the ADD TS response received if SET_LIM_PROCESS_DEFD_MESGS
is set to FALSE. As there is no rationale defer processing
of Rx frames while waiting for ADDTS response, changes are
made to not defer processing of RX frames for the same.

Change-Id: I1d1a41a0e3555ae19548a0cabf3b9569af775f72
CRs-Fixed: 839546
2015-12-28 14:20:44 -08:00
Konamki, Sreelakshmi
f5910aba20 qcacld-3.0: STA is disconnected with specific AP IPTIME N904NS-second
qcacld-2.0 to qcacld-3.0 propagation

STA gets disconnected with AP IPTIME N904NS when AP is configured
for WPA1 + TKIP on CH 161.

Change-Id: Ifa30ed624c1f9f3c549def45cdb9e5f8ebfae233
CRs-Fixed: 627650
2015-12-28 14:20:44 -08:00
Sreelakshmi Konamki
e1ce562b9b Revert "qcacld-3.0: After DELTS, revert to UAPSD related intervals in ini"
qcacld-2.0 to qcacld-3.0 propagation

This reverts Change-Id I858cd3cbd536ec189ea808c5d637abffe388f7aa.

With change id I858cd3cbd536ec189ea808c5d637abffe388f7aa,
host is not sending WMI_STA_UAPSD_AUTO_TRIG_CMDID command to firmware
during disable UAPSD per AC.

Change-Id: Ifdbcd6926ca86b1baeeadcf7a4720e460d41a6e5
CRs-Fixed: 911229
2015-12-28 14:20:44 -08:00
Chandrasekaran, Manishekar
f78b05e239 qcacld-3.0: Avoid taking lock for vfree API during driver load/unload
This is qcacld-2.0 to qcacld-3.0 propagation

Avoid invoking vfree inside spinlock during logging service
activation and deactivation. Since vfree is prone to sleep, this
disables the IRQs for duration longer than the acceptable limit.
vfree can be done without spin lock here, as there is no
synchronization issue in this scenario.

CRs-Fixed: 914363
Change-Id: I4d69431a98a4e4301dfc1e2b3b4c40c408a7ef99
2015-12-28 14:20:44 -08:00
Peng Xu
278d012c68 qcacld-3.0: Dynamic OTA test mode enable
For OEM to do OTA tests, power save, background scan, and low RSSI
scanning need to be disabled and it should be done dynamically.
Implement a vendor command to enable and disable OTA test mode.

CRs-fixed: 941776
Change-Id: Ic9da11cf5f4bb19a01d9b55c50c0aea196abbfb6
2015-12-28 14:20:44 -08:00
Peng Xu
4aeef3c7aa qcacld-3.0: Don't allow two P2P GO interfaces on the same band
In P2P GO + GO concurrency case, only DBS mode is supported for
the two interfaces. Second P2P GO interface startup is blocked
if its channel is on the same band as the first P2P GO interface.

Change-Id: Ic85bd8f92983c8c08f61fdaf09be1ad13a17cd8f
CRs-fixed: 945804
2015-12-28 14:20:43 -08:00
Sushant Kaushik
f217d95372 qcacld-3.0: Enable Tx beamformee by default
qcacld-2.0 to qcacld-3.0 propagation

Default value of  Tx beamformee is 0.
As as part of fix, enable the default value
of Tx beamformee.

Change-Id: Ib4b30f2a925e95cd96cc789ac7bc223274fa6a67
CRs-Fixed: 921834
2015-12-28 14:20:43 -08:00
Gupta, Kapil
e1044069d8 qcacld-3.0: Stop overwriting pnoOffload value with dummy value.
qcacld-2.0 to qcacld-3.0 propagation

Currently tpAniSirGlobal pnoOffload value is initialized with
FW caps first time only and resetting to 0 while starting a bss in
go mode. Existing value of pnoOffload is not retained while
getting config for tSmeConfigParams.

Added changes to retain current value of pnoOffload from
tpAniSirGlobal while getting config for new tSmeConfigParams.

Change-Id: I0eda12ec1c69aeca4465d41f3e3ba96b8e1944cb
CRs-Fixed: 913994
2015-12-28 14:20:43 -08:00
Gupta, Kapil
121bf2115a qcacld-3.0: Support for handling of op class in xcsa action frame
qcacld-2.0 to qcacld-3.0 propagation

Add support to parse operating class from xcsa frame and select
channel bandwidth on basis of new operating class.

Change-Id: I33d794e77220ef82cca793767d459979eb940669
CRs-Fixed: 942104
2015-12-28 14:20:43 -08:00
Sushant Kaushik
7a53588e1d qcacld-3.0: Remove LL stats redundant logs
qcacld-2.0 to qcacld-3.0 propagation

Currently there are many LL stats related logs
which doesn't provide any useful information.
As a part of fix, remove all those redundant logs.

Change-Id: Id1a89f209cfb57646828c5ee059f6f3790aac1c0
CRs-Fixed: 903941
2015-12-28 14:20:43 -08:00
Abhishek Singh
1e94d7a2cc qcacld-3.0: IBSS: Handle IBSS mode in stop adapter properly
qcacld-2.0 to qcacld-3.0 propagation
In Stop Adapter IBSS mode is not handled properly and
no DEL BSS is sent for the connected IBSS before DEL SELF STA.
This may lead to crash in FW.

As part of fix handle the IBSS mode and send DEL BSS if IBSS is
connected.

Change-Id: Ice1304aced1a158c7b589a95337412cda0183a04
CRs-Fixed: 908990
2015-12-28 14:20:43 -08:00
Abhishek Singh
ac2be14ac2 qcacld-3.0: Update the status code in Re/assoc rsp for failure
qcacld-2.0 to qcacld-3.0 propagation

If deauth is received just after Assoc rsp from AP in addSTA
response Re/assoc confirm is sent with status failure.
But protStatusCode in assoc confirm is not updated and thus the
pRoamInfo->reasonCode may have garbage value.
In case of Wep connection failure reason code,
pRoamInfo->reasonCode, is sent to the supplicant in connect
result. Now if pRoamInfo->reasonCode is 0 supplicant receives
connection success though connection have actually failed.

To avoid this update protStatusCode, before sending Re/assoc
failure.
Also properly derive if connection is WEP from roamProfile before
clearing it.

CRs-Fixed: 926572
Change-Id: I5ae0832d37746be16696f521bddd5b67307b1ee4
2015-12-28 14:20:43 -08:00
Leo Chang
3bc8fedce7 qcacld-3.0: wdi2.0 feature enable, hdd cds
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
part of HDD and CDS

Change-Id: Iaccab3ae233e0b9a8e4942bee0ebaa40ce94fc16
CRs-fixed: 941041
2015-12-28 14:20:43 -08:00
Leo Chang
8e07361afb qcacld-3.0: wdi2.0 feature enable, dp hif
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
This is part of HIF and DP.

Change-Id: If898f03a8a75689c98c70d1e55910f476d8fe329
CRs-fixed: 941041
2015-12-28 14:20:43 -08:00
Satish Singh
3c86037150 Release 5.0.0.148 QCACLD3 WLAN Driver
Release 5.0.0.148 QCACLD3 WLAN Driver

Change-Id: Ibc96af71bdcabbd54a325220429b38fa29e72f2e
CRs-Fixed: 688141
2015-12-09 23:24:39 -08:00
Yun Park
f19e07d2ef qcacldi-3.0:IPA-uC: Cleanup IPA pending event list when driver unload
qcacld-2.0 to qcacld-3.0 propagation

IPA pending_event list keeps IPA events arrived while IPA resource
loading/unloading.
This list is freed only when TX/Rx resume/suspend OP code from FW.
This change is to limit the pending event list size and free up the
pending event list when WLAN driver is unloaded.

Change-Id: Id0489a59bd3c2b04d2faba1069df7b2244a2a730
CRs-Fixed: 937765
2015-12-09 23:21:41 -08:00
Kiran Kumar Lokere
fa043534bf qcacld-3.0: Fix the issue observed in static code analysis
Fix the issue observed in static code analysis.

Change-Id: I3ec4abc3b51d3b36350e1f2d592ae59a21d8aa62
CRs-Fixed: 928208
2015-12-09 23:21:40 -08:00
Ryan Hsu
04aec8e5d1 qcacld-3.0: Fix the PNO WoW is not configured in concurrency case
qcacld-2.0 to qcacld-3.0 propagation

In the case of SAP + STA mode we fail to enable PNO on the STA interface,
and as a result the PNO feature will fail to find a network and wake the
host. Fix this by making sure PNO is configured in all appropriate
concurrency cases.

Change-Id: I97084cfde73025f0d09b60616959c9530ba82c80
CRs-fixed: 921150
2015-12-09 23:21:40 -08:00
Hanumantha Reddy Pothula
589fd70615 qcacld-3.0: Resolve invalid memory access while processing GET STATES IOCTL
qcacld-2.0 to qcacld-3.0 propagation

While processing GET STATES IOCTL, in a while loop, HOST prints PE, LIM
and MLM states of each session. Normally while loading, HOST allocates
memory for five sessions, but while processing this IOCTL, it iterating
in a loop assuming there are 255 sessions allocated, leading to crash
because of invalid memory access.
Hence while printing PE, LIM and MLM states iterate only for allocated
number of sessions.

Change-Id: I29c9a627615a1983d23831578f45aefe116dac25
CRs-Fixed: 879950
2015-12-09 23:21:40 -08:00
Kanchanapally, Vidyullatha
e306281cab qcacld-3.0: Add new vendor command to get link properties
qcacld-2.0 to qcacld-3.0 propagation

Add support in driver for a new vendor command to get
the link properties nss, rate flags and operating
frequency.

Change-Id: Ie3b8d5b2c3886055d303441c5d8b2f2a0a2719bd
CRs-Fixed: 834199
2015-12-09 23:21:40 -08:00
Ratnam Rachuri
28dcf49c9f qcacld-3.0: avoid conditional compilation for HEADROOM_SIZE macro
qcacld-2.0 to qcacld-3.0 propagation
In hdd_alloc_station_adapter, deleted pWlanDev->hard_header_len updating
code.

Change-Id: I7a3ead434a910dd522f9a02a24cd6ad8669e3fc8
CRs-Fixed: 853305
2015-12-09 23:21:40 -08:00
Edhar, Mahesh Kumar
e3c8d35f4a qcacld-3.0: synchronize PE and HDD initiated disconnects
qcacld-2.0 to qcacld-3.0 propagation

PE generated disassoc request is not serialized in SME queue. This
results in corrupting 'lim.limDisassocDeauthCnfReq.pMlmDisassocReq'
which is a global context to save disassoc request.

Address the above by indicating all the PE generated disassoc requests
to SME and process disconnection request only after receiving
eWNI_SME_DISASSOC_CNF from SME(similar to that of processing disassoc
request from peer).

Change-Id: I2b93925ba64c4d9ff22b071dd2e5c7681be59e15
CRs-Fixed: 934183
2015-12-09 23:21:40 -08:00
Edhar, Mahesh Kumar
6a50152d98 qcacld-3.0: Honor NL80211_SCAN_FLAG_FLUSH scan flag
qcacld-2.0 to qcacld-3.0 propagation

Honor NL80211_SCAN_FLAG_FLUSH scan flag by flushing
sme and lim scan cache entries.

Change-Id: I1ff59e583f815bfec2df458c58a40b30b7bffa00
CRs-Fixed: 934979
2015-12-09 23:21:40 -08:00
Edhar, Mahesh Kumar
bd8b391bf5 qcacld-3.0: Properly update channel width and bonding parameters
Currently as part of application triggered channel switch both the
channel bandwith and bonding mode are limited to 20MHz.
Change made to properly update the channel width and bonding
parameters.

Change-Id: I48297eed74c9e3bfed6fefa67f664f3503fac1f6
CRs-Fixed: 944647
2015-12-09 23:21:40 -08:00
Abhishek Singh
37595beb13 qcacld-3.0: Lower the log level of mtrace to Info to avoid WD bark
qcacld-2.0 to qcacld-3.0 propagation.

Too many log prints are seen if mtrace are dumped and this cause
WD bark.

To avoid this lower the log level of mtrace to Info.

Change-Id: I05d3fa8b3494785a1933f159280b6c9ba6923c0d
CRs-Fixed: 926416
2015-12-09 23:21:40 -08:00
Abhishek Singh
9e93043272 qcacld-3.0: Fix Static analysis error.
qcacld-2.0 to qcacld-3.0 propagation

Fix Static analysis errors as below:
1) Memory leak in limHandleDelBssInReAssocContext

Change-Id: I9dc0c630d62c06fb55e953f9506b04dbeff9bd51
CRs-Fixed: 919502
2015-12-09 23:21:40 -08:00
Himanshu Agarwal
e1086fad37 qcacld-3.0: Cleanup checks in the driver exit path
Propagation from qcacld-2.0 to qcacld-3.0

Added sanity checks for below variable before accessing in the
driver exit path.

nl_srv_sock
pdev_txrx_ctx

Change-Id: I793db21e1a6d1eded027ecbd2805494ea7610852
CRs-Fixed: 846457
2015-12-09 23:21:39 -08:00
Varun Reddy Yeturu
044bda2e10 qcacld-3.0: Create configuration item gfirst_scan_bucket_threshold
qcacld-2.0 to qcacld-3.0 propagation

Create a configuration item to program the first bucket
threshold of the scan results to have the flexibility to
adjust the first bucket threshold.

CRs-Fixed: 922979
Change-Id: I6fad27a2990f7555173e4735131e8392d0277009
2015-12-09 23:21:39 -08:00
Varun Reddy Yeturu
f76f6de348 qcacld-3.0: Fix Static Analysis Issues
1) Check for bssid if it is NULL, before dereferencing it.
2) Check for hal_ctx if it is NULL, before dereferencing it.

CRs-Fixed: 940721
Change-Id: I836416a4717b15902e8b8f27fa2e5e5e7935c12f
2015-12-09 23:21:39 -08:00
Houston Hoffman
b8954c6402 qcacld-3.0: Remove from_irq
From irq variable is not serving a good purpose.

Change-Id: I362e4fa8c5202e748fac455fb76ce676bd1ea31b
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
a499f30bd5 qcacld-3.0: Replace target_lock with ce_index_lock
Target_lock was a global lock for all target and copy engine data
structure access. Replacing target_lock with a per copy engine
lock permits paralel completion handling for different copy engines.

Change-Id: I9c09d557c85f9e48beafe5e3f936e105183ddd3f
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
15ec6c6895 qcacld-3.0: Remove target_lock from hif_crash_shutdown
This is called by the platform driver in case of kernel panic.
Replacement syncronization might be needed here if the kernel
panic doesn't stop the other host cpus before the platform driver
calls this.

Change-Id: Ic6d4eb1cb08f6363029463994ec7e3837212e271
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
3e551e46b9 qcacld-3.0: Remove target_lock from watermarks_set functions
If watermarks are going to be used, the should be set as part of a
single threaded initialization sequence.

Change-Id: I3e1e9cd0f55f46d9f46718c139963931311fe8ae
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
5d2697f78d qcacld-3.0: Remove target_lock from ce_h2t_tx_ce_cleanup
No other thread should modify the copy engine indexes while we
are cleaning up the data structures.

Change-Id: I324286c3a8eed24ddd94aa868dbaac425cc30dbf
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
542a5eeeb8 qcacld-3.0: Remove ce_disable_any_copy_compl_intr
Remove ce_disable_any_copy_compl_intr and
ce_enable_any_copy_compl_intr since they aren't
used and give a false sense of thread safety.
Modifying copy complete interrupt currently needs
to be synchronized with completion handling.

Change-Id: Ieb27a8c71363ebd56f16eda9e1037a161a5eeb62
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
a7163174a3 qcacld-3.0: Remove target_lock from cb regsitration
Send and recv callback registration currently occurs durring init
and after bmi download is complete.  In either case no transactions
are in progress and no race condition can exist.
Similarly watermark callback registration would happen at the same time
if it were used.

Change-Id: Ia77bf30fb3bcefa500465cea9ad9927990bb7ced
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
1186b91046 qcacld-3.0: Remove target_lock from ce_pkt_dl_len_set
Download length should be set before messages are recieved, so
no race condition should exist.

Change-Id: I92de4b3c4077f23032df45ceca6e169616351b8b
CRs-Fixed: 941355
2015-12-09 23:21:39 -08:00
Houston Hoffman
eab684b511 qcacld-3.0: Check for SSR before sending messages to upper layers
FW is asserted, dont service the messages.  The hif completion
thread used to prevent processing of messages when firmware crashed.

Change-Id: I42a5a285056e989d302e766f2922bb7c114634dc
CRs-Fixed: 941358
2015-12-09 23:21:39 -08:00
Houston Hoffman
7523d226a3 qcacld-3.0: Remove hif_completion_thread
Remove hif_completion_thread serialization mechanism.
Allow for parralel processing of copy engine transactions.

Change-Id: I8ecd325314542c2950294fd769a7f127d319df8f
CRs-Fixed: 941358
2015-12-09 23:21:38 -08:00
Houston Hoffman
b4eb2b20b4 qcacld-3.0: Remove spinlocks from ce_enable_msi
ce_enable_msi should happen before interupts are enabled.  Therefore
we should be single threaded here and don't need to protect access
with a spin lock.

Change-Id: I24feec02003bdb402201d71d1cd5254dacae0b72
CRs-Fixed: 941355
2015-12-09 23:21:38 -08:00
Houston Hoffman
7099f33d04 qcacld-3.0: Remove spinlocks from ce_init
ce_init should happen before interupts are enabled.  Therefore
we should be single threaded here and don't need to protect access
with a spin lock.

Change-Id: I5e1cfd32860eeda8a403744cf1589e35c57ee6df
CRs-Fixed: 941355
2015-12-09 23:21:38 -08:00
Houston Hoffman
79f8ecd3c4 qcacld-3.0: Move recieve count to CE_state
Removing references to global data in the processing of
copy engine interupts.

Change-Id: I1ecc2ee67526498a56680870969ec529f0ac6e95
CRs-Fixed: 941355
2015-12-09 23:21:38 -08:00
Houston Hoffman
3d491e2e07 qcacld-3.0: Bypass hif_completion_thread in recv
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.

Change-Id: I7953545b55dae093931741359bbf985e2fb9faca
CRs-Fixed: 941358
2015-12-09 23:21:38 -08:00
Houston Hoffman
e0d54529fb qcacld-3.0: Move force break to CE_state
Removing references to global data in the processing of
copy engine interupts.

Change-Id: I4d18198c392aab8c46aa755e2007ba2da0c47a57
CRs-Fixed: 941355
2015-12-09 23:21:38 -08:00
Naveen Rawat
efa0108205 qcacld-3.0: Enable gEnableTxSUBeamformer by default
This patch enables gEnableTxSUBeamformer by default in config ini
which will help to uncover some of the bugs in default DEV testing.

Change-Id: Ib64d53d307aced8f5384d691a3d7f4b383d52a0f
CRs-Fixed: 930322
2015-12-09 23:21:38 -08:00
Naveen Rawat
e7d8605471 qcacld-3.0: Increase SME cmd queue to support max clients connected
This is qcacld-2.0 to qcacld-3.0 propagation

Currently in SAP mode, if max STA connected a operation to turn off
SAP will result in more than SME queue length cmds being enqueued.
To fix, this patch:
1) Makes the SME cmd queue length, 3 times the max STA.
2) Because of increased SME cmds, the allocation for all cmds
   together will fail, hence allocate each SME cmd individually
   and free them accordingly.

Change-Id: Ia1dfc5b00eacd9bdb503ce18927c62f1edd15320
CRs-Fixed: 928840
2015-12-09 23:21:38 -08:00
Naveen Rawat
b493844375 qcacld-3.0: Add support for FST Action frames
This is qcacld-2.0 to qcacld-3.0 propagation

Currently driver drops the action frame category 18 - FST action frames.
This patch adds support for these frames in wlan host code.

Change-Id: I7021e328b7ebe9a1e46f526e3928c7d1279e1ad7
CRs-Fixed: 921117
2015-12-09 23:21:38 -08:00
Naveen Rawat
c0c91cd58c qcacld-3.0: Fix UL TPUT issue when connected to 160MHz AP
This is qcacld-2.0 to qcacld-3.0 propagation

When STA is connected to 160MHz AP, channel width is updated to
20MHz since the 160MHz channel width is not handled.
Add support to handle the 160MHz BW in beacon IEs.

Change-Id: Id13164762d6da142093f049121440ce976cecfc1
CRs-Fixed: 924219
2015-12-09 23:21:38 -08:00
Masti, Narayanraddi
f8f6e7e95d qcacld-3.0: free cfgState->buf in failure cases.
qcacld-2.0 to qcacld-3.0 propagation

As part of cleaning up pending action frame, if timeout happens
for tx cnf event then indicate tx failure status as FAIL and free
cfgState->buf to avoid memory leak.

Change-Id: I6caaa8efeab769cce8c4cdfcc868101e63fd8e76
CRs-Fixed: 880779
2015-12-09 23:21:38 -08:00
Masti, Narayanraddi
fd0d19c399 qcacld-3.0: channel bonding is not valid for channel 14
qcacld-2.0 to qcacld-3.0 propagation

Channel bonding mode in not valid for channel 14. So don't
consider it while deriving the channel bonding mode.

Change-Id: I7ceae149cdd9e2f3c75f937c56cc5e93455fa8ee
CRs-Fixed: 908439
2015-12-09 23:21:37 -08:00
Masti, Narayanraddi
1c63044721 qcacld-3.0: Delete all TDLS peers on receiving CSA from AP
qcacld-2.0 to qcacld-3.0 propagation

On receiving channel switch announcement from AP delete all TDLS
peers before leaving BSS and proceed for channel switch.

Change-Id: I898f501d9d0afbbfef3a553ed63b52da5cd8f978
CRs-Fixed: 914129
2015-12-09 23:21:37 -08:00
Masti, Narayanraddi
f049382092 qcacld-3.0: Send assoc response for duplicate assoc request frames
qcacld-2.0 to qcacld-3.0 propagation

Few STA/P2P-client's are sending assoc req frame and waiting for
300-500ms. If they don't receive the assoc resp frame within
this time then they resending the assoc req frame. These frames
are not going to have retry bit set.

In the current design host driver is not handling these duplicate
assoc req frames without retry bit set.

To mitigate this issue, while processing assoc request frame,
if pStaDs entry already exists then send assoc response with
same tid and stop processing the assoc req further.

Change-Id: I6d67f4cd352bbee422301b832742e7386666037f
CRs-Fixed: 868736
2015-12-09 23:21:37 -08:00
Masti, Narayanraddi
3d8690cf14 qcacld-3.0: Fix memory leak in tx flow control timer
qcacld-2.0 to qcacld-3.0 propagation

TX flow control timer initialized when STATION interface is created.
During IBSS startup, STATION interface is changed to ADHOC type.
TX flow control timer is not required, so close tx flow control
and destroy timer.

Change-Id: Id9c440638964fb3ab0e95d8a7c747708886a94ff
CRs-Fixed: 882821
2015-12-09 23:21:37 -08:00
Masti, Narayanraddi
c4a7ab8239 qcacld-4.0: TDLS: provide operating class and channel to HAL
qcacld-2.0 to qcacld-3.0 propagation

1.Provide off channel and operating class info to user space
in HAL API wifi_get_tdls_status. If off channel is not enabled
then provide base channel info and in that case pass opclass as 0.
2.Provide correct tdls state based on tdls off channel
configuration.

Change-Id: Ic60500b95ebddcb88b4e03f29178068c5322b2b9
CRs-Fixed: 838167
2015-12-09 23:21:37 -08:00
Masti, Narayanraddi
21bde25bda qcacld-3.0: Fix race condition between disassoc/deauth from peer
qcacld-2.0 to qcacld-3.0 propagation

When disassoc request is received from peer and at the same time
if deauth request is received from supplicant, LIM cleanup
may not happen properly as there is a chance of session deletion
in limSendSmeDeauthNtf while cleanup in progress from
limProcessSmeDisassocCnf. This can result in not sending delbss to FW.
Hence, FW can crash when config bss is sent for new connection.

Following changes are added to handle this.
1. Add state eLIM_SME_WT_DISASSOC_STATE in __limProcessSmeDeauthReq
   and allow host to post LIM_MLM_DEAUTH_REQ instead of invoking
   limSendSmeDeauthNtf, where session is deleted.

2. Send eWNI_SME_DEAUTH_RSP if cleanup is already in progress to avoid
   cleanup again. If mlm state is not eLIM_MLM_LINK_ESTABLISHED_STATE,
   then it means cleanup is already in progress.

3. Return from __limProcessSmeDisassocCnf if cleanup is already in
   progress.

4. Add check in limProcessMlmDeauthCnf to send deauth confirmation even
   if state is eLIM_SME_WT_DISASSOC_STATE.

5. Add similar checks in limProcessMlmDisassocReqNtf to handle disassoc
   from peer and supplicant simultaneously.

Change-Id: Ie19a7b79d835a5e5a77ef48f9379c1cf90dc38d7
CRs-Fixed: 878334
2015-12-09 23:21:37 -08:00
Nirav Shah
bf6450fa5b qcacld-3.0: CL 1411038 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

add WMI_TRANSFER_TO_FLASH message defs.

CRs-Fixed: 935128
Change-Id: I21c55e7aee54c4f6beb6f455a395d1e2a233c9d9
2015-12-09 23:21:37 -08:00
Satish Singh
eea62029a7 Release 5.0.0.147 QCACLD3 WLAN Driver
Release 5.0.0.147 QCACLD3 WLAN Driver

Change-Id: Ib90ae6900b75fa0626f1c32f84a1f65abd1dda6c
CRs-Fixed: 688141
2015-12-02 12:57:08 -08:00
Dhanashri Atre
cb979fa188 qcacld-3.0: Remove unused LRO logging function
Remove LRO logging function that is not used

CRs-Fixed: 943482
Change-Id: Ia0c3dd93d02183ae7ace2d930fb874ca01b4397e
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
2e60287b81 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirTdlsLinkEstablish Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in tSirTdlsLinkEstablish Req/Rsp.

Change-Id: I089e9835e08aa029b25113f260b4ba3088599075
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
0e321a956c qcacld-3.0: Remove obsolete struct sSirTdlsDisappearAPInd
Remove obsolete struct sSirTdlsDisappearAPInd

Change-Id: Ia9823cddc401374b0e411f50c9618a8aceee56af
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
96d68d3eee qcacld-3.0: Remove obsolete struct sSirPsReqData
Remove obsolete struct sSirPsReqData.

Change-Id: I262fcd2e9e5a7258bc516533f1bafe6a54011065
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
9dc32cfb0f qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirLPHBTcpParamStruct
Replace tSirMacAddr with cdf_mac_addr in sSirLPHBTcpParamStruct

Change-Id: I55cbe3c441c2b1540e946e52c815bc5518935964
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
9eddfdaf4c qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirLPHBUdpParamStruct
Replace tSirMacAddr with cdf_mac_addr in sSirLPHBUdpParamStruct

Change-Id: I6439494feb18824cc9054c66ae426646c055f3d4
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
afede1885a qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirRateUpdateInd
Replace tSirMacAddr with cdf_mac_addr in sSirRateUpdateInd.

Change-Id: I28dc76e07721f6472bbc1ec5c107cd12b2123a8f
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
34b634c4d5 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirModifyIE
Replace tSirMacAddr with cdf_mac_addr in sSirModifyIE.

Change-Id: I36783326eb35bd6c9c4987ae0655b0313f398886
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
8b98396253 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirUpdateIE
Replace tSirMacAddr with cdf_mac_addr in sSirUpdateIE.

Change-Id: Id190e74be5063ecd7792380c6f25ba8de1461c51
CRs-Fixed: 898864
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
0f09f999bd qcacld-3.0: Find extscan_in_progress irrespective of connected or pno
This is a qcacld-2.0 to qcacld-3.0 propagation.

The problem with the current code is we are finding whether connected or
pno_in_progress or extscan_in_progress in the same for loop and whenever
one of them matches, we break out of loop. It makes sense to keep
connected flag and pno_in_progress inside the for loop because both are
mutually exclusive. But same is not the case with extscan_in_progress,
this flag can be set to true or false irrespective of connected or
pno_in_progress.

Hence the fix is to move finding extscan_in_progress to a separate for loop.

Change-Id: Ie72ff7f7382adaea5626c0808a206d18c2916e0d
CRs-Fixed: 899322
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
a4db76f1f2 qcacld-3.0: Cleanup WOW_NLO_SCAN_COMPLETE_EVENT
This is a qcacld-2.0 to qcacld-3.0 propagation.

Currently WOW_NLO_SCAN_COMPLETE_EVENT is enabled on receiving
PNO match found event, but it is never cleared.
This is causing regular host wake ups with the reason
WOW_REASON_NLO_SCAN_COMPLETE even if pno match is not found in the
next successive iterations.

Fix this by enabling/disabling WOW_NLO_SCAN_COMPLETE_EVENT before suspend
based on the flag pno match is found.

Change-Id: I21d73de0c03e0c09b5a91a521d848e71eaf359e0
CRs-Fixed: 888964
2015-12-02 12:55:30 -08:00
Srinivas Girigowda
e80cea9353 qcacld-3.0: Add support for wakeable NLO_SCAN_COMPLETE_EVENT
This is a qcacld-2.0 to qcacld-3.0 propagation.

With RunTime PM feature enabled, after receiving the PNO matched event
RunTime PM puts the host back in WoW suspend after 500ms (default).
Since WMI_NLO_SCAN_COMPLETE_EVENTID is not a wakeable event, this event
does not wakeup the host hence PNO scan not completed and PNO is broken.

Fix this by making NLO_SCAN_COMPLETE_EVENT a wakeable event.
Host driver configures this WoW event only after PNO match is received.

Change-Id: I81cccc86942fc75bc63235038c50ba6edb0fee8b
CRs-Fixed: 884211
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
f2599dd3c6 qcacld-3.0: WLAN logs cleanup
This is a qcacld-2.0 to qcacld-3.0 propagation.

1. Add log to print ssid, bssid, rssi, channel and country code
   while connecting to an AP.
2. Add log to print disconnect reason when disconnect request is
   received from user space.
3. Cleanup some of the logs moving it to appropriate log level
   which are showing up as ERROR level in bug report.

Change-Id: Id8ea69a14a18565c226f89a8a5e10be46741d76d
CRs-Fixed: 914336
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
ba3091c366 qcacld-3.0: Increase MAX_CFG_INI_ITEMS to 1024
This is a qcacld-2.0 to qcacld-3.0 propagation.

Increase the maximum config ini items from 512 to 1024.

Change-Id: I5c4958d5c743f1e0b03a4f7b41e21ff9787ccd07
CRs-Fixed: 914336
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
117e7fbb09 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sir_ocb_config_channel
Replace tSirMacAddr with cdf_mac_addr in struct sir_ocb_config_channel.

Change-Id: I0f22ba3b3b63f8d56d3285522c0d8d1303e2f89c
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
296105aaad qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sAniDHCPStopInd
Replace tSirMacAddr with cdf_mac_addr in sAniDHCPStopInd.

Change-Id: I56dfa86947e9711c8727d4e3d025f0f03fc39d3c
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
4962a56771 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sAniGetTsmStatsReq
Replace tSirMacAddr with cdf_mac_addr in sAniGetTsmStatsReq.

Change-Id: I1f98fdfdaddf79af848c927d1443dcf6e52bcb54
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
37c133b074 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeMicFailureInd
Replace tSirMacAddr with cdf_mac_addr in sSirSmeMicFailureInd.

Change-Id: I65371e094fc8fb02a400960aca192b5bf7034413
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
c8b79e4170 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeTkipCntrMeasReq
Replace tSirMacAddr with cdf_mac_addr in sSirSmeTkipCntrMeasReq.

Change-Id: I404f7b7976b8d3096e9a8963710a019e8671b1fe
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
a1f8bac49b qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeWmStatusChangeNtf
Replace tSirMacAddr with cdf_mac_addr in sSirSmeWmStatusChangeNtf.

Change-Id: I13de201aa76556db36f256066482104d2ffb34ef
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
40567b94a1 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirResetAPCapsChange
Replace tSirMacAddr with cdf_mac_addr in sSirResetAPCapsChange.

Change-Id: Ife3e49f1902baafaddf5f304dd423451319f2783
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
26ebb19c31 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeApNewCaps
Replace tSirMacAddr with cdf_mac_addr in sSirSmeApNewCaps.

Change-Id: I785b2631e149e44835e2cf53d997673b9c5515c0
CRs-Fixed: 898864
2015-12-02 12:55:29 -08:00
Srinivas Girigowda
065e777947 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeNewBssInfo
Replace tSirMacAddr with cdf_mac_addr in sSirSmeNewBssInfo.

Change-Id: I5c27589009ee2f517c8a99ed0909c8cb5620293e
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
0ee6686841 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sLimMlmOemDataReq
Replace tSirMacAddr with cdf_mac_addr in sLimMlmOemDataReq.

Change-Id: I4589769f9d875347a4a5c10cd755c931b98fa8f7
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
fd06152abe qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirNewIbssPeerInfo
Replace tSirMacAddr with cdf_mac_addr in sSirNewIbssPeerInfo.

Change-Id: I16cf3439fba77755429627baa26b5f87988cd81e
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
9721523f8e qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sMaxTxPowerParams
Replace tSirMacAddr with cdf_mac_addr in sMaxTxPowerParams.

Change-Id: Ia9f66cfd3a520019a83d671b7869d49558856698
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
2c6bf00570 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeScanReq
Replace tSirMacAddr with cdf_mac_addr in sSirSmeScanReq.

Change-Id: I805e32462c89d72bd8a038eaef0379f7b58b33c3
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
a5bf543104 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirScanOffloadReq
Replace tSirMacAddr with cdf_mac_addr in sSirScanOffloadReq.

Change-Id: Ia42f230491b0500f612c983c5769401249b6d961
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Srinivas Girigowda
450f716e48 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirRemainOnChnReq
Replace tSirMacAddr with cdf_mac_addr in sSirRemainOnChnReq.

Change-Id: I75594fc51ae1a82ef08b3e0b43c2a8733387b9af
CRs-Fixed: 898864
2015-12-02 12:55:28 -08:00
Rajeev Kumar
1a65e5801e qcacld-3.0: Fix agc registers dump logic to avoid fw assert
Propagation from qcacld-2.0 to qcacld-3.0

- Current AGC registers dump logic is not correct and its not
  reading correct target registers
- Add correct AGC register read recipe to read correct AGC data
- Wake up SoC before reading any target register

Change-Id: I38016f91bf3d124e93e304522058e97daa711f4a
CRs-Fixed: 911554
2015-12-02 12:55:28 -08:00
Rajeev Kumar
274034cd12 qcacld-3.0: Do not allow NoA setting in non P2P GO mode
Propagation from qcacld-2.0 to qcacld-3.0

- FW asserts after receiving P2P NOA parameter in non P2P GO mode
- Add P2P GO mode check in set NOA IOCTL and do not allow this command
  in non P2P GO modes

Change-Id: Ie786dcf33fc50eacadb407d74ae5638da68cf0d2
CRs-Fixed: 919889
2015-12-02 12:55:28 -08:00
Chandrasekaran, Manishekar
c841692ae4 qcacld-3.0: Restore service ready extended event
Restore the support for service ready extended
event since the required FW support is in place.
Without the service ready extended event, the
FW mode configuration and scan mode
configuration in the driver would be initialized
to zero i.e., all the dual mac features would
be disabled. Otherwise, the default values of
these two params would be set based on the
default values present in this extended event,
which is set by the FW.

CRs-Fixed: 923182
Change-Id: I31aa6420f3076f61008a809fe134b99f9b0dbc08
2015-12-02 12:55:28 -08:00
Sandeep Puligilla
4f1ae707e7 qcacld-3.0: unlock the sme scan active list
Sme is stuck due to scan active list mutex lock.

Release the sme scan active list lock if the
active list is empty.

Change-Id: Id05c642fe6fad30e40efa18a213158c331b5a502
CRs-Fixed: 943583
2015-12-02 12:55:28 -08:00
Edhar, Mahesh Kumar
5cd1e0eb17 qcacld-3.0: Changes to add supported operating class IE
qcacld-2.0 to qcacld-3.0 propagation

Add supported class IE in beacon and probe response frames.

Change-Id: Ife4cb1b3db0119a9472cad0f861887c487b147d3
CRs-Fixed: 941466
2015-12-02 12:55:28 -08:00
Edhar, Mahesh Kumar
695468e069 qcacld-3.0: Protect dfs_radar_found global variable using lock
qcacld-2.0 to qcacld-3.0 propagation

dfs_radar_found variable will be accessed in different context
so protect the same with mutex lock and synchronize the channel
switch triggered by application and dfs module.

Change-Id: I724d22cde9a77c187a17dffef13a9b4c9b2c27da
CRs-Fixed: 809527
2015-12-02 12:55:27 -08:00
Edhar, Mahesh Kumar
df2ec12f48 qcacld-3.0: Properly handle channel switch through ioctl
qcacld-2.0 to qcacld-3.0 propagation.

1)Validate channel switch w.r.t concurrency rules set and switch
  channel only if there is no channel interference.
2)Disable channel bonding in 2.4Ghz on switching channel to 2.4Ghz band
  to avoid violating OBSS feature.

Change-Id: I81992b2c2876a32eba52010e72c4300608067e58
CRs-Fixed: 809527
2015-12-02 12:55:27 -08:00
DARAM SUDHA
6d0ea36ace qcacld-3.0: debug check for l_rx_defrag_waitlist_remove(2)
qcacld-2.0 to qcacld-3.0 propagation

Add extra check for tqe->next!= NULL, to assert in only error scenario

Change-Id: I12e8ca5d5133ee0480d9c7c7c208854630272c89
CRs-Fixed: 839312
2015-12-02 12:55:27 -08:00
Leo Chang
376398b24d qcacld-3.0: optimize data path memory allocation
When allocate HTT descriptor, instead of allocating
large single chunk of memory, allocate small sized multiple
chunk of memory. Then not need to allocate order 5 memory.
Will have less chance to have memory alloc fail problem.
HTT descriptor. Frag descriptor. OL descriptor. TSO descriptor

Change-Id: Ib9d4a3f10adbc0656e1418cf3a67429322bb7164
CRs-fixed: 845666
2015-12-02 12:55:27 -08:00
Leo Chang
0cda893fd6 qcacld-3.0: qcacld-2.0: replace semaphore to completion
qcacld-2.0 to qcacld-3.0 propagation

HTC RX event wait semaphore waiting event infinte.
Infinte waiting will hang device and cannot getting out from
system hang. To collect FW RAM dump and make correct panic,
semaphore should be replaced with time limitted compeletion

Change-Id: Idabfc7916676c9e986e953b50108653a5b394278
CRs-fixed: 924387
2015-12-02 12:55:27 -08:00
Satish Singh
884eaee246 Release 5.0.0.146
Release 5.0.0.146

Change-Id: Iaf2bfeee2b5ca2b66165808d9a69ecd2472a09cd
CRs-Fixed: 688141
2015-11-25 17:28:47 -08:00
Sachin Ahuja
a557a00a74 qcacld-3.0: Increase the rate array for extended rate set.
qcacld-2.0 to qcacld-3.0 propagation

Currently while populating ext rate set, local rate array
has size as 8.But max 12 ext rates can be copied in this
local rate array.If it is greater than 8, then it leads
to crash.
To resolve this issue, increase the local rate array from
8 to 12.

Change-Id: I2097cc4feb7fa669a970de5463130bb4bbf6401c
CRs-Fixed: 903816
2015-11-25 17:26:48 -08:00
Sachin Ahuja
bef8c10a92 qcacld-3.0: Avoid sending positive RSSI value to framework.
qcacld-2.0 to qcacld-3.0 propagation

Currently if STA is very near to connected AP, it sends the
positive value of RSSI to framework. Framework checks this RSSI
and if positive(greater than 0) then it consider RSSI as -127dbm
which may lead to disconnection.
So changes are done to avoid sending the positive RSSI value
greater than 0.

Change-Id: Ib417f48345e3f78dba54d68969fa15d294f313b9
CRs-Fixed: 842243
2015-11-25 17:26:48 -08:00
Sushant Kaushik
90ed9e3bb9 qcacld-3.0: Allow addTspec in 11b mode.
qcacld-2.0 to qcacld-3.0 propagation

Currently if sta is connected to an AP
which only supports 11b, lim doesn't send
addTspec request to that AP. Specs doesn't
restrict Tspec in 11b. As a part of fix,
allow addTspec in 11b.

CRs-Fixed: 847755
Change-Id: I57c2d5139f9861140ab3bbe8314a1a3fe3e80e19
2015-11-25 17:26:48 -08:00
Orhan K AKYILDIZ
c409461034 cld-3.0: Remove warnings issued by static analysis
Some of these are very remote scenarios (like HIF not being
initialized at the time of the calls, which could then
dereference a NULL pointer). There are a few cases of looping
beyond boundaries.

The scope of this update is limited to NAPI related code.

Change-Id: I60229406d5ab514d5465ef2569324d3d4eb430d4
CRs-Fixed: 938253
2015-11-25 17:26:48 -08:00
Chandrasekaran, Manishekar
96c9096523 qcacld-3.0: Fix channel width assignment to improper enum value
Fix the channel width of type 'enum hw_mode_bandwidth' getting
wrongly assigned to enum of type 'tSirWifiChannelWidth'. The
tag values of each of these enums are different.

CRs-Fixed: 942090
Change-Id: Ic3610e6fcb7c89f0aeed829b83869169f4596ce8
2015-11-25 17:26:48 -08:00
mukul sharma
72c8b22a2d qcacld-3.0: Add support for 11w offload feature
This change Adds 11w offload feature, This change includes:

1. SA Query time out Kickout reason handling
2. Add a new service bit map for 11w offload and cache it to pMAc
3. Error logging in following unexpected case
   a) Unprotected deauth / diasssoc from peer AP,
   b) reception of SA query action frame in SAP / STA vde mode
4. Configure sta sa query related parameters as a part of
   sta vdev attach
5. Trim mmie for pmf bcast/mcast mgmt frames

Change-Id: If119e9a79185552e163834f7c6c3a14288fe2761
CRs-Fixed: 931630
2015-11-25 17:26:48 -08:00
Sanjay Devnani
a64b512a9e qcacld-3.0: Check if unload is in progress during suspend
If unload in progress, abort suspend. causes null pointer ref otherwise

Change-Id: I7028b6f0efc9da62352b561e9def90ff9bffd5e6
CRs-Fixed: 878755
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6bd8a2e02b qcacld-3.0: Remove redundant code in __wlan_hdd_cfg80211_connect()
qcacld-2.0 to qcacld-3.0 propagation

Make changes to invoke wlan_hdd_cfg80211_connect_start() one time instead
of two instances of invoking the same function using local variables.

Change-Id: I2aba87645296414f340c89b6bd2f556b05f05115
CRs-Fixed: 898565
2015-11-25 17:26:47 -08:00
Hanumantha Reddy Pothula
2db50edd69 qcacld-3.0: wlan: Cleanup North-Bound load/unload logs
qcacld-2.0 to qcacld-3.0 propagation

If IOCTLs or CFG callbacks are issued continuously during driver
load/unload or during SSR, observing stability issues because of
excessive logging.
Hence move log level to INFO from ERROR in wlan_hdd_validate_context
function and don't print return status in its caller functions.

Change-Id: I8fd9b25e0c774e1e12b01128eb86783c9dec2ab7
CRs-Fixed: 800631
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
75deb33157 qcacld-3.0: Add DS param IE in probe req frame
qcacld-2.0 to qcacld-3.0 propagation

Currently DS param IE is not present in probe req frames.
Set bit11 in scan_ctrl_flags to add DS param IE in probe req.

Change-Id: I57f79bd6dc5bd452987cb7d09cafa425ea2bbff4
CRs-Fixed: 905421
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6744cffe00 qcacld-3.0: Add MTRACE logs for missing cfg80211_ops callbacks
qcacld-2.0 to qcacld-3.0 propagation

Currently, MTRACE logs are not captured for few cfg80211_ops callbacks
and SME functions. Add missing MTRACE logs in cfg80211_ops callbacks
before calling SME function and also in few SME functions.

Change-Id: Iced4b80de60f9640cad0342afac57f9a17c2a3e2
CRs-Fixed: 859961
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6f3a865a2b qcacld-3.0: wlan: Remove redundant validation of pAdapter
qcacld-2.0 to qcacld-3.0 propagation

Validation of pAdapter done in starting of hdd_smeRoamCallback().
Remove redundant pAdapter validation under flag eCSR_ROAM_SESSION_OPENED.

Change-Id: I1619bc929e484a60a930779a2acae071a710453a
CRs-Fixed: 898391
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
32eadb109e qcacld-3.0: wlan: Deregister all the peers from TL during IBSS leave
qcacld-2.0 to qcacld-3.0 propagation

If user change the BSSID/SSID and restart the IBSS network, during
IBSS leave the driver deletes only the 1st peer and all other
entries are not deleted. Now when the IBSS restarts and try to
register a sta with the staID which is already present in the
stale entries, the registeration fails and thus the BSSID values
in TL are not updated for all these stale peers. Due to this the
data to these peers uses the old BSSID.
This change take care of Deregistering all the active IBSS peers
during IBSS leave.

Change-Id: Id1ce0ffd880b8c2c8afd46414a59ba7bb87d5b6f
CRs-Fixed: 841565
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
945541391b qcacld-3.0: remove misprint in ol_txrx_peer_find_add_id()
qcacld-2.0 to qcacld-3.0 propagation

During create peer, 'delete peer' print is coming from
ol_txrx_peer_find_add_id(). Peer deletion is not happened when
ol_txrx_peer_find_add_id() calls ol_txrx_peer_unref_delete().
Actual peer deletion is happening in ol_rx_peer_unmap_handler().
So, remove 'delete peer' print in ol_txrx_peer_find_add_id().

Change-Id: If37a573f6ff734743c3901b96c7134c81b35e4c7
CRs-Fixed: 902463
2015-11-25 17:26:47 -08:00
Nirav Shah
3650780ece qcacld-3.0: Do not lock to free all packets to avoid watchdog bark
Propagation from qcacld-2.0 to qcacld-3.0

Do not take single lock to free all TLSHIM packets
to avoid watchdog bark during driver unload.

CRs-Fixed: 934555
Change-Id: Iebfb449bd8174bc27207d33073c84a8f11d6e490
2015-11-25 17:26:47 -08:00
Hanumantha Reddy Pothula
616dfbe6fc qcacld-3.0: Update MCS index appropriately
qcacld-2.0 to qcacld-3.0 propagation

When AP is configured with MCS index less than 4(43Mbps) then Host
reports invalid MCS Index to upper-layer, leading to display invalid
link speed on GUI.
Updating MCS index with valid value and thereby updating correct MCS
index to upper-layer

Change-Id: Ibd1503be3825c879b7fa52bdfb6ff07423c39023
CRs-Fixed: 855022
2015-11-25 17:26:46 -08:00
Hanumantha Reddy Pothula
5090805f15 qcacld-3.0: Return NULL if zero is passed as argument to allocate memory
qcacld-2.0 to qcacld-3.0 propagation

While allocating memory if zero is passed as argument then kernel will
return address ZERO_SIZE_PTR(0x10) leading to pass NULL check, which is
usually done after every memory allocation. Hence when zero is passed to
allocate memory then return NULL without calling kmalloc.
While initializing neighbor roam data structure, don't allocate memory
if neighbor roam channel list is empty.

Change-Id: I50bdb99a0cd8ccbc2d764b8ac21f66bba8a8fdc4
CRs-Fixed: 815664
2015-11-25 17:26:46 -08:00
Hanumantha Reddy Pothula
3b8c0a5ba8 qcacld-3.0: Check priviledge permission for SET_CHANNEL_RANGE
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing SET_CHANNEL_RANGE IOCTL,
making sure user task has right permission to process the command.

Change-Id: I48bcd55bee45203667bcc679db4ad96aa9e04b7c
CRs-Fixed: 930555
2015-11-25 17:26:46 -08:00
Govind Singh
e55e699ade qcacld-3.0: Fix static code analysis errors
qcacld-2.0 to qcacld-3.0 propagation

Updated the wma, htt modules to address the
issues reported by static code analysis.

CRs-Fixed: 933728
Change-Id: I3437f7d9a12475f4a854412d9f34f48ed7553848
2015-11-25 17:26:46 -08:00
Govind Singh
f139e83f8e qcacld-3.0: clean up of ERROR logs
qcacld-2.0 to qcacld-3.0 propagation

Misleading error logs are removed
as part of this fix

CRs-Fixed: 929840
Change-Id: Ifdc10b79359863a4f3c2009403ee5f6c7ab18110
2015-11-25 17:26:46 -08:00
Xun Luo
a858a47ead qcacld-3.0: clear WMI work queue before bus context destruction
qcacld-2.0 to qcacld-3.0 propagation

All WMI work queue should be cleared and processing stopped before
bus context destruction. This change enforces this rule.

Change-Id: I2e12f3f08424f718ec66fe257060ce13de17ee4e
CRs-Fixed: 840422
2015-11-25 17:26:46 -08:00
Houston Hoffman
4c9607b607 qcacld-3.0: Bypass hif_completion_thread in fw event
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.

Change-Id: I73b8518d87645d827814cd1345eb68370de30d1f
CRs-Fixed: 941358
2015-11-25 17:26:46 -08:00
Houston Hoffman
bada641804 qcacld-3.0: Bypass hif_completion_thread in send
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.

Change-Id: I19660327ebb4a3cbb9908ce562ab6c72a6282e95
CRs-Fixed: 941358
2015-11-25 17:26:46 -08:00
Himanshu Agarwal
94045e429d qcacld-3.0: Fix static code analysis errors
Propagation from qcacld-2.0 to qcacld-3.0

Updated the wma, pe module to address the issues reported by static code
analysis.

Change-Id: I8666adf161225014108c189cbcffced9450ae0c4
CRs-Fixed: 889019
2015-11-25 17:26:46 -08:00
Karthick S
7a17a71bb0 qcacld-3.0: Free protection_fields_reset_timer
qcacld-2.0 to qcacld-3.0 propagation

Free protection_fields_reset_timer in the beginning of peDeleteSession
function to avoid the null defreference caused due to the race condition
between peDeleteSession and pe_reset_protection_callback.

Change-Id: I1b83977bb3683d6dd87ec94a992ac51f39cd97db
CRs-Fixed: 815796
2015-11-25 17:26:46 -08:00
Karthick S
cbb555aa3f qcacld-3.0: Stop HIF service before HTC cleanup
HIFStart is called from HTCWaitTarget in the vos_open function. If
vos_open fails later, the HIFStop is not called to cleanup what is done
in the HIFStart. This change fixes this issue.

qcacld-2.0 to qcacld-3.0 propagation

Git-commit:98808985fb6037c6f33af396aae38224f91c8b4d

Change-Id: Id30f41d953e4582db57a98fff14e3f68447239f1
CRs-Fixed: 831608
2015-11-25 17:26:46 -08:00
Mukul Sharma
f8511dcee4 qcacld-3.0: Avoid SSR injection when driver load is in progress
Propagation qcacld-2.0 to qcacld-3.0

Host avoid SSR injection ioctl using hdd->isLoadInProgress,
But ol_target_failure handler checks for the
cds_set_load_unload_in_progress. As these two flags are not
set back to back so there is possible time window in which
SSR ioctl is allowed but ol target failure handling is not
allowed.

Change-Id: Ib97d3693f82f6ca94fa048a8120786065e99087a
CRs-Fixed: 913741
2015-11-25 17:26:46 -08:00
Karthick S
571df0e4e9 qcacld-3.0: Add NULL sanity check for HTC_HANDLE
qcacld-2.0 to qcacld-3.0 propagation

System crash happened due to accessing NULL pointer in HTCSendPkt.
so added null sanity check to prevent this scenario.

Change-Id: I4c07840eb176847c4a66efc42cd810213e1369b0
CRs-Fixed: 838998
2015-11-25 17:26:45 -08:00
Karthick S
c40696df00 qcacld-3.0: set proc_dir to NULL
qcacld-2.0 to qcacld-3.0 propagation

In athdiag_procfs_remove, set proc_dir to NULL after removing the
directory. This is to avoid trying to remove the directory which is
already removed.

Change-Id: I01526f4b59ccc991d157c1028d4df5904338f182
CRs-Fixed: 868965
2015-11-25 17:26:45 -08:00
Mukul Sharma
156278d9b8 qcacld-3.0: prevent double free of ft pre auth response
Propagation qcacld-2.0 to qcacld-3.0

while processing ft pre auth response, if memory allocation fails
then host is not setting psavedFTPreAuthRsp to null. Later sme is
freeing same memory as freeing pMsg->bodyptr. Hence on next
disconnect, sme_FtReset try to free psavedFTPreAuthRsp which is
already free.
As a part of this fix, host ensure to set psavedFTPreAuthRsp
Null in all cases.

Change-Id: I144786cd4206bf273d2ffa63889af109cd2744dd
CRs-Fixed: 916416
2015-11-25 17:26:45 -08:00
Abhishek Singh
1bdb157ba5 qcacld-3.0: Implement ECSA Action Frame
qcacld-2.0 to qcacld-3.0 propagation

Implement:
1. Send & receive logic of ECSA action frame from P2P-CLI/GO
2. Trigger channel change on P2P GO side once ECSA action frame
   is received by,
  i) Adding CSA & ESCA IE in beacon template and updating FW to
     send it out .
  ii) Notifying supplicant of channel change for P2P GO.

This change include HDD changes

CRs-fixed: 895240
Change-Id: Iea66ddbbb8946443d5e701e3c14b2f33c6bb6bf8
2015-11-25 17:26:45 -08:00