Commit Graph

2318 Commits

Author SHA1 Message Date
Krishna Kumaar Natarajan
9c323a8ceb qcacld-3.0: Fix check for identifying P2P action frame
Fix check for identifying P2P action frame by calling the helper
routine wlan_hdd_is_type_p2p_action().

Currently incoming frame buffer is checked against only for Public
action category and not for P2P OUI. Without this any Public action
frame could be incorrectly tagged as Provisionaly Discovery Request
or Go Negotiation Request.

Change-Id: Id55feec06072e2ca6ad780e51c49cd19662b4d8e
CRs-Fixed: 1071200
2016-10-03 19:09:29 -07:00
qcabuildsw
d5ed3ef2ba Release 5.1.0.28U
Release 5.1.0.28U

Change-Id: I9f385c843c80aaa9d662b2823fa8f935d4956e85
CRs-Fixed: 688141
2016-10-03 17:39:09 -07:00
Padma, Santhosh Kumar
29df362726 qcacld-3.0: Add ini control to honor power constraint
qcacld-2.0 to qcacld-3.0 propagation

Add changes to honor power constraint based on ini. Also, enhance
logging for power sent to fw.

Change-Id: Iefd497d76076527ca4c388cade46644a88a51932
CRs-Fixed: 1016876
2016-10-03 17:39:07 -07:00
Poddar, Siddarth
eefe348b69 qcacld-3.0: Store pktlog events when pktlog is enabled by default in INI
Host should not honor any vendor pktlog disable command
if NO vendor pktlog enable command is sent previously.

Currently, vendor sends pktlog disable command without sending enable
command during init and because pktlog is enabled in ini by default,
Host sends the pktlog disable command to firmware which is not as expected.

To fix this, host uses reserved flag in wifi_start_log to distinguish
vendor command from iwpriv or pktlog conf tool command and vendor disable
pktlog command will be sent to firmware only when vendor pktlog enable
commands is sent previously.

Moreover, pktlog INI enable by default and Pktlog buffer size are now
controlled using a macro FEATURE_PKTLOG depending on build variant.
For production/user build, pktlog is default disable and buffer size is
1 MB, whereas for dev build, pktlog is default enable and buffer size is
10 MB.

Change-Id: If64cd522e91cbe9a6d94d8626eb758282fcfd1bd
CRs-Fixed: 1072584
2016-10-03 17:39:04 -07:00
Selvaraj, Sridhar
7231c5f049 qcacld-3.0: Implement a generic API to set session param from HDD
Currently, in host driver, ssid hide which is a session specific
parameter is set on reception of corresponding iwpriv command. Driver
would need to handle similar cases of setting session specific parameter
from HDD[ need this for setting ignore assoc disallowed parameter
for MBO].

Modify the ssid hide API's to generic so that the same API can be
used for setting any session specific paramater in future.

Change-Id: I29c62ff4a6f6d9ed1ff4a0f31a82727eb623bfd4
CRs-Fixed: 1072081
2016-10-03 17:39:02 -07:00
Selvaraj, Sridhar
0174182585 qcacld-3.0: Route RSO commands to WMA through LIM layer
qcacld-2.0 to qcacld-3.0 propagation.

Presently the Roam Scan Offload commands(Start/Restart/Stop etc) are all
sent directly from CSR to WMA. This fix reroutes these commands to LIM
and then to WMA. In LIM, ext cap IE present in assoc IE buffer of RSO
command is updated with FTM[Fine Time Measurement] capabilities if set
in host driver

Change-Id: I86c3b93570a38329cbc6a8a31017ece172164732
CRs-fixed: 1009486
2016-10-03 17:39:00 -07:00
Selvaraj, Sridhar
4ea106ed87 qcacld-3.0: Update scan request IEs with default scan IEs
As part of MBO(Multiband Operations), supplicant provides default
scan IEs per adapter to driver at init time which is passed to
FW for future use of the IEs in FW initiated scans. However
Host driver also need to save default scan IE's to use the same in
driver initiated scans.
For example LOWI scans request may not have MBO IE and then in that
case we need to copy the MBO IE from default IE and send it in the
scan request to firmware.

