Commit Graph

1059 Commits

Author SHA1 Message Date
Abhishek Singh
6884428a1a qcacld-3.0: Add ini to enabled/disable the SU beamformee in vendor VHTIE
Enabling SU beamformee in vendor vht IE gives good throughput in long
range while bad throughput in short range due to excessive sounding
action frames sent by APs.

So to give control to the user, add INI "enable_subfee_vendor_vhtie"
to enabled/disable the SU beamformee in vendor vht IE. It is
dependend on INI "gTxBFEnable" and if "gTxBFEnable" is set to 0
this will not have any effect and SU beam forming will always be
disabled.

Change-Id: Id67ea86d3e0a48fec8913d6254733f753dfdae8b
CRs-Fixed: 2178940
2018-02-01 02:20:49 -08:00
Vignesh Viswanathan
694e28eee7 qcacld-3.0: Add support for 11k offload to FW
Add new ini options for 11k offload paramters and changes to pass down the
11k offload parameters to the FW. The 11k offload command is sent after
roam start to the FW in connect path.

Also add 11k invoke command support to offload neighbor report request
iwpriv command to FW

Change-Id: If6d4bff91531e5460bbc8a851a6d777cf088eda0
CRs-Fixed: 2162029
2018-01-31 02:05:45 -08:00
Min Liu
2fef579fc1 qcacld-3.0: Fix safe channel switch failure
For the AP+AP SCC LTE-Coex case, when channel avoidance event
is reported, the channel switch request for SAP will be blocked
by policy manager if the target channel is different with the
operating channel of the existing SAP due to the SCC policy.

Need to update the logic to give higher priority to the channel
avoidance request.

Another change is to move the dfs_radar_found ref counter from
hdd_ctx to hdd_adapter so that the channel switch request of
the 2nd SAP will not be blocked when the 1st one is still in
progress since it might take some time to get VDEV restart
response from FW.

Change-Id: I8594b35b70276f7ed3884697caf69a99ee91b952
CRs-Fixed: 2171958
2018-01-25 11:27:33 -08:00
Naveen Rawat
1af0939d2e qcacld-3.0: Set RTT responder role for SAP as per ini
Set RTT responder role for SAP as indicated by ini parameter

Change-Id: Ica0fcf027d8235654dda5d2e2065a90202621e6a
CRs-Fixed: 2167760
2018-01-24 21:43:21 -08:00
Ashish Kumar Dhanotiya
cb14b11324 qcacld-3.0: Add host support to configure GCMP
Add an ini parameter for GCMP support. Send an indication
to FW with the ini value.

Change-Id: Ib24747ddb35593373ecc83d6c7f89866571c2421
CRs-Fixed: 2175104
2018-01-24 01:43:22 -08:00
Jiachao Wu
84bb2ea507 qcacld-3.0: Add new config for BTM offload
Add new config in INI for solicited BTM offload.
Those parameters will be sent to firmware.
New parameters:
* btm_solicited_timeout: Timeout value for waiting BTM request.
* btm_max_attempt_cnt: Maximum attempt for sending BTM query to ESS.
* btm_sticky_time: Stick time after roaming to new AP by BTM.

Change-Id: I24cc680bbfde3d44a57b1e1ccf644c2bed515a2c
CRs-Fixed: 2168981
2018-01-23 00:27:47 -08:00
Ryan Hsu
6fdc60fcae qcacld-3.0: clean up the FTM legacy code
clean up the ftm legacy code

Change-Id: If56f46386108b04f8c1ec73804976c61019a6ffe
CRs-fixed: 2169366
2018-01-22 11:20:52 -08:00
Varun Reddy Yeturu
076eaa810d qcacld-3.0: Disable Tx Queues upon sta kick out event
Upon receiving a STA kick out event or a beacon miss event,
disable the Tx Queues immediately so that there is no influx
of packets anymore as the STA is going to disconnect further.

Change-Id: Ic6d7a3acbd8b90aec68771c1520359d39e0534db
CRs-Fixed: 2171633
2018-01-20 03:20:56 -08:00
Naveen Rawat
7154974018 qcacld-3.0: NAN datapath cleanup
Cleanup NAN datapath legacy code left after NAN componentization

