Commit Graph

582 Commits

Author SHA1 Message Date
Nitesh Shah
db5ea0d6db qcacld-3.0: Send Nss 1x1 for HT-STAs if hw is DBS capable
If the device is DBS capable, then it may switch between 2x2 and
1x1 depending on the active session. If the reference device is
non-VHT STA and is HT-STA, then the reference device may not be
able to decode operating mode notification frame. Thus, there can
be IOT issues.

The fix is to associate with non-VHT STA that are HT STA with 1x1
Nss capability.

Change-Id: Ic6c889f18a2e20bbde9e0d8228de65cffa5162b8
CRs-Fixed: 2023200
2017-03-28 13:00:43 -07:00
Krishna Kumaar Natarajan
a5c5aad943 qcacld-3.0: [11AX] Update shortgi to handle values upto 4
Update shortgi to handle values upto 4. With support
of 802.11ax, short gi value can go upto 4. This change
set will add support to handle that.

Change-Id: Ifb7e6b0b6298995758bf065c6e54d58d5bd65496
CRs-Fixed: 1073481
2017-03-28 13:00:29 -07:00
Krishna Kumaar Natarajan
f1581df779 qcacld-3.0: [11AX] Add support to configure peer rate
Add support for to configure peer rates using set_peer_rate
iwpriv command.

Change-Id: I5181686a155fb7212cbcb89168b1929e00b0d1d1
CRs-Fixed: 1073481
2017-03-28 13:00:27 -07:00
Dustin Brown
d28772bde9 qcacld-3.0: Change sme_open_session to take a session Id
Currently, vdev_id and session_id are assumed to be the same, but are
generated in two separate code paths. Unsurprisingly, this leads to a
whole host of desync issues. Instead, modify sme_open_session to take
a session_id, which will be populated with an objmgr vdev_id. This means
vdev_id and session_id can no longer desync, as there is only a single
source for both.

Change-Id: I104aba29beb3c19d0ef2ff23380e3d005e01ced0
CRs-Fixed: 2022136
2017-03-28 12:49:04 -07:00
Ganesh Kondabattini
ac57007ff5 qcacld-3.0: use tdls_frm_session_id while sending resp to sme
This change addresses below two issues.
1) pe session entry may not exist in some cases where PE receives
   ack cnf after deleting the pe session. So use
   "lim.tdls_frm_session_id" instead of peSessionId while sending
   the tdls mgmt frames.

2) PE sends eWNI_SME_TDLS_SEND_MGMT_RSP with failure status to SME
   if mgmt tx fails before calling WDA_TxPacket. But SME is
   ignoring this failure and not indicating ack conf failure to HDD.

Change-Id: I089be87fef71ebfb0327c47a301aaf5ede59d031
CRs-Fixed: 887676
2017-03-24 09:41:44 -07:00
Jeff Johnson
560dc56d97 qcacld-3.0: Fix "no space before tabs" style errors
Automated code style checker detected multiple instance of "no space
before tabs," so fix those issues.

Change-Id: I93248e3cfafa047c4fa8c9553769f9457086d01a
CRs-Fixed: 2021507
2017-03-23 17:00:48 -07:00
Jeff Johnson
3c2ffbeba2 qcacld-3.0: SME: Remove obsolete support for Class B stats
SME currently has legacy code to support the tCsrGlobalClassBStatsInfo
data structure. However these stats were specific to the WDI firmware
API used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from SME.

Change-Id: Ia18d8635cff63d91f779bc3bae0a30c594514f8f
CRs-Fixed: 2021538
2017-03-23 17:00:46 -07:00
Jeff Johnson
1b67b84784 qcacld-3.0: SME: Remove obsolete support for Class C stats
SME currently has legacy code to support the tCsrGlobalClassCStatsInfo
data structure. However these stats were specific to the WDI firmware
API used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from SME.