The fix implements the following:
1) Save default scan IEs per adapter in host driver when received.
2) Compare/Update IEs in cfg80211 scan request with default scan IEs.

Change-Id: I94278637ee03807104fcf85db544c6be22ec6adf
CRs-Fixed: 1039969
2016-10-03 17:38:50 -07:00
Deepak Dhamdhere
b106ae5c99 qcacld-3.0: Update default scan IE's to FW
As part of MBO(Multiband Operations), host driver need to supply
the default scan IEs to firmware at wifi init time using existing
VDEV SET IE command. FW uses these Scan IE's in subsequent scans,
.i.e. FW initiated Probe Requests.

As part of this fix, receive default scan IE's from supplicant,
update extended capability IE with FTM values(if ext cap IE is
present), send down the scan IE's buffer to FW which would be used
for subsequent FW initiated scans.

Change-Id: Ia23459078d93a30c9a1715e391023ee0a1de93ee
CRs-Fixed: 1039969
2016-10-03 17:38:47 -07:00
Sriram Madhvapathi
85df7c7d2f qcacld-3.0: Correct the IBSS tx rate information
qcacld-2.0 to qcacld-3.0 propagation

GETIBSSPEERINFO(ALL) fetches IBSS peer information which
includes tx rate. However, only lower 3 bytes of txRate
field is relevant. Mask out irrelevant fields when passing
tx rate info to the user.

Change-Id: Ice0199b84899e7452bf64353c744118f109d9c14
CRs-Fixed: 1050973
2016-10-03 17:38:45 -07:00
Kapil Gupta
6213c01b1b qcacld-3.0: Enable/disable qpower dynamically
qcacld-2.0 to qcacld-3.0 propagation

Add changes to support qpower dynamically using vendor command.

CRs-Fixed: 1054217
Change-Id: Ibc9456c2edc4f385f637cb9e45e3f51a6a911121
2016-10-03 17:38:43 -07:00
Kapil Gupta
155748e7b6 qcacld-3.0: Fix memory leak issue
qcacld-2.0 to qcacld-3.0 propagation

Memory should be allocated to radar_event only when radar phy
event needs to be sent to WMA layer.

Add changes to fix memory leak.

CRs-Fixed: 1065466
Change-Id: Ia3e93ddd47913956c27487472b6a70eb68d63fd9
2016-10-03 17:38:41 -07:00
qcabuildsw
def4fddd4f Release 5.1.0.28T
Release 5.1.0.28T

Change-Id: I4b57f8e660477f0496a8460f624ad6ac0ccae737
CRs-Fixed: 688141
2016-10-03 17:38:39 -07:00
Sandeep Puligilla
ada729259f qcacld-3.0: clear sme open session event
In failure scenario sme session id is getting
reset but sme open session flag is not cleared.
Due to this scan rejected from host.

Clear the sme open session event in sme close
failure/timeout scenario.

Change-Id: I2cb91120947c38a25df508c376f0e1377717458f
CRs-Fixed: 1072820
2016-10-03 17:38:37 -07:00
qcabuildsw
806fa4c2a7 Release 5.1.0.28S
Release 5.1.0.28S

Change-Id: I0f3661f2783d1b48500f1876926398f0c7760d09
CRs-Fixed: 688141
2016-10-03 17:38:34 -07:00
Orhan K AKYILDIZ
5f0ff72238 qcacld-3.0: Fix multiple adapter LRO flush issue
A new adapter overwrite previous adapter information for LRO flush
callback, causing LRO packets for that adapter not being flushed and
sit in the LRO manager queues.
LRO flush now walks through the adapter list and flushes for every
LRO-enabled adapter.