Change-Id: I5828002d2363e01f63b0a643a0c59abd52bc4f19
CRs-Fixed: 2117687
2018-01-20 01:44:58 -08:00
Jingxiang Ge
b49aa305d6 qcacld-3.0: Fix memleak for pm runtime suspend lock
For wlan0/p2p0, connect_rpm_ctx is deinit in
hdd_cleanup_adapter.
In two cases, memleak will be detected.
1 if stop modules is triggered from __hdd_stop
   turn on/off wifi, wait iface_change_wait_time
2 if stop modules is triggered from wlan_hdd_startup
   when booting wifi, stay idle, wait iface_change_wait_time

As hdd_cleanup_adapter is only happens when rmmod, so it
doesn't satisfy LONU memleak detection.

Move connect_rpm_ctx from adapter to hdd_context, and
init/deinit following with module start/stop.

Change-Id: Iaa1934594d5ffcf3b90dd2ad41bba4eb62f71119
CRs-Fixed: 2169828
2018-01-19 11:40:15 -08:00
Padma, Santhosh Kumar
3e47c63ff2 qcacld-3.0: Add SAE related ini and cap exchange changes
Add ini changes related to SAE and also changes related
to capability exchange with supplicant.

Change-Id: I8deaa124fe0c604e8777c4bffa064a2d8173661b
CRs-Fixed: 2029357
2018-01-19 03:54:46 -08:00
Naveen Rawat
06c4ebe53d qcacld-3.0: Fix band agnostic chainmask ini params
Change band agnostic chainmask variable in hdd_config to uint8_t
because the parameter can take values 0, 1 and 2.

Change-Id: I4ea06db6031bcb98c3d3b352e175a09cd735901a
CRs-Fixed: 2171613
2018-01-19 02:03:39 -08:00
Himanshu Agarwal
6c3607ac01 qcacld-3.0: Stop connection in progress STA when SAP comes up
For STA+SAP concurrency support from GUI, first STA connection gets
triggered and while it is in progress, SAP start also comes up. Once
STA association is successful, STA connect event is sent to kernel which
gets queued in kernel workqueue and supplicant won't process M1 received
from AP and send M2 until this NL80211_CONNECT event is received. Workqueue
is not scheduled as RTNL lock is already taken by hostapd thread which has
issued start_bss command to driver. Driver cannot complete start_bss as the
pending command at the head of the SME command pending list is
hw_mode_update for STA session which cannot be processed as SME is in
WAITforKey state for STA interface. The start_bss command for SAP interface
is queued behind the hw_mode_update command and so it cannot be processed
until hw_mode_update command is processed. This causes a deadlock.

Disconnect STA interface first if connection or key exchange is in progress
and then start SAP interface to prevent this deadlock condition.

Change-Id: I2ef5fe0e3bc84e721e6a2baa0dae81c6106c5a8f
CRs-Fixed: 2171912
2018-01-18 01:49:39 -08:00
Sourav Mohapatra
421d42bb44 qcacld-3.0: Synchronize __con_mode_handler and __hdd_open
Interface up runs in normal mode (wifi@1.0-service) and it gets
preempted by the con_mode change handler when Monitor mode is
invoked via user. Then again when the normal mode gets scheduled
after the completion of Monitor mode, it tries to access contents
freed during the con_mode change.

The execution of __con_mode_handler and __hdd_open is
synchronized with help of a mutex lock and an atomic variable

Change-Id: Ia78c225a21e2c505ffae6b16647ba8f2c661bbbd
CRs-Fixed: 2158683
2018-01-17 01:40:56 -08:00
yeshwanth sriram guntuka
41f936c740 qcacld-3.0: Add config support for BTM offload
Add ini to configure BTM offload configuration
which is sent to firmware as part of RSO start
via wmi btm config cmd.