Change-Id: I3e63f99e1dd1b509694e3953490355b4c23f6c73
CRs-Fixed: 2021528
2017-03-23 17:00:40 -07:00
Jeff Johnson
ad0b2c642f qcacld-3.0: Fix nonsense Class A stats field names
The qcacld-3.0 driver inherited the tCsrGlobalClassAStatsInfo data
structure from a prior version of the driver. This structure was based
upon the WDI firmware API used by older generations of hardware, and
this interface is not directly supported by the WMI interface used by
current generations of firmware. However "glue" code was introduced
which converts between the WMI data and this WDI-based representation.

When the glue code was introduced there were some parameters which
were supported by WDI but not WMI, and there were some parameters
which were supported by WMI but not WDI. Rather than remove the fields
for parameters not supported by WMI and add new fields for the
parameters only supported by WMI, for some reason the existing
WDI-only fields were repurposed. This fact is captured in WMA:
	/* rx_frag_cnt and promiscuous_rx_frag_cnt
	 * parameter is currently not used. lets use the
	 * same parameter to hold the nss value and mcs
	 * rate flags */
	classa_stats->rx_frag_cnt = node->nss;
	classa_stats->promiscuous_rx_frag_cnt = mcsRateFlags;

And leads to nonsense code such as the following in HDD:
	nss = pAdapter->hdd_stats.ClassA_stat.rx_frag_cnt;
	rate_flags = pAdapter->hdd_stats.ClassA_stat.promiscuous_rx_frag_cnt;

Rename these fields so that they match the data they hold, and remove
other legacy fields which are unused.

Change-Id: If04a8943ad90d796968c817ff5e634eec23c97f0
CRs-Fixed: 2021520
2017-03-23 17:00:35 -07:00
Krishna Kumaar Natarajan
0103ef8f7c qcacld-3.0: [11AX] Add changes for peer association
Add changes for 11ax peer association.

Add support for the following
 - update data structures to hold HE capabilities
 - setting up HE capabilities in the session
 - updating sta context with correct HE config
 - intersecting self and peer capabilities
 - update derivation of peer phymode to handle 11ax phymode

Change-Id: I46c7a7328d09e74bc0c5b25a67f6273d7eb04d30
CRs-Fixed: 1073481
2017-03-23 12:15:39 -07:00
Krishna Kumaar Natarajan
90bb6f12fd qcacld-3.0: [11AX] Add INI parameters related to 11AX
Add INI parameters to enable/disable ul_ofdma and ul_mimo.

Change-Id: Iaeac86db11593002bdbf3d6a92029657c3352e94
CRs-Fixed: 1073481
2017-03-22 09:09:31 -07:00
Krishna Kumaar Natarajan
4f1d7724a8 qcacld-3.0: [11AX] Add dot11mode changes to support 11ax
Add new dot11mode and update the utility functions to derive
the dot11mode based on the userspace config, INI config and
FW capability.

Change-Id: I5780120ef7bc2b78fd596e937fe14a2c8ad88348
CRs-Fixed: 1073481
2017-03-22 09:09:29 -07:00
Sreelakshmi Konamki
075431a9f8 qcacld-3.0: Remove redundant MTRACE logs
This change includes to remove redundant MRACE logs
which are seen very frequent in MTRACE dumps and
remove multiple definition of WMA_SET_TX_POWER_REQ.

Change-Id: Ic5ac780ba3d31a8f2c6e4c10f7af5051864e7f3e
CRs-Fixed: 2020491
2017-03-21 16:15:12 -07:00
Jeff Johnson
60be8a9f44 qcacld-3.0: SME: Remove obsolete support for tCsrPerStaStatsInfo
SME currently has legacy code to support the tCsrPerStaStatsInfo data
structure. However these stats were specific to the WDI firmware API
used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from SME.

Change-Id: Ibab7f94764c68933633c46da497613add0824ff1
CRs-Fixed: 2020067
2017-03-21 09:48:01 -07:00
Jeff Johnson
97fdfd0e1b qcacld-3.0: Correlate SME STATS macros to underlying enumerations
Currently SME exposes a set of SME_*_STATS macros to indicate which
stats are of interest in a call to sme_get_statistics().

What is not obvious is that the values of these macros are required to
be aligned with the eCsrRoamStatsClassTypes enumerated values. Update
the macros to make that alignment explicit.