Change-Id: I4c882a6521759c1c8fa05b9d9be4134feabd08aa
CRs-Fixed: 1072471
2016-10-03 17:38:31 -07:00
Hanumanth Reddy Pothula
7a65740e47 qcacld-3.0: Unregister wext interface, on STA interface down
Host registers wext handlers, during STA interface UP. But not
unregistering during interface down, lending user to issue iwpriv
commands though interface is down.

Unregister wext interface, by initializing wireless_handlers to NULL
during interface down.

Change-Id: I839d733595672c8c43e5a085ea5f1e97d98c4c31
CRs-Fixed: 1064023
2016-10-03 17:38:27 -07:00
Rajeev Kumar Sirasanagandla
478730010a qcacld-3.0: Add support to get bus message size
qcacld-2.0 to qcacld-3.0 propagation

This commit allows the upper layers to query  driver for max
message size between the host & firmware using vendor command.

Change-Id: I21db90c854e6105f00c27dec9389f2cafd4f6508
CRs-Fixed: 965244
2016-10-03 17:37:02 -07:00
Poddar, Siddarth
1ab0a3db60 qcacld-3.0: Fix memory leak when SSR is triggered
qcacld-2.0 to qcacld-3.0 propagation.

Packets are not freed from cache buffer and causes memory
leak in SSR case. Flush cache RX frame queue to avoid this memory leak.

Change-Id: Idd9edde6fdb3b9ff3ecbe7d8139f9a66468b70af
CRs-Fixed: 1051019
2016-10-03 17:33:01 -07:00
Poddar, Siddarth
fa2b2d18b0 qcacld-3.0: CL 1649677 – update fw common interface files
Propagation from qcacld-2.0 to qcacld-3.0.

WMI config parameters to tune the WLAN/BT OCS intervals
during BT Inquiry

Change-Id: I7b4965607a611ba64b5b245afd532af1ba97f99b
CRs-Fixed: 865207
2016-10-03 17:32:59 -07:00
Poddar, Siddarth
cd94ec62e0 qcacld-3.0: CL 1647956 – update fw common interface files
Propagation from qcacld-2.0 to qcacld-3.0.

WMI CSA support for 5 MHz + 10 MHz

Change-Id: Id9c2e5f4cd343e6cdf1ce3ff38a70a0c22da9b94
CRs-Fixed: 865207
2016-10-03 17:32:52 -07:00
Selvaraj, Sridhar
9cee77f3ec qcacld-3.0: Trigger Auth req(OPEN) when SHARED times out
qcacld-2.0 to qcacld-3.0 propagation

When the OPEN/SHARED WEP is configured, the current
implementation will start Auth request with SHARED and if it
fails, triggers Auth request with OPEN. This change will
trigger the OPEN Auth requests when the timeout happens
(no Auth response received for previous attempt i.e.AUTH req
SHARED case). Some APs don't respond to Shared Auth if
they support only Open. To interoperate with this kind
of APs try Open Auth if Auth timeout happens with Shared
Auth.

Git-commit: 368b3a4eb4b4067bfff88d3dbd21371af3bb23a8
Change-Id: I28b9186b9dc238640fd7655c9ac73e8aa89aec54
CRs-Fixed: 984341
2016-10-03 17:32:48 -07:00
Dustin Brown
73fce8f09a qcacld-3.0: Abort suspend if RRM scan is pending
Currently RRM scan state is not being tracked, leading to possible
suspend attempts while RRM scan is pending. Set scan state information
to prevent suspend while RRM scan is pending.

Change-Id: I1d688f137961b4cb09d13764761c8d22709c3a43
CRs-Fixed: 1072598
2016-10-03 17:32:46 -07:00
Kiran Kumar Lokere
705fa39ffb qcacld-3.0: Restore the wmi_channel_width definition
Restore the wmi_channel_width enum as it is being used in FW

Change-Id: I05ad89d4bb3486fdab4a71b8252ec9b5c0c7395b
CRs-Fixed: 1071442
2016-10-03 17:32:44 -07:00
Selvaraj, Sridhar
ebda0f2713 qcacld-3.0: Control chan avoidance indication through vendor command
qcacld-2.0 to qcacld-3.0 propagation

