Commit Graph

1509 Commits

Author SHA1 Message Date
Abhishek Singh
257a9483f6 qcacld-3.0: Add support to update the def scan params from INI file
Add support to update the scan params depending on the values in
INI file

Change-Id: Idebc7e6c02bc6a7405b33a9f99c1e5186341c494
CRs-Fixed: 2013212
2017-03-15 04:26:47 -07:00
Ashish Kumar Dhanotiya
f998a58976 qcacld-3.0: Change default fw log mode
Set default fw log mode to 1, which will re-direct fw logs to WMI.

Change-Id: Iec2d344bf3a419858fb92950bc234b5d1576c3d9
CRs-Fixed: 2007175
2017-03-15 02:19:16 -07:00
Mukul Sharma
72ffb7e14b qcacld-3.0: Free wow params as apart of the suspend/resume
Free wow params as apart of the suspend/resume.

Change-Id: I6a3ab9098704cfd7e7d270b0a77f0521ae9d9ce9
CRs-Fixed: 2019140
2017-03-15 01:03:11 -07:00
Jeff Johnson
0d26ae673f qcacld-3.0: Fix HDD scan cleanup issues
While addressing the issue fixed by change "qcacld-3.0: Cleanup scan
queue during driver unload" a couple of issues were observed in the
HDD scan cleanup code:
1) list node was directly typecast to hdd_scan_req instead of using
   container_of() operation.
2) hdd_scan_req_q_lock spinlock was not being destroyed.

Address these issues.

Change-Id: I6d1e7f5a78848d43e62f893b82f538b960ea0609
CRs-Fixed: 2018045
2017-03-14 22:23:36 -07:00
Jeff Johnson
f337b0c176 qcacld-3.0: Cleanup scan queue during driver unload
The following assert was observed during driver unload:
  QDF ASSERT in qdf_list_destroy Line 90
  PC is at hdd_scan_context_destroy+0x4c/0x78 [wlan]

There was also an associated memory leak detected:
 memory Leak@ File core/hdd/src/wlan_hdd_scan.c, @Line 562, size 48
 memory Leak@ File core/hdd/src/wlan_hdd_scan.c, @Line 2284, size 584

The issue is that the scan cleanup routine, hdd_cleanup_scan_queue(),
is currently only called during SSR and is not being called during the
driver unload sequence. Update the unload sequence to call this API.

Change-Id: Ib398a528cbb504bc132d985a0fa8c2a772d44332
CRs-Fixed: 2018045
2017-03-14 22:23:35 -07:00
Ashish Kumar Dhanotiya
ff4e1c4bc4 qcacld-3.0: Check module status before processing driver command
If the driver module is closed do not process the driver command,
it will lead to a crash by accesssing uninitialized lock.

To handle this issue check the module status before processing
driver command and if module is closed, simply return error.

Change-Id: Ic651e1abdf6b2efa27e57695c04ace249f9d21bb
CRs-Fixed: 2018746
2017-03-14 20:22:17 -07:00
Selvaraj, Sridhar
4f684bbaf2 qcacld-3.0: Add "g_enable_bcast_probe_rsp" INI and pass it to firmware
Add "g_enable_bcast_probe_rsp" INI and pass the configured value
to firmware for STA vdev as part of vdev attach. Based on this INI,
firmware will send the dwell time IE in probe request.

Change-Id: I446c7d7589534688e04579ed434de0803ed8b4ff
CRs-Fixed: 1113498
2017-03-14 12:57:54 -07:00
Selvaraj, Sridhar
046d77d673 qcacld-3.0: Add support to use generic netlink sockets for userspace apps
Currently user space communication functions[cnss diag, PTT socket app]
in host driver uses netlink user sockets which is a security concern from
Linux Android SE policies.

Add support for to use netlink family cld80211 which uses generic
netlink sockets.