Change-Id: I69c792705b208014af8f1878f7645d957dde6c06
CRs-Fixed: 2109793
2018-01-15 17:46:07 -08:00
Abhishek Singh
6454ad3707 qcacld-3.0: Add force rsne override and use the RSNE passed by user
Adds support for INI "force_rsne_override" and vendor interface to
enable test mode to force rsne override. Once force rsne override
is set the driver will use the RSN IE's as-is from the connect
request. Exclusively used for the scenarios where the device is used as
a cert test bed and not recommended for production.

With force_rsne_override enabled in INI and once enabled from vendor
command driver will not validate the RSN IE's passed from user space
and thus induce improper IE as it is to test the peer.

Once the force_rsne_override is set, it will be active until its
disabled by vendor interface or driver unload.

If INI force_rsne_override is disabled, the force rsne override mode
cannot be enabled by vendor command.

Change-Id: Ic58474e7a18e6c1f944c61783f630af3953011c0
CRs-Fixed: 2164526
2018-01-13 01:28:09 -08:00
Abhishek Singh
1f217ecc2d qcacld-3.0: Add support for roaming on all STA interfaces
Roaming is allowed only on wlan0 interface and is not allowed by
default on any other STA interface.

With this change, roaming will be allowed on all the STA interface
with below conditions:
 - At a time only one STA interface will have roaming enabled.
 - STA which connects first will enable the roaming.
 - Whenever a STA connects and if roaming is not enabled on
   any STA interface, roaming will be enabled on the connected STA.
 - Whenever a STA on which roaming was enabled disconnects, if any
   other STA interface is present and is in connected state, the
   roaming will get enabled on the other STA interface.

Change-Id: I4c7654480ad893eb1635138447e1a0b37abf1ac4
CRs-Fixed: 2166972
2018-01-13 00:42:38 -08:00
Himanshu Agarwal
b229a14b67 qcacld-3.0: Add support for Green AP UMAC componentization
Add support for Green AP UMAC componentization.

Change-Id: I4e41ee6c5dfd055c273096c56de4fa253727b429
CRs-Fixed: 2166756
2018-01-12 12:20:09 -08:00
Dustin Brown
4ea21dbcf5 qcacld-3.0: Remove hdd_nla_parse* wrappers
Instead of maintaining two sets of nla_parse wrappers, update HDD to
reference the nla_parse wrappers defined in the wlan_cfg80211 component.

Change-Id: Ic0701f47fbc524fcaea623934f447142d39a5b77
CRs-Fixed: 2168630
2018-01-10 13:40:12 -08:00
Nachiket Kukade
98f562ab2a qcacld-3.0: Skeleton for DISA component
Create a skeleton for the DISA component. This is a CLD
component. Add files for disa core, dispatcher and
target_if. Define DISA related public structures and
objmgr objects. Add API's as stubs.

Change-Id: I63b32a0e7da0283d091815aaccea6b8703f5184c
CRs-Fixed: 2159579
2018-01-09 13:39:53 -08:00
Dustin Brown
24277bb93e qcacld-3.0: Add wrapper for nla_parse_nested()
The Linux kernel version 4.12 introduced an API change to
nla_parse_nested(). Add conditional compilation to call
nla_parse_nested with the correct parameters based on the
version of the linux kernel being compiled against.

Change-Id: I5214e9622d63ec928f5814f5840528f8c0d61422
CRs-Fixed: 2167853
2018-01-08 19:38:25 -08:00
Ashish Kumar Dhanotiya
d523f0dcab qcacld-3.0: Fill correct mode information for deleted sta
80211 mode information is not getting filled correctly,
fill correct 802.11 mode information.

Change-Id: I7013db95c5010bdaac1f84209534f63d6c7f5719
CRs-Fixed: 2133109
2018-01-08 17:40:16 -08:00
Liangwei Dong
cf5a506bba qcacld-3.0: remove dnbs flag set/unset count
The application layer (framework) should take care the
dnbs state transition on each intf.
Driver does not maintain the dnbs set/unset counting.
Remove the "restrict_offchannel_cnt" from driver.