Change-Id: Id992a8230a1aa4df941ea7666bc00a661a9ab68e
CRs-Fixed: 2020055
2017-03-21 09:47:54 -07:00
Nitesh Shah
99dd95556b qcacld-3.0: Send Deauth and delete all TDLS stations
This change addresses sending Deauth to TDLS peers,
delete TDLS stations and clear hdd structures if
concurrency is detected.

Change-Id: Ia9f6724a9db20c6d9ebfc2fa735569305f35f084
CRs-Fixed: 2022489
2017-03-21 06:12:14 -07:00
Naveen Rawat
910726a844 qcacld-3.0: MCL changes for WIFI Positioning component
Implement MCL changes to use new WIFI POS component APIs

Change-Id: Ifccc7f6e9c614570de758fde3a23b63ee5f387d7
CRs-Fixed: 2003488
2017-03-21 01:10:21 -07:00
Krishna Kumaar Natarajan
d0bbb3c52f qcacld-3.0: [11AX] Add support in WMA to receive HE Capabilities
Add support in WMA to receive and store HE capabilities coming
from extended service ready event.

Add support to receive HE capabilities, convert into OTA type of
internal host structure and pass it to the uppper layer as target
config. Add utility funciton for the conversion as well.

Change-Id: If0ceeb3db74be6cf6893b8e74c710863bab8b41b
CRs-Fixed: 1073481
2017-03-18 16:00:03 -07:00
Sreelakshmi Konamki
2d67be24ab qcacld-3.0: Resolve "Unknown" values in MTRACE logs
Sometimes MTRACE dump functions returns "unknown" values instead of
data passed to MTRACE. To resolve this add any missing MTRACE code and
data enums to the corresponding trace functions.

Change-Id: I86b9b9f433be64879c96ccc65c142e07aaf23ed0
CRs-Fixed: 2018532
2017-03-17 08:48:27 -07:00
Sreelakshmi Konamki
40032d588e qcacld-3.0: Update MDIE when PNO match event found
qcacld-2.0 to qcacld-3.0 propagation

Current implementation does not update MDIE while processing of
PNO match event due to this STA is unable to connect to 11r AP.

Add changes to update MDIE to 'tSirBssDescription' in
csr_scan_save_preferred_network_found()

Change-Id: Ia419c0f7284fc168434d91bcc3d7b29b99a06f3f
CRs-Fixed: 2005101
2017-03-17 08:48:26 -07:00
Abhishek Singh
cfb4448302 qcacld-3.0: Fix compile errors when WLAN_FEATURE_11W is disabled
Fix compilation errors when WLAN_FEATURE_11W is disabled.

Change-Id: I5bed89f0077a51117c57e176568f849293d40ee5
CRs-Fixed: 2019223
2017-03-17 04:59:16 -07:00
Varun Reddy Yeturu
1ce7affdda qcacld-3.0: Handle roam synch propagation failure
Handle Roam synch propagation failure properly.
Disable the roaming in progress flags in HDD.
Send a ROAM STOP command to firmware immediately.

Change-Id: I5f014ab79db553a1df758bf639362f26272a6a23
CRs-Fixed: 2020168
2017-03-16 11:21:33 -07:00
Nishank Aggarwal
4a88884148 qcacld-3.0: Fix ASSERT while loading driver
Currently in csr_purge_old_scan_results() mutex_lock
did't acquire by current thread but same thread is
releasing the lock due to which there is a ASSERT while
releasing mutex_lock.

Fix is to acuire the mutex_lock properly before releasing.

Change-Id: I1023dca73ffaa3d3b3a123d474c3ac5b0e1c1af2
CRs-Fixed: 2020452
2017-03-16 09:49:52 -07:00
Varun Reddy Yeturu
88f123c804 qcacld-3.0: Ignore RSI if disconnect is initiated
Ignore the Roam Synch Indication from firmware if the
user space has already issued a disconnect before
receiving ROAM_START from firmware.