Change-Id: I4ea49ac6d7c9381212c93567fdc40f90e04dfba4
CRs-Fixed: 1112784
2017-03-14 00:13:31 -07:00
Dustin Brown
a13cf0d2b5 qcacld-3.0: Change default value of gFwDebugModuleLogLevel
Update the default value of gFwDebugModuleLogLevel as per the request
of the firmware team.

Change-Id: I7d0c45689b962d39c5f9371a10f6da690129de99
CRs-Fixed: 2013439
2017-03-13 15:19:27 -07:00
Dustin Brown
13995f0efc qcacld-3.0: Add gActiveBpfMode ini item
Active Mode Berkeley Packet Filter (Active BPF) is a new feature that
allows firmware to apply BPF even while the Apps processor is active.
There are 3 modes:
 * Disabled: do not apply BPF in active mode
 * Enabled: apply BPF to all packets in active mode
 * Adaptive: apply BPF up to some threshold to avoid performance impact

Add an ini item called gActiveBpfMode to configure the Active BPF Mode
in firmware.

Change-Id: I6cf60d67238802fe1e1662c040910091f5c25bec
CRs-Fixed: 1111400
2017-03-13 14:41:00 -07:00
Dhanashri Atre
09828f1c91 qcacld-3.0: Hash based rx steering
This change includes adding hooks in the data path to
send WMI command to enable LRO or/and configure a hash
seed value

Change-Id: I3f068307f7669c4ff8baa5102e9fb7729d4a348d
CRs-Fixed: 1094775
2017-03-13 14:01:55 -07:00
Varun Reddy Yeturu
c13305eeac qcacld-3.0: Do not take a reference to bss when disconnect is deferred
Propagation from cld3.0-1.1 to cld3.0-2.0

Do not indicate the roam event to user space if disconnect is
deferred, since it will soon be honored and a disconnect event
will be sent to the user space. Do not reference the kernel bss
data as well when disconnect is in progress.

Change-Id: I0b76a2af021efe0e1c8693c4e5908ed576770813
CRs-Fixed: 2017409
2017-03-13 09:53:00 -07:00
Nitesh Shah
9a66f94f30 qcacld-3.0: Remove updating fw tdls state while deleting tdls sta
FW TDLS state supports single TDLS context. TDLS context in FW
does not need to be deleted while deleting TDLS sta in the host.
If FW TDLS state update comes for one vdev while TDLS context
is already present for other vdev, then FW will crash.

The change is to remove updating FW TDLS state while deleting
TDLS sta. This change also address cleaning up TDLS peer from
lim while informing to supplicant.

Change-Id: I300388def5052180d330cc82553085538e80202e
CRs-Fixed: 2013151
2017-03-13 17:42:42 +05:30
Hong Shi
b707b05cc0 qcacld-3.0: Fix compilation error when TDLS macro disabled
Currently, 3 non-tdls ini config options are wrongly merged inside
TDLS macro when auto propagation from CLD2.0 to CLD3.0. Move the ini
configs outside of TDLS macro.

Change-Id: I1ee784519c2197b4dc3f0119fb3a9f379fe7288b
CRs-Fixed: 2016679
2017-03-13 00:37:07 -07:00
Varun Reddy Yeturu
a578414c8a qcacld-3.0: Handle disconnect requests during LFR3 roaming
Propagation from cld3.0-1.1 to cld3.0-2.0

Upper layer can send cfg80211 disconnect command anytime in the life
of a connection. It arrive when firmware roaming may have started,
completed, failed, etc. Processing of roam events may collide with
processing of disconnect command in the host driver.

Defer the hdd disconnect command if roaming has started. Upon completing
roaming send the deferred disconnect command to sme which will
eventually complete the requested disconnect.

If disconnect is deferred during roaming, then do not send the
new roam event to supplicant since it is not expected and upon
honoring the disconnect later, a disconnect event would be
sent to supplicant.

Remove the earlier workaround done to send a try again error message
to upper layers upon receiving a disconnect request when roaming
is in progress