Change-Id: I8b70a10f187f2d34397a301f08b4bd1dafb02989
CRs-Fixed: 2164827
2018-01-08 17:40:13 -08:00
Hanumanth Reddy Pothula
f79fbdfd01 qcacld-3.0: Get deleted remote station info in SAP case
Add support to get information of deleted station in case of SAP.

Change-Id: Id61ae1b36b923898237d55aa8c57d2e49815c8af
CRs-Fixed: 2126240
2018-01-08 13:33:29 -08:00
Ashish Kumar Dhanotiya
443d31f5f8 qcacld-3.0: Cache deleted station's information in case of SAP
During disconnection process, cache disconnecting STA information
so that the same information is updated to upper-layer on receiving
GET_STATION vendor command, after disconnection.

Change-Id: I2e5a0be42d81b86e6f4490de1bdf9d7e0797506d
CRs-Fixed: 2126182
2018-01-08 09:39:09 -08:00
Kiran Kumar Lokere
a0c1faa56a qcacld-3.0: Disable HE dynamic fragmentation by default
Disable HE dynamic fragmentation support by default.

Change-Id: I9db2a2e8759e5de7cb7724aa9c0789fa02dcf35b
CRs-Fixed: 2167886
2018-01-08 00:32:08 -08:00
Jiachao Wu
6e9b9f970b qcacld-3.0: Extend fw log level string length
The string length of FwDebugModuleLogleveconfig is over 255 if set all
firmware log level in config file. Now FW moudle number is 67 which mean
the string length might be 336(67*5+1).
Extend the length to 512.

Change-Id: If9842f3bfdc9ae6b3351c27c3166e2940de71fb8
CRs-Fixed: 2166118
2018-01-03 21:36:21 -08:00
Dustin Brown
db2a8bed51 qcacld-3.0: Close FTM vdev leak
When the driver transitions into Factory Test Mode (FTM), the existing
vdev is not properly destroyed. This ultimately leads to a vdev object
leak when the driver is unloaded while in FTM. To close the leak, tear
down the existing station vdev before doing the module stop operation.

Change-Id: I48ca4e6fc5750e593b6afc4e6b44a603570101cc
CRs-Fixed: 2137144
2018-01-03 16:40:19 -08:00
Ganesh Kondabattini
b6fdb6311f qcacld-3.0: Increase the max beacon count value to 10
Modify the upper limit of beacon count to 10.

CRs-Fixed: 2165013
Change-Id: Id6e6fb7eb2435f91e8052b6e8af10435dc25a2d2
2017-12-29 05:28:34 -08:00
Sandeep Puligilla
00d2a1f2c6 qcacld-3.0: Add HDD support to spectral scan
Add HDD support to spectral scan vendor commands

Change-Id: Ie58fabfca07077fd1b886eeb63c1a9361030035f
CRs-Fixed: 2165256
2017-12-29 05:28:28 -08:00
Hanumanth Reddy Pothula
07e5f99716 qcacld-3.0: Remove FW memory dump feature
qcacld-2.0 to qcacld-3.0 propagation

FW memory dump feature is no longer used. Hence remove FW memory
dump feature code changes.

Change-Id: Ida655f83630c369df746e7c0c9d61a8fee2932a2
CRs-Fixed: 2140261
2017-12-28 11:54:10 +05:30
gaurank kathpalia
90f83f081b qcacld-3.0: Change scores for QBSS/ESP load
Currently in the scoring logic the host has the same
score of 125 for the QBSS/ESP load between 50% to 75%
and 75% to 100% which sometimes may result in improper
scoring for cases where AP1 has air time fraction
127 which  convertes to 51% load and other AP2 has air
time fraction 13 which convertes to 95 % load.
But the score is same for both AP and the host selects
randomly any one of the AP instead of AP1

Fix is to change score for QBSS/ESP load to differentiate
between 50-75% and 75-100% load

Change-Id: I96d0d8a6a0a1854b2faca4435afa612336bc3caf
CRs-Fixed: 2161778
2017-12-22 13:26:22 -08:00
Poddar, Siddarth
61fbc93f6e qcacld-3.0: Enable pktlog after SSR/PDR if previously enabled
Implement a flag in hdd context to track the state of
pktlog events. Pktlog will be enabled/disabled after SSR/PDR,
depending upon the state of Pktlog events just before SSR/PDR
is triggered.