Disconnect might have cleared the roam profile and will be
sitting in the queue for the PE processing to happen.
If the disconnect is in the queue and a roam synch indication
is received, then check the CSR state from the first callback
of roam synch propagation and bail out there itself.

Disconnect will eventually send a ROAM_STOP command to the
firmware and it will cleanup

Change-Id: I528f552cd601dc9d23f709410115fb0af944899d
CRs-Fixed: 2018928
2017-03-14 23:40:51 -07:00
Varun Reddy Yeturu
f86f052f74 qcacld-3.0: Issue disconnect if roaming fails
If the offloaded roaming feature has started, but
has not completed for some reason, then issue a
disconnect and cleanup

Change-Id: Ibcd4f83ea126a1d05531f9bf30d6827008fdbfea
CRs-Fixed: 2019435
2017-03-14 23:40:50 -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
c7d808965f qcacld-3.0: Send proper reason code to Supplicant on beacon miss event
qcacld-2.0 to qcacld-3.0 propagation

Once the beacon miss event is received in driver, sta cleanup
happens and sends deauth reason code as 505 which is internal
value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE).

Send reason code as zero to Supplicant for Beacon miss kickout.
Cleanup the similar handling in csr_api_roam as it is redundant.

Change-Id: I6df97e05ac20f285646df3d5fe73800138a18d89
CRs-Fixed: 1025871
2017-03-14 00:52:00 -07:00
Kiran Kumar Lokere
35fb524572 qcacld-3.0: Enable channel bonding only in 11n or 11ac mode
Enable channel bonding only if the dot11 mode is 11n or 11ac

Change-Id: Ic0afdb8ed7c36838725fd63730fca0310d5a731f
CRs-Fixed: 2018363
2017-03-12 21:40:19 -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
Abhishek Singh
e6857812fe qcacld-3.0: Fix for ROC cmd timeout issue with new scan module
When converged scan is enabled all the scan commands are queued to
serialization module from scan module and use struct
scan_start_request pointing to umac_cmd pointer.

Due to this if there is already an scan req going on and ROC is
queued driver fails to find ROC request in csr_get_active_scan_entry()
as the CSR try to interpret umac_cmd pointer as tSmeCmd.
And thus sometime ROC cmd times out.

Fix this by interpreting umac_cmd as struct scan_start_request for
scan cmd instead of tSmeCmd.

Change-Id: I6674a54b60d28d799188261b1e56b0c657c1ac19
CRs-Fixed: 2013212
2017-03-11 12:11:02 -08:00
Sandeep Puligilla
a330c8cd93 qcacld-3.0: Legacy scan for ssid support
Update Legacy scan for ssid code according to
new scan common module.

Change-Id: Ieb20c84c56f91b32a0b2c6381ad0f19c363df34d
CRs-Fixed: 2013212
2017-03-11 12:11:00 -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
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
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
Sarada Prasanna Garnayak
f21c296946 qcacld-3.0: Fix the 64-bit division linking error on 32bit arch
The 64-bit division in 32-bit architecture call 64-bit-by-64-bit
division routines "__aeabi_uldivmod", which is not defined for
the 32-bit architecture.

Use do_div asm-generic library api for division operation to avoid
the arch specific division "undefined symbol:  __aeabi_uldivmod"
linking error during wlan driver load on 32-bit target.

CRs-Fixed: 2014971
Change-Id: I43253d1eb9f726ac0a96d21f4511a5a282c7bb2d
2017-03-10 00:38:50 -08:00
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
Naveen Rawat
443f5cda75 qcacld-3.0: Remove eSmeCommandOemDataReq
Remove OEM DATA REQ serialization enum, since wifi positioning
component does not use command serialization.

Change-Id: I16cb21a9ea6b4610dbde4ab51a6cec7542a7e0c0
CRs-Fixed: 2003488
2017-03-09 13:05:56 -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
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
Varun Reddy Yeturu
1725782311 qcacld-3.0: Fix the log level in a log message
Propagation from cld3.0-1.1 to cld3.0-2.0

Fix the log level from Error to Info since it is not
an error and also move the message out of the if block
to give more meaningful information