Firmware can now handle the ROAM_SCAN_OFFLOAD_STOP command even
if it is in the middle of roaming operation. Hence remove this
check in SME.

Add LFR3 roaming state to the cds_is_connection_in_progress API since
it currently captures only LFR2 roaming states.

Change-Id: Id352d94b41f0766889ceebd0b57b2c566ce3ca42
CRs-Fixed: 1114853
2017-03-12 21:40:17 -07:00
Dustin Brown
0a4cfeb33d qcacld-3.0: Enhance gEnableSifsBurst for legacy mode
Enhance gEnableSifsBurst to support legacy mode for 11n certification
	0 - disabled
	1 - enabled, but disabled for legacy mode
	3 - enabled

propagation from qcacld-2.0

Change-Id: Ia0a21cec25ce46b3ef2ed0ee8d4e4682558da468
CRs-Fixed: 2018162
2017-03-11 00:52:29 -08:00
Jeff Johnson
688f475de9 qcacld-3.0: Remove unused scanevent from hdd_wext_state_t
Currently struct hdd_wext_state_s (typedefed as hdd_wext_state_t)
contains the field "qdf_event_t scanevent". This event is created, but
beyond that it is never used. Since this object is obsolete, remove
it.

CRs-Fixed: 2017476
Change-Id: I7bd4290e1b4d0df069e8e6e6c9347c1ac3c01c63
2017-03-10 16:10:07 -08:00
Jeff Johnson
920b8ee5bf qcacld-3.0: Remove unused completion_var from hdd_wext_state_t
Currently struct hdd_wext_state_s (typedefed as hdd_wext_state_t)
contains the field "struct completion completion_var". This completion
object is initialized, but beyond that it is never used. Since this
object is obsolete, remove it.

Change-Id: Ibebd7b4d1e8879b4de223a8be4bab2ca0d2fc165
CRs-Fixed: 2017354
2017-03-10 16:10:05 -08:00
Kapil Gupta
957827b875 qcacld-3.0: Add monitor time for PER based roam
Curretly FW considers minimum time of hysteresis for PER based roam as
constant value which is 25 seconds.

Add changes to make this configurable using ini.

Change-Id: I1a985594d515f42d1aaca8e4ef174fb29b51586a
CRs-Fixed: 2005849
2017-03-10 07:19:20 -08:00
Kapil Gupta
6e6c26b06e qcacld-3.0: Disable PER based roaming by default
Add changes to disable PER based roam by default.

CRs-Fixed: 1114094
Change-Id: I52768029d3ccf007b7d9999e796de3366ac0ae35
2017-03-10 07:19:19 -08:00
Kapil Gupta
5cda2251d6 qcacld-3.0: Changes for PER based roaming
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.

This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.

Change-Id: I39594e37bd209be2603a4636514e2c9b1a907761
CRs-Fixed: 1090934
2017-03-10 07:19:17 -08:00
Mukul Sharma
9223f23020 qcacld-3.0: Pass suspend/resume ini params to PMO
Pass suspend/resume ini params to PMO.

Change-Id: I2997e101524355645f13eaf5726e57bfd5ccd2a1
Crs-Fixed: 2016634
2017-03-10 06:40:55 -08:00
yeshwanth sriram guntuka
a1ba9a2bfc qcacld-3.0: Downgrade WMM AC for data frames for invalid tspec
As per the current implementation wmmAcTspecValid is reset during roaming
and set after establishing TSpec but currently wmmAcTspecValid is not
considered before classifying the data frames based on AC and UP.
Due to above issue after roaming we are still sending packets with UP
for which tspec session is not established.

Fix above issue by checking wmmAcTspecValid for AC before
classifying the frame.