Provide mechanism to user to enable or disable channel avoidance
indication through vendor command and also control this mechanism
using "gOptimizeCAevent" ini parameter.

By default "gOPtimizeCAevent" ini parameter is disabled. Ini param
controls the CA events based on the mode. If ini is enabled(1) then
firmware will send CA events only in SAP/GO mode and it will not send
any CA events in STA mode. If ini is disabled CA events are sent to
host in all the modes.
a. gOptimizeCAevent = 1
  - When host sends ioctl(enable), FW will send "ONE" CA indication
    to host(though it is duplicate).
  - When host sends ioctl(disable), FW doesnot perform any action.
  - Whenever any change in CA and WLAN is SAP/P2P-GO mode, FW will
    send CA ind to host regardless of the ioctl status.
b. gOptimizeCAevent = 0
  - FW will ignore ioctl request if received.
  - CxM behavior will be as per the current implementation.

Change-Id: I9bd81b03b97a60bb81e550068742b2fc0b776ebb
CRs-Fixed: 903249
2016-10-03 17:27:36 -07:00
qcabuildsw
467c791c54 Release 5.1.0.28R
Release 5.1.0.28R

Change-Id: I76116a3cc336ab4a63346d74233851e67958a4ba
CRs-Fixed: 688141
2016-10-03 16:49:04 -07:00
Jeff Johnson
a7e5eed8ff qcacld-3.0: Polish HDD Green AP implementation
In qcacld-3.0 an attempt is being made to converge on a common set of
methods for each feature.  Update HDD Green AP feature to align with
"<layer>_<feature>_<method>" naming.

In addition relocate the embedded documentation of all public
functions from the .c file to the .h file since it is the interface
that should be documented and not the implementation.

Change-Id: Id6478f80a85b9e7d6abd1949a136c3c8357d49e9
CRs-Fixed: 1072396
2016-10-03 16:49:02 -07:00
Jeff Johnson
67904df7b5 qcacld-3.0: Cleanup HDD LPASS documentation
The recent set of "Refactor HDD LPASS" changes introduced a new set of
public APIs.  Currently these APIs have documentation entries in both
the header file and in the source file.  This will result in redundant
entries when documentation is generated from the files.  Since public
APIs should document their interface and not their implementation,
remove the documentaton entries in the source file, leaving just the
ones in the header file.

Change-Id: Idcd4c35d74dc79b0a8440b03084420f4b40ebae5
CRs-Fixed: 1070700
2016-10-03 16:49:00 -07:00
Jeff Johnson
c875e24d7e qcacld-3.0: Refactor HDD LPASS "target config" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the "target
config" logic such that the actual implementation is in the lpass
feature file.

Change-Id: I2fb40fc2d0276bfad9f79f340895b7d23c8a9d5d
CRs-Fixed: 1070700
2016-10-03 16:48:58 -07:00
Jeff Johnson
b8bf907c73 qcacld-3.0: Refactor HDD "is lpass supported?" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the "is
lpass supported?" logic such that the actual implementation is in the
lpass feature file.

Change-Id: If54961eebc97951985770cdad813d6fbbc3953f9
CRs-Fixed: 1070700
2016-10-03 16:48:49 -07:00
Jeff Johnson
9078bdcb27 qcacld-3.0: Refactor HDD LPASS "populate CDS config" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the
"populate CDS config" logic such that the actual implementation is in
the lpass feature file.

Change-Id: I3dada0d446a994862f70392f8ebf5911bda583da
CRs-Fixed: 1070700
2016-10-03 16:48:47 -07:00
Jeff Johnson
7139669405 qcacld-3.0: Refactor HDD LPASS "connect" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the
"connect" logic such that the actual implementation is in the lpass
feature file.