Change-Id: I18999d7fcf3677a86c21559d7d443ba1cd086528
CRs-Fixed: 2151296
2017-12-20 21:27:56 -08:00
gaurank kathpalia
0efbb56f81 qcacld-3.0: Change default value of g_is_bssid_hint_priority to 0
Change default value of g_is_bssid_hint_priority to 0, as the driver
scoring logic will take care of the beat AP to select from the candidate
AP and the host can ignore the hint.

Change-Id: Ia372e3e0f580047eae33cc0b68b0a0d1460ebfc2
CRs-Fixed: 2160591
2017-12-20 19:27:30 -08:00
gaurank kathpalia
addd8a0b0d qcacld-3.0: Change default value of pcl_weightage to 0
Change default value of pcl_weightage to 0, as pcl
weightage logic need some changes in algo to be used in LFR3.

Change-Id: I21559f7aaa8a19388cf399dee684c00c7905cfae
CRs-Fixed: 2160589
2017-12-20 15:26:54 -08:00
Paul Zhang
72697bdc04 qcacld-3.0: Add ini hostscan_adaptive_dwell_mode_no_conn
This ini will set the algo used in dwell time optimization
during host scan without connection.

Change-Id: Ie81636d32b6c42651aa9b5de52889970c17f6aca
CRs-Fixed: 2159656
2017-12-20 07:26:06 -08:00
Kiran Kumar Lokere
4aa08a5c14 qcacld-3.0: Add configuration support for he dynamic fragmentation
Add user configuration for HE dynamic fragmentation capability
support

Change-Id: I94a18b5102b1ee303ccbf832e67c37930f523bec
CRs-Fixed: 2159864
2017-12-20 05:38:38 -08:00
Amar Singhal
0928b19abe qcacld-3.0: Add sysfs interface for retrieving version information
User-space needs sysfs interface for retrieving version
information for both firmware and driver. Add this new
sysfs interface.

Change-Id: I666aff1868f4d1d954773fae1ae85c1ebd0fdc87
CRs-Fixed: 2153885
2017-12-20 02:26:54 -08:00
Jeff Johnson
876c1a6d35 qcacld-3.0: Use enum QDF_GLOBAL_MODE
Change "qcacmn: Rename enum tQDF_GLOBAL_CON_MODE" (qca-wifi-host-cmn
Change-Id I57933a62f6ce02b6594d97198be8132e61e8d1f6) renamed enum
tQDF_GLOBAL_CON_MODE to QDF_GLOBAL_MODE. Update all references to use
the new name.

Change-Id: I0e806e87a4c4828279dee83450b1fc20a236c9d3
CRs-Fixed: 2158636
2017-12-18 21:48:28 -08:00
Naveen Rawat
269b4ed0a7 qcacld-3.0: Add ini to control chain mask for 2G and 5G
Add ini parameters to control chain mask in 2G and 5G band.

Change-Id: I336c4598164c55d923f20b748fb189654b713102
CRs-Fixed: 2155583
2017-12-18 10:45:05 -08:00
Dustin Brown
920397d930 qcacld-3.0: Remove hdd_adapter_list_node_t
Linux convention is to embed a list node in a structure that is meant to
be a member of a list. However, hdd_adapter_list_node_t is created to
contain both the list node and the list item itself. Remove
hdd_adapter_list_node_t and embed the list node directly into
hdd_adapter instead.

Change-Id: I62888a0212d88aa212fee34b886e3d8a4875e0c7
CRs-Fixed: 2159309
2017-12-15 13:26:23 -08:00
Abhishek Singh
104a1bfccc qcacld-3.0: Enable roaming scoring logic by default
Set enable_scoring_for_roam to enable roaming scoring logic by default.