Change-Id: I37039fa568696f0861b02d094c3a513dbc2b9967
CRs-Fixed: 915555
2017-03-10 03:06:19 -08:00
Selvaraj, Sridhar
1ffa0ec5d7 qcacld-3.0: Add complete wlan_start_comp at hdd_wlan_startup
As part of I707054c44a882f6dd4a4a9df2b6821b93b724f7a, completion
of wlan_start_comp variable is removed at hdd_wlan_startup,
that leads to timeout crash waiting for driver registration.

Add complete wlan_start_comp at hdd_wlan_startup.

Change-Id: I2e80465cd1ec66b9330b8f6e9b11fd14076035eb
CRs-Fixed: 2017668
2017-03-10 10:07:41 +05:30
Kiran Kumar Lokere
7006e0ad76 qcacld-3.0: Disable Qpower with UAPSD or max ps-poll enabled
Disable Qpower when UAPSD is enabled or if the max ps poll is
configured by user.

Change-Id: If9c747406d65a6f89fa123592c3f9d79724b8ae0
CRs-Fixed: 2017432
2017-03-09 17:09:31 -08:00
Dustin Brown
b6b0f18937 qcacld-3.0: Add ini for station keepalive method
Add an ini item for configuring the keepalive method used by station
interfaces.

Change-Id: Id44773f5ae7f7ad1ad9441592512ab3e2ce3a076
CRs-Fixed: 2016799
2017-03-09 11:02:29 -08:00
Arun Khandavalli
8a711cbd49 qcacld-3.0: update timestamp of bss while informing frame to kernel
Inform the bss using the new API cfg80211_inform_bss_frame_data() which
also has the ability to inform the timestamp when the frame has
been received.
If the support is not present in the kernel fallback to the legacy
inform bss.

Change-Id: Iaa512248a5e56d77cff39da562e0c9ee4eaeeefd
CRs-Fixed: 1082423
2017-03-08 23:55:09 -08:00
Kiran Kumar Lokere
4bbbd0d8c2 qcacld-3.0: Check FW capabilities for VHT160 support
Check the FW capabilities to enable VHT160MHz support.
Disable 160MHz by default in the configuration.

Change-Id: Ia6985d9f7c55a070dbb47faf95cd409201037e0c
CRs-Fixed: 2004245
2017-03-08 22:05:40 -08:00
Selvaraj, Sridhar
371f55e987 qcacld-3.0: Move channel avoidance event setting to hdd_features_init
Currently, enable/disable channel avoidance event based on INI is done
in hdd_wlan_startup. In power save scenarios, where WMI configuration
needs to be sent again to FW, channel avoidance event setting is not
sent.

Move the channel avoidance setting to hdd_features_init so that this
config is set properly to FW in power save cases as well.

Change-Id: I707054c44a882f6dd4a4a9df2b6821b93b724f7a
CRs-Fixed: 2009299
2017-03-08 20:42:07 -08:00
Ashish Kumar Dhanotiya
40f528ceaa qcacld-3.0: While adding virtual interface, rtnl lock taken twice
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation

As a part of add virtual interface API kernel takes the rtnl lock,
if start modules fails then it will take the rtnl lock again while
closing the adapter which causes the UI freeze issue.

To resolve this issue, call close adapter API with indication that
lock is already taken.

Change-Id: Ic186eba794600b189021d7455a5811972280ee84
CRs-Fixed: 2013661
2017-03-08 18:00:53 -08:00
Ashish Kumar Dhanotiya
486c13a3fa qcacld-3.0: Handle cleanup during error in add interface
Presently if there is an error during the add interface, closing of adapter
and the stopping of the modules is not handled.

So, close adapter during the failure adding the new virtual interface
and if there are no interfaces running start the interface change
timer callback.

Change-Id: I807bc5b295a7faf369e8a9f1e0958eac869f189f
CRs-Fixed: 1097312
2017-03-08 18:00:52 -08:00
gbian
62edd7e2db qcacld-3.0: Add ini keys for WRR tx scheduler tuning
qcacld-2.0 to qcacld-3.0 propagation