Change-Id: Iac7bb28cbf6c1b361cf95f1eccba507cca0d5ad3
CRs-Fixed: 1070700
2016-10-03 16:48:45 -07:00
Jeff Johnson
cef59bbc3b qcacld-3.0: Refactor HDD LPASS "disconnect" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the
"disconnect" logic such that the actual implementation is in the lpass
feature file.

Change-Id: I7250582c8e0ba7423babfd6acfd23ff492d05037
CRs-Fixed: 1070700
2016-10-03 16:48:42 -07:00
Jeff Johnson
2ae6f714b0 qcacld-3.0: Refactor HDD LPASS "interface mode change" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the
"interface mode change" logic such that the actual implementation is
in the lpass feature file.

Change-Id: I7be1719f6b0f4ed69d60dbb1c50dab63ca3d768a
CRs-Fixed: 1070700
2016-10-03 16:48:13 -07:00
Jeff Johnson
f7f66f0baf qcacld-3.0: Refactor HDD LPASS "stop" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the "stop"
logic such that the actual implementation is in the lpass feature
file.

Change-Id: I53bd57e2687e0d6fa2cb11bd34e19ee7eedb7969
CRs-Fixed: 1070700
2016-10-03 16:48:11 -07:00
Jeff Johnson
9afc501027 qcacld-3.0: Refactor HDD LPASS "start" logic
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic.  Continue that process by refactoring the "start"
logic such that the actual implementation is in the lpass feature
file.

Change-Id: Idc7ed03abd35616d2a7bfa4a74aaec9898f9dc8e
CRs-Fixed: 1070700
2016-10-03 16:48:09 -07:00
qcabuildsw
347e3fd4fd Release 5.1.0.28Q
Release 5.1.0.28Q

Change-Id: I1b11b8272f1e2a368bc1626cd71f207bf84e5604
CRs-Fixed: 688141
2016-10-03 16:48:07 -07:00
Poddar, Siddarth
4acb30a8d3 qcacld-3.0: Add new index in SME AC type
Since AC/UP table is 4 entries long and linux AC queue has 5 entries,
packets coming for new queue are going out of bound.

Add changes to add one more index in SME AC type to handle this.

Change-Id: Ifaeb6f2c68177887759c3582dd7bc6ff56673d7d
CRs-Fixed: 1064813
2016-10-03 16:48:03 -07:00
Poddar, Siddarth
49fb4d74b6 Revert "qcacld-3.0: Store events in pktlog buffer when Pktlog is enabled by default in INI"
This reverts commit Id0b7dd6b4573147eef9b80b57bc78284e52807ec.

This change is not required anymore as now vendor related pktlog
enable/disable command will be handled via flag in wifi start log
structure.

Change-Id: I82f32d3d8021361e92d67a53624a1d5d027fd9b8
CRs-Fixed: 1072584
2016-10-03 16:48:00 -07:00
qcabuildsw
c665784a69 Release 5.1.0.28P
Release 5.1.0.28P

Change-Id: I42e06f4cc6c96243f5481fd298ca7dc2e639ba70
CRs-Fixed: 688141
2016-10-03 16:47:49 -07:00
Arunk Khandavalli
07ec8f6eda qcacld-3.0: wait for driver recovery to complete before driver unload
As part driver shutdown cds recovery inprogress is set and it is cleared
once the driver recovery is completed. In the case of the SAP ssr
network manager tries to unload/reload once the network queues/carrier
is turned off. In the module exit the driver is unregistering the
driver ops because of which platform driver is not able to invoke the
re-init of the driver and re-init completed flag is never set.
Once the driver unregisters with platform driver it invokes the
remove function in which driver is waiting infinitely for the
reinit to complete.

To mitigate the issue wait for driver recovery to complete before starting
the driver unload.

Change-Id: I1879f7dc4b09d3eef6475252f6209339351c5737
CRs-Fixed: 1072677
2016-10-03 16:47:46 -07:00
Selvaraj, Sridhar
353be2f00d qcacld-3.0: Invoke LFR3 roaming on reception of prev_bssid in connect
When supplicant issues connect with prev_bssid set, it expects the
driver to do reassociation instead of disconnect and connect.

