Commit graph

424 commits

Author SHA1 Message Date
Ryan Hsu
dbf709a2e9 qcacld-3.0: fix regression for STA PNO WoW
qcacld-2.0 to qcacld-3.0 propagation

This is to fix the regression in the case of suspend request.
Below patch overkills the case for PNO and extscan in progress.

  Commit Subject: "Fix the PNO WoW is not configured in concurrency case"
  change id: I97084cfde73025f0d09b60616959c9530ba82c80

The combined condition check should be maintained to check
the case for PNO or extscan in progress, otherwise the WoW would
be enabled in the case PNO in progress is not enabled,
and end up not setting PNO patterns and failed to reconnect
after resume.

Change-Id: Icc5f19d07abea9fb25479452ce1c467d7811317c
CRs-fixed: 953257
2016-02-17 15:20:47 -08:00
Satish Singh
b5bc04a6e8 Release 5.0.0.154
Release 5.0.0.154

Change-Id: I90325f3ebc5cbbc70c3d4fc24060f6acc94e2beb
CRs-Fixed: 688141
2016-02-17 15:20:46 -08:00
Peng Xu
67bc552585 qcacld-3.0: Vendor command to scale TX power
This is for FR23278: Runtime configuration of softAP Tx power.
The value that send by the vendor command will set the power levels
as below:
	0 --- no scaling, 100%
	1 --- 50% of max power
	2 --- 25% of max power
	3 --- 12% of max power
	4 --- minimum power
Another vendor command is to decrease the power by actual db value.

CRs-fixed: 941772
Change-Id: I61d48299b4af361c214e2ab8bb1fa848161431de
2016-02-17 15:20:46 -08:00
Peng Xu
7b962531ff qcacld-3.0: Clean up usage of con_mode
Separate con_mode from adapter mode definition and clean up usage of
con_mode.

CRs-fixed: 917959
Change-Id: Ia058826cdb873558ab8703fcd4f80d37d3f782df
2016-02-17 15:20:46 -08:00
Manikandan Mohan
0aac2f1594 qcacld-3.0: CL 1432708 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Update SET BPF Instructions WMI TLV with missing item.

Change-Id: I691f55bb27a66e9833e87bd4c6221c505eba6454
CRs-fixed: 865207
2016-02-17 15:20:46 -08:00
Manikandan Mohan
032eb4869c qcacld-3.0: CL 1431762 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Update to add WMI interface for Berkeley packet filter feature.

Change-Id: Ib531691c227a4b9e4c4087f6eaf08796677c93c1
CRs-fixed: 865207
2016-02-17 15:20:46 -08:00
Manikandan Mohan
0b9e7a9294 qcacld-3.0: CL 1430888 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Update common WMI commands to merge firmware init of MCL and
WIN SWOL update

Change-Id: I732a70be17d451654f3fbbe6db84f62de6438862
CRs-fixed: 865207
2016-02-17 15:20:46 -08:00
DARAM SUDHA
5dabfc7759 qcacld-3.0: Fix datapath defects detected by Static code analyser
qcacld-2.0 to qcacld-3.0 propagation