Add below four keys to allow user to tune WRR TX scheduler params.
Each key is mapping to one AC defined in data path module through
OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC.
	gEnableTxSchedWrrBE
	gEnableTxSchedWrrBK
	gEnableTxSchedWrrVI
	gEnableTxSchedWrrVO

Change-Id: I5c34b604297d83673ea065243cc58c3f2180ff3e
CRs-Fixed: 1020141
2017-03-08 15:54:49 -08:00
Mukul Sharma
4c60a7ea5b qcacld-3.0: Add Suspend and Resume support in PMO
Add Suspend and Resume support in PMO.

Change-Id: Iba16643adf1cbd997138c740345e40c00c8e81f6
Crs-Fixed: 2015366
2017-03-08 13:00:46 -08:00
Nitesh Shah
00231510b6 qcacld-3.0: Remove stale function lim_abort_remain_on_chan()
Remove the function lim_abort_remain_on_chan() as it is not
being used in p2p.

Change-Id: Iae6a676ee92a97cbce59a5cf856a45f5655c8790
CRs-Fixed: 2014660
2017-03-08 12:10:53 -08:00
Tushnim Bhattacharyya
329514d4c3 qcacld-3.0: Send user configurations to object manager
HDD to send user configurations received from ini to object manager.
Common components to refer to them from psoc object using public APIs.

Change-Id: I85045ccc291e280132be4164b13d07dee4538951
CRs-Fixed: 2003447
2017-03-08 11:36:18 -08:00
Sandeep Puligilla
0806e0f980 qcacld-3.0: Modify SAP ACS scan
Modify SAP ACS scan logic according to new
scan common component.

Change-Id: Id85b6c8a9a1500eeec488b30ee3fd1707b402347
CRs-Fixed: 2013212
2017-03-07 10:49:53 -08:00
Sandeep Puligilla
d000421944 qcacld-3.0: HDD changes for common scan module
HDD changes to support scan start and abort

Change-Id: I3260369879108f167453d5e0b8435c30ed729c5e
CRs-Fixed: 2013212
2017-03-06 11:54:30 -08:00
Ashish Kumar Dhanotiya
3c30842fc8 qcacld-3.0: Check WIFI module status during wifi logger start
During wifi logger start if the modules are in close state,
it will access uninitialized lock.

To handle this, check module status during start of the wifi logger.

Change-Id: I10b3fffa45475c602c22b548d521f75c627b133e
CRs-Fixed: 2012742
2017-03-06 09:21:24 -08:00
Sen, Devendra
154b3c4cc2 qcacld-3.0: Add host diag events for wlan disconnection state
Add new diag events for the wlan disconnection these
events will be used to inform the wlan disconnection scenario.

Change-Id: I6bdddb2d3f45deca2dc92a94e2abf59f46d7c38f
CRs-Fixed: 1108380
2017-03-06 03:38:39 -08:00
Nishank Aggarwal
e239d9680d qcacld-3.0: Change default firmware log levels
Change default log level for all firmware modules and
also per module with a specific log level.

Change-Id: I33275f2737e0e56daea4e2edd8debca8016f1ed0
CRs-Fixed: 2013439
2017-03-04 08:13:48 -08:00
Sen, Devendra
c441b213ab qcacld-3.0: Fix INI template for IBSS feature
Wrong name was added in doc for gIbssPs1RxChainInAtim INI.

Change-Id: I92efc93cb52aaf6c8d08e02c42727e863ba104f4
CRs-Fixed: 2010115
2017-03-04 06:28:05 -08:00
Jeff Johnson
a89e25da8a qcacld-3.0: Add support for new chainmask controls
Firmware has implemented two new chanimask control parameters:
WMI_PDEV_PARAM_SMART_CHAINMASK_SCHEME
WMI_PDEV_PARAM_ALTERNATIVE_CHAINMASK_SCHEME