This fix checks if prev_bssid is set and bssid/bssid_hint, channel/
channel_hint parameters are present in connect and if yes, invokes LFR3
roaming.

Change-Id: I8d4d29086a205563061bb155a1298de91839cbec
CRs-Fixed: 1071581
2016-10-03 16:47:16 -07:00
qcabuildsw
ca346b4819 Release 5.1.0.28O
Release 5.1.0.28O

Change-Id: I094b9f5a31137eecaea360e65c80cc9143254afc
CRs-Fixed: 688141
2016-10-03 16:43:29 -07:00
Arunk Khandavalli
4cc97a9b18 qcacld-3.0: set global context to NULL only when all the cleanup is completed
In cds_deint, cds global context is set to NULL and then cleanup handlers of
memory/timer/nbuf manager's are invoked. During the cleanup these handlers
use QDF_TRACE to print the cleanup information which internally tries to
get the global context resulting in not clean unload of driver.

To migitate the issue set global context to NULL once the clean up of
all handlers is completed cleanly.

Change-Id: Ic58962dfd543020d79cabd7b646e483c4f7961f2
CRs-Fixed: 1067340
2016-10-03 16:43:26 -07:00
qcabuildsw
1e74c220de Release 5.1.0.28N
Release 5.1.0.28N

Change-Id: I24f1df691bef136a9e031eaae630637f4cec929e
CRs-Fixed: 688141
2016-10-03 16:43:25 -07:00
Naveen Rawat
8cc23b0d9a qcacld-3.0: Update host DBS policy manager in roaming operations
Firmware DBS mode is updated during firmware based roaming. Same change
is reflected in the host policy manager. Process hw_mode TLV in roam sync
indication event. Update cds concurrency policy after roaming. Handle
exceptions for ROAM_ABORT and HO_FAIL conditions.

Change-Id: I826c6766f73441256e5946d3167966e645f23430
CRs-Fixed: 1044336
2016-10-03 16:43:23 -07:00
qcabuildsw
5387b81ed9 Release 5.1.0.28M
Release 5.1.0.28M

Change-Id: I0b7c92495155593c3439eb07711e2355214a808d
CRs-Fixed: 688141
2016-10-03 16:43:22 -07:00
Naveen Rawat
a410c5a9c2 qcacld-3.0: Send self HT/VHT caps per band IE at hdd_init_station_mode
In function lim_send_ht_vht_ie per band HE/VHT IE being sent to firmware
are being populated as per hardware mode (DBS/Non-DBS). Change that to
absolute self HT/VHT capability.

Change-Id: I3e74ffb89fcdc2903ecaa3c1bb3e4aeffd4f8f35
CRs-Fixed: 1069032
2016-10-03 16:43:20 -07:00
qcabuildsw
cfd09e495f Release 5.1.0.28L
Release 5.1.0.28L

Change-Id: I28a3bd264ff928bffac46e2e7a7e2dbb95104212
CRs-Fixed: 688141
2016-10-03 16:43:19 -07:00
Hanumanth Reddy Pothula
7d51b1d1fd qcacld-3.0: Reject same con_mode change request from the user
In the present implementation driver directly switches to con_mode
requested by user eventhough it is in the same mode as requested by
the user. Also, con_mode_handler relies on the station adapter
to switch between modes, if current con mode is other than STA mode
then handler returns failure, without processing con mode change.

In con mode handler add check if user trigger con mode is same as
the current con mode, as driver is already in same mode and get
valid adapter context based on con mode.

Change-Id: If7ee95f7ce5c2e6f85c1245bdf4cdfa3d0f16d53
CRs-Fixed: 1069408
2016-10-03 16:43:16 -07:00
qcabuildsw
4759877dbf Merge "Release 5.1.0.28K" into wlan-cld3.driver.lnx.1.1-dev 2016-10-03 15:21:56 -07:00