Change-Id: Ia25bcc5b19d5b05666038b75b9a626e69b8de68c
CRs-Fixed: 2014221
2017-03-08 10:52:08 -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
Padma, Santhosh Kumar
4eb7908901 qcacld-3.0: Wait for peer delete response from firmware
Currently driver does not wait for peer del response from firmware,
but posts del sta response indication to SME immediately. This
can cause an assert in firmware if driver receives add sta
immediately before even del sta response from firmware. Add
changes to wait for peer del response from firmware to fix
this.

Change-Id: I16a84256f4a1ed971c17eb3139faac5622eadda4
CRs-Fixed: 2008940
2017-03-03 13:13:04 -08:00
Abhishek Singh
6092fbbd64 qcacld-3.0: Add changes to get/flush scan results
Add changes to get/flush scan results. Also add support to
convert legacy filter and scan entry to converged one and vice
versa.

Change-Id: I590745af3943a8975fb0644d02e58b2133c9f1cb
CRs-Fixed: 2013212
2017-03-03 13:12:49 -08:00
Padma, Santhosh Kumar
f3f6fc00b5 qcacld-3.0: Logging enhancements to WMM
Add logging enhancements to WMM code

Change-Id: Ic464711f201deb5af3b2eff09b9211a0aa0c3b25
CRs-Fixed: 1106417
2017-03-02 16:15:58 -08:00
Padma, Santhosh Kumar
93ec7d2960 qcacld-3.0: Logging enhancements to RRM APIs
Add logging enhancements to RRM code

Change-Id: I4aacbca13c604d2f2dd354d9417a3e65dff398ae
CRs-Fixed: 1106418
2017-03-02 16:15:57 -08:00
Padma, Santhosh Kumar
cd35f532e4 qcacld-3.0: Logging enhancements to LFR3 code
Add logging enhancements to LFR3 code

Change-Id: If8ea2c15a29889a22359911acc433f93691b9279
CRs-Fixed: 1106420
2017-03-02 16:15:55 -08:00
Naveen Rawat
56b4de80a8 qcacld-3.0: Fix uninitialized usage
In function sme_get_beacon_frm, result_handle maybe used uninitialized.
Fix this by initializing result_handle with NULL value.

Change-Id: Ia1437b6adf1bbcfe7d2d87b42a252e4a0ee6f5ea
CRs-Fixed: 2008665
2017-03-02 13:02:24 -08:00
Sreelakshmi Konamki
6b1f5513cf qcacld-3.0: Remove redundant fast_roam_enabled flag from CSR session
'fast_roam_enabled' flag does same as 'do_not_roam' flag which is used to
track whether roaming is enabled or disabled per CSR session.
As per code 'do_not_rome' flag alone is sufficient to track roaming status
per session.

Fix to remove redundant 'fast_roam_enabled' flag to allow vendor roaming.

Change-Id: Id7f6e547b883c932f615cfbf89eeb30d47d6408e
CRs-Fixed: 1105973
2017-03-02 10:03:50 -08:00
Sreelakshmi Konamki
66ddf3a759 qcacld-3.0: Remove PTK/GTK debug logs
qcacld-2.0 to qcacld-3.0 propagation

Currently host prints PTK and GTK key information in default logs.
Fix to remove the debug logs which prints sensitive key information.

Change-Id: I358b09b77d23eeb5da7d826859ae119a8ea4af8a
CRs-Fixed: 1097857
2017-03-02 10:03:45 -08:00
Sreelakshmi Konamki
b53c629c0f qcacld-3.0: Generate bug report if scan rejected by driver
qcacld-2.0 to qcacld-3.0 propagation

Driver will not allow scan if connection is in progress.

Add driver changes to generate bug report and trigger SSR
if current session id, rejected reason matches with last rejected
sesssion id, reason and time delta between current time and
last rejected timestamp is greater than 5 mins

Change-Id: Ic64a6fd443104b291b5b7f6cda3bfbe8273c671a
CRs-Fixed: 1081489
2017-03-02 10:03:43 -08:00