Add two new INI parameters to control the values of these firmware
parameters.

Change-Id: Iafe8d38684c5f2ab3f4150eee722461ec21e3e21
CRs-Fixed: 2011634
2017-03-03 13:13:26 -08:00
Nitesh Shah
90a02e90bc qcacld-3.0: Remove mutex inside few tdls functions
Following tdls functions wlan_hdd_tdls_find_peer(),
wlan_hdd_tdls_set_peer_link_status() and
wlan_hdd_tdls_is_progress() allows mutex protection
inside the function depending on the mutex argument
as an input to the function. But the mutex argument
is always false in all the calling functions.

This change removes mutex argument from the functions
wlan_hdd_tdls_find_peer(), wlan_hdd_tdls_set_peer_
link_status() and wlan_hdd_tdls_is_progress().

Change-Id: I173e2a768b1f0b4d91dec1a9150efac630fb5c86
CRs-Fixed: 1106836
2017-03-03 13:13:24 -08:00
Nitesh Shah
90fcd9d895 qcacld-3.0: Acquire mutex before accessing tdls context
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function __wlan_hdd_
cfg80211_tdls_mgmt() and __wlan_hdd_cfg80211_tdls_oper().

Change-Id: I6563170863c51d0eb400801cc863234e11440421
CRs-Fixed: 1106815
2017-03-03 13:13:23 -08:00
Nitesh Shah
3dea6721dc qcacld-3.0: Acquire mutex before accessing tdls context
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function hdd_roam_tdls
_status_update_handler().

Change-Id: Id4fd0931df5ec38ad07657751feff34946a18c02
CRs-Fixed: 1106735
2017-03-03 13:13:22 -08:00
Nitesh Shah
4ea2715f34 qcacld-3.0: Acquire mutex before accessing tdls context
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function __wlan_hdd
_cfg80211_configure_tdls_mode(), wlan_hdd_tdls_set_params()
and wlan_hdd_update_tdls_info().

Change-Id: I03d4d74356ff6401772c69a7686352783cf22b6b
CRs-Fixed: 1106726
2017-03-03 13:13:21 -08:00
Nitesh Shah
c871ddb947 qcacld-3.0: Acquire mutex before accessing tdls context
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function wlan_hdd_tdls_
find_first_connected_peer() and hdd_set_tdls_offchannelmode().

Change-Id: Ic2112e19873a86fbd89dfb0a5a674a2a7e643b21
CRs-Fixed: 1106714
2017-03-03 13:13:20 -08:00
Nitesh Shah
379449e295 qcacld-3.0: Acquire mutex before accessing tdls context
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for the function wlan_hdd_
tdls_get_peer() by removing the need for mutex lock inside
the function. The change also refactors the calling functions
for wlan_hdd_tdls_get_peer().

Change-Id: I3acb278162127e84d751ef7fdeaac2dc245bbe81
CRs-Fixed: 1106682
2017-03-03 13:13:19 -08:00
Nitesh Shah
8816f57ef0 qcacld-3.0: Acquire mutex before accessing tdls function
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function wlan_hdd_tdls
_indicate_teardown() by removing the need for mutex lock
inside the function, and refactors the calling functions.

Change-Id: I5a0da34b0db78a88a99046bf2ee007b50d6ce5c4
CRs-Fixed: 1106305
2017-03-03 13:13:18 -08:00
Nitesh Shah
542fdee90e qcacld-3.0: Acquire mutex before accessing tdls function
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.

This change refactors the code for function
wlan_hdd_tdls_disable_offchan_and_teardown_links(),
wlan_hdd_tdls_scan_callback() and wlan_hdd_tdls_teardown
_links() before calling wlan_hdd_tdls_find_all_peer().

Change-Id: I881e12bb0c50bfbeb4fe60cb21cfdf0f7d6c2f56
CRs-Fixed: 1106293
2017-03-03 13:13:17 -08:00