Line 118: CID 50610 (#3 of 3): Out-of-bounds access (OVERRUN)
Line 200: CID 50680 (#1 of 1): Out-of-bounds read (OVERRUN)
Line 367: CID 50732 (#1 of 1): Out-of-bounds write (OVERRUN)
add TID validation check in RX_IND to avoid tid >19 scenario.

Change-Id: I32a3339902e231a8193fb8ee984ef029e24bc7e5
CRs-Fixed: 836067
2016-02-17 15:20:46 -08:00
Himanshu Agarwal
15df0cf75e qcacld-3.0: Avoid double free of vdev
Propagation from qcacld 2.0 to qcacld 3.0

Due to a race condition, vdev is getting deleted in
ol_txrx_vdev_detach and after that in
ol_txrx_peer_unref_delete, as vdev->delete.pending
is not equal to 0 as it is some garbage value, vdev
is getting deleted again causing crash.

This fix release the lock after checking
vdev->delete.pending so that before vdev gets deleted
in ol_txrx_vdev_detach, this check has been made and as
vdev->delete.pending is 0, it will not delete the
vdev in ol_txrx_peer_unref_delete and so vdev will be
deleted only once.

Change-Id: I4a7362b0e226c66ccb7c72243276d77e8df60b20
CRs-Fixed: 949397
2016-02-17 15:20:46 -08:00
Himanshu Agarwal
85d9c2e097 qcacld 3.0: Fix return type of few "cdf_atomic" APIs
Propagation from qcacld 2.0 to qcacld 3.0

The atomic variables are of integer type but "cdf_atomic_read",
"cdf_atomic_dec_and_test" and "cdf_atomic_inc_return" APIs
have return type of unsigned int. Because of this, these APIs
return positive value even when it is negative.

This fix change the return value of "cdf_atomic_read",
"cdf_atomic_dec_and_test" and "cdf_atomic_inc_return" APIs
from unsigned int to int so that negative value remains negative.

Change-Id: I9c4077547e1e1370bbb401af77b248944cdf25fa
CRs-Fixed: 902636
2016-02-17 15:20:46 -08:00
Abhishek Singh
e2a14d2f25 qcacld-3.0: Add extended rates in Assoc req if AP has it
qcacld-2.0 to qcacld-3.0 propagation

Extended Supported Rates are filled in Assoc req based on the
dot11mode and in Case dot11mode is 11A it's not filled.
Some AP have Basic rate in Extended Rate set in 11A mode.
Thus AP reject the association as Driver does not sent the extended
rate set in 11A mode.

Removed the dot11mode dependency for Extended Supported Rates.
With this change if AP have Extended Supported Rates driver will
add the Extended Supported Rates IE in Assoc req.

Change-Id: Ibd1c98a7cfae46988ff4434579edde7d4222841d
CRs-Fixed: 903270
2016-02-17 15:20:46 -08:00
Abhishek Singh
96c736af6d qcacld-3.0: Abort preauth if disconnect is received for the current AP
qcacld-2.0 to qcacld-3.0 propagation

If preauth is in progress with too many APs in the roamable AP
list and at the same time disconnect is received from supplicant as
part of unload, the deauth req will be queued in sme pending list
till csr completes the preauth process.

Now as part of unload, driver may purge the sme pending command list
and with it the disconnect command may also get removed if preauth
takes too much time.

This will lead to DEL BSS missing before HAL STOP and thus crash.

To avoid this abort the preauth process once disconnect is received.

Change-Id: I1c35f0c7e38295cfadafdad69f0b9a99ba61404c
CRs-Fixed: 942579
2016-02-17 15:20:46 -08:00
Satish Singh
3bd1aff8fb Release 5.0.0.153
Release 5.0.0.153

Change-Id: I30b27c1d77de35cacb94e0b1ac3f384e87dd7ece
CRs-Fixed: 688141
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
033aaebf05 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirFTUpdateKeyInfo
Replace tSirMacAddr with cdf_mac_addr in struct sSirFTUpdateKeyInfo.

Change-Id: I427217dfb4f08dde6bef874de6d68ca5281502e0
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
fbdb243908 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeSetContext Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in struct sSirSmeSetContext Req/Rsp.

Change-Id: If4f75c162dbb4156d462a927033f94b9170a518f
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
e3b61cc4b7 qcacld-3.0: Remove obsolete struct sAniGetStatsReq
Remove obsolete struct sAniGetStatsReq.

Change-Id: I8478e8d94f00b63ff2926ec4ea4e3dd7f271de13
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
24dab28011 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirAddtsReq
Replace tSirMacAddr with cdf_mac_addr in struct sSirAddtsReq.

Change-Id: I9a9f4cfc2185859c30d56ec4bc98891c9895531d
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
0fcbab2fe4 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirDelts Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in struct sSirDelts Req/Rsp.

Change-Id: I66f2b191b1eb823d395f70fc2c66697b377c7482
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
1e054ed6f1 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirAggrQosReq
Replace tSirMacAddr with cdf_mac_addr in struct sSirAggrQosReq.

Change-Id: I1f58cf95eb3028ef763cd624fa05dcdc288d820e
CRs-Fixed: 898864
2016-02-17 15:20:46 -08:00
Srinivas Girigowda
531a667f6c qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSmeIbssPeerInd
Replace tSirMacAddr with cdf_mac_addr in tSmeIbssPeerInd and
tSirIbssPeerInactivityInd.

Change-Id: Ie83aa414e312431aeb7f730a3f8027ea960acc36
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
430bfc3cab qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSmeMaxAssocInd
Replace tSirMacAddr with cdf_mac_addr in sSmeMaxAssocInd and
tSirSmeGetAssocSTAsReq.

Change-Id: Ie36a22b5ee5c823833981b51ef91525f6c6af692
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
05123e5051 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSmeCsaOffloadInd
Replace tSirMacAddr with cdf_mac_addr in tSmeCsaOffloadInd.

Change-Id: Iaf4357b2da216d9f11ca35331d45bff5193a2ee9
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
4c9722cde0 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in WowlEnterParams
Replace tSirMacAddr with cdf_mac_addr in WowlEnterParams.

Change-Id: Ifc2edce83693fb01ef4ea642727902d493347225
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
c250b07891 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPSIEsReq
Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPSIEsReq.

Change-Id: Ia6d8ea2523257caac541c84d10b7e6a81afc606b
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
2087d8cb3e qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirChangeBIParams
Replace tSirMacAddr with cdf_mac_addr in tSirChangeBIParams.

Change-Id: I21823288cb43379625ec892967eab432c89510cc
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Srinivas Girigowda
2a542e63fa qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSetHT2040Mode
Replace tSirMacAddr with cdf_mac_addr in tSirSetHT2040Mode.

Change-Id: I802cd0353e6a6408f911ccf26a80b938be8a6e48
CRs-Fixed: 898864
2016-02-17 15:20:45 -08:00
Sushant Kaushik
28556aa279 qcacld-3.0: Fix static analysis error in limProcessTdls.c
qcacld-2.0 to qcacld-3.0 propagation

Currently while populating 11a and 11b rates, there is
no bound check for rateset array. This can result in buffer
overflow. As a part of fix add bound check to avoid any
buffer overflow for the rateset.

CRs-fixed: 798054
Change-Id: Ib42f5de642ad54d5c2a1ccdab37d88928b98af01
2016-02-17 15:20:45 -08:00
Yuanyuan Liu
44748d460e qcacld-3.0: Add support of setting FW debug mode
FW needs the debug mode from WLAN INI file. After parsing INI file,
WLAN driver passes the mode value to platform driver, which uses
QMI message to exchange information with FW.

Change-Id: Ifd01b18bcfafad2344196d80ab17c605cca35972
CRs-Fixed: 942237
2016-02-17 15:20:45 -08:00
Naveen Rawat
83622ef789 qcacld-3.0: For LFR 3, save reassoc frame sent OTA by firmware
In LFR3 reassoc frame is sent by firmware and host or supplicant is not aware
of its content. Because of this supplicant does not have complete information
to perform EAP exchange with authenticator if fresh EAP exchange is requested.
To fix this:
1) Take the reassoc req frame passed by firmware and save that to pe session
   This frame will then be passed to supplicant through usual path.
2) In case of FT connection, do not pass key replay counter attribute to
   supplicant.

Change-Id: I51dd8004c910b45c7f25e9cd140448e592b096b3
CRs-Fixed: 943711
2016-02-17 15:20:45 -08:00
Naveen Rawat
f2a13f96c8 qcacld-3.0: Fix rrm capability update from config ini file
Get rrm capab from mac_ctx in function sme_get_config_param().

This ensures that subsequent calls to this function will correctly
update rrm config.

Change-Id: Iddaae66b94ccaa127f08fd0a897bc986a959a0eb
CRs-Fixed: 955114
2016-02-17 15:20:45 -08:00
Naveen Rawat
b13bf0365c qcacld-3.0: Move 5GHz channels ahead of 2 GHz for Early Stop
In case prefer 5 GHz preference is set, move the 5GHz channels ahead
of 2GHz channels in channel list as used in Early Stop Roaming Scan
feature. This ensures that while roaming, when these features are
enabled DUT will scan 5 GHz channels first and roam if a candidate
AP is found.

Change-Id: I96d997560a3eca5fd378aa3ed78c5766d097cafd
CRs-Fixed: 951959
2016-02-17 15:20:45 -08:00
Houston Hoffman
6f8f7e6397 qcacld-3.0: Recheck firmware indicator register after enabling interrupts
qcacld-2.0 to qcacld-3.0 propagation

We suspect that the firmware indicator interrupt is being dropped when
the firmware indicator interrupt is disabled.  Check the firmware indicator
after reenabling the firmware indicator interrupt.

Change-Id: I600bd9dfae99ab96dfaf7e3448cef9128f8b7357
CRs-Fixed: 925315
2016-02-17 15:20:45 -08:00
Houston Hoffman
6666df7fab qcacld-3.0: completion_freeq_lock needs initialization
Initialization of completion_freeq_lock was removed as part of
removing the completion thread.  The lock still protects the
variable num_sends_allowed for copy engines used for sending.

Change-Id: Ia52d2c1b839d2ccfedbd175f1b8f60f953d08203
CRs-Fixed: 951563
2016-02-17 15:20:45 -08:00
Houston Hoffman
a575ec2fa4 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-17 15:20:45 -08:00
Houston Hoffman
5cc292bf4c 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-17 15:20:45 -08:00
Vidyullatha Kanchanapally
74ab29827c 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-17 15:20:45 -08:00
Manikandan Mohan
7167413bb0 qcacld-3.0: CL 1427715 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

WMI changes to add reassoc_req_frame in wmi_roam_synch_event
add WMI_INIT flag for special WOW platform that no need pcie reset

Change-Id: Ica7653166239e5590d1daa62ec46971d8c905915
CRs-fixed: 865207
2016-02-17 15:20:45 -08:00
Manikandan Mohan
3ef9f3fce6 qcacld-3.0: CL 1427469 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

WMI event update to add dd_profile field to RC_TX_RATE_SCHEDULE
and WMI_SCAN_EVENT_FOREIGN_CHANNEL_EXIT

Change-Id: Ic9ba6dd82b2c6ea3d8894665270838a93a702f38
CRs-fixed: 865207
2016-02-17 15:20:45 -08:00
Manikandan Mohan
b42d7d297d qcacld-3.0: CL 1426046 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

WMI event update for SMPS complete

Change-Id: Ifb8583d96bc634c5570b538aac2cc93de9f9efcd
CRs-fixed: 865207
2016-02-17 15:20:44 -08:00
Manikandan Mohan
f40f47c932 qcacld-3.0: CL 1424628 update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Update for green AP feature related WMI TLVs and debug log ids

Change-Id: I1e7463ee201572ec6bd4cdcb681524fa1c68c82a
CRs-fixed: 865207
2016-02-17 15:20:44 -08:00
Ryan Hsu
09c45a93c9 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-17 15:20:44 -08:00
Ryan Hsu
f66f128fe1 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-17 15:20:44 -08:00
Deepak Dhamdhere
efcc4aa288 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-17 15:20:44 -08:00
Deepak Dhamdhere
b45399a48b 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-17 15:20:44 -08:00
Deepak Dhamdhere
ec64739635 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-17 15:20:44 -08:00
Abhishek Singh
1265091647 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-17 15:20:44 -08:00
Ganesh Kondabattini
0b4f0c6c16 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-17 15:20:44 -08:00
Abhishek Singh
2b0c3e2ced 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-17 15:20:44 -08:00
Sreelakshmi Konamki
2ad401a79d 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-17 15:20:44 -08:00
Ganesh Kondabattini
6798e7829f 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-17 15:20:44 -08:00