Change-Id: Ib48116142f38d3a796f0c02d0345ebc3fdd36700
CRs-Fixed: 2157478
2017-12-15 01:38:36 -08:00
Vignesh Viswanathan
96e0e702ec qcacld-3.0: Fix potential buffer overflow in wlan_hdd_cfg80211_set_ie
In function wlan_hdd_cfg80211_set_ie, RSN IE is parsed and copied
into the buffer  for length eLen + 2.
However, the buffer WPARSNIE is allocated only for
size. If eLen + 2 is greater than MAX_WPA_RSN_IE_LEN, a buffer overflow
would occur.

Add sanity check to make sure eLen does not exceed MAX_WPA_RSN_IE_LEN - 2.
Also increase the size of  to 255 as per the spec

Change-Id: Ibf44e8dc1010e6e32b2262357d3aa180926d5c99
CRs-Fixed: 2154216
2017-12-12 21:27:28 -08:00
Arunk Khandavalli
ebd1e37e15 qcacld-3.0: Reject system suspend in monitor mode
In the monitor mode when the system is suspended
FW trying to send packet to host which is not allowed leading to this
system crash.

Acquire wakelock once the device enters monitor mode and block
the system from entering suspend.

Change-Id: I27ba2d43fd7b84bc1ae7e6046ab635065872b2d2
CRs-Fixed: 2130546
2017-12-12 15:56:41 -08:00
Paul Zhang
99fe884782 qcacld-3.0: Implement interface to set WLM level
WLAN Latency module (WLM) is added by fw to gain latency
because of schedule out of service like power saving,
scanning, roaming etc. per the level set by framework.

Change-Id: Id4305e5e66dcce464447aff56296c7d027347ea2
CRs-Fixed: 2142391
2017-12-11 22:08:19 -08:00
Nachiket Kukade
08b9f2903b qcacld-3.0: Use new event infrastructure for session open/close events
With current implementation, if sme_open_session sends down a command
to the Firmware and an SSR/PDR occurs, the thread is stuck on waiting
on an event. The thread also holds the rtnl lock and will keep
blocking any other thread from acquiring it till timeout occurs. This
can result in deadlock situation with IPA driver trying to execute
driver ops during the SSR/PDR notification callback.

Use the wait_for_event_completion API for waiting on event. With this
the event will be purged when driver receives FW_DOWN indication.

Change-Id: I2920fd36c0eb5bb5994e66e584d12a2a9d8f409a
CRs-Fixed: 2120226
2017-12-11 15:46:30 -08:00
Varun Reddy Yeturu
a48bc418c6 qcacld-3.0: Fix implicit enum conversion in csr_fetch_valid_ch_lst
Fix implicit conversion from enumeration type 'tSirRFBand'
to different enumeration type 'eCsrBand'

Currently 3 different types of enums exist to enumerate the
band type.Remove eCsrBand and tSirRfBand and
use tSirRFBand everywhere.

Change-Id: I1862c6d3a5daca7523870b7f0931ee4f20c7ce4f
CRs-Fixed: 2145080
2017-12-07 23:18:56 -08:00
Naveen Rawat
b0c5b6b6a0 qcacld-3.0: Statically allocate DPH hash table
DPH hash table is allocated for each session of depth equal to
max possible peers. This memory chunk goes upto 33KB in size and
may fail. Instead allocate the memory from BSS segment so that
run-time allocation is not needed.

Change-Id: I56d6adb7934faef1940ab8515fed30646f536ab2
CRs-fixed: 2149563
2017-12-07 19:26:50 -08:00
Bala Venkatesh
8c2c9712a3 qcacld-3.0: Change default value of gEnableTDLSScan
Change the value of CFG_TDLS_SCAN_ENABLE_DEFAULT to 1.

Change-Id: I51710ef88e14c02f48677b5fd271710b98e6eff1
CRs-Fixed: 2153756
2017-12-06 06:56:50 -08:00
Mohit Khanna
ca4173ba74 qcacld-3.0: add periodic data traffic stats
Add support for periodic stats for data packets to be displayed in
wlan driver logs.

Change-Id: Iee6759ae75657ae93e94ea1bb1343f2ea489c087
CRs-Fixed: 2120047
2017-12-04 19:47:06 -08:00