Commit Graph

15682 Commits

Author SHA1 Message Date
Rakesh Pillai
4981a8f790 qcacld-3.0: cdp: Convergence of cdp_mob_stats_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged mob_stats_ops
- clear_stats

CRs-Fixed: 2539747
Change-Id: I5ee060b62d15380df4b8d15bb5709d700902aafd
2019-11-11 23:07:57 -08:00
Rakesh Pillai
84714471df qcacld-3.0: cdp: Convergence of cdp_ocb_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info

CRs-Fixed: 2539745
Change-Id: I7de53c48ec6b7f0c09be7c9cf642d8cf4f8eae78
2019-11-11 23:07:52 -08:00
Rakesh Pillai
82555082c9 qcacld-3.0: cdp: Convergence of cdp_throttle_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged throttle_ops
- throttle_init_period
- throttle_set_level

CRs-Fixed: 2539744
Change-Id: I0e1339ead92d66463d3b58ed9268c7194fd2bd27
2019-11-11 23:07:46 -08:00
Rakesh Pillai
ef35fab84c qcacld-3.0: cdp: Convergence of cdp_delay_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval

CRs-Fixed: 2539742
Change-Id: I201d343f4ced3b861a65ddf78e10e66f786e5e91
2019-11-11 23:07:40 -08:00
Rakesh Pillai
a889ffa967 qcacld-3.0: cdp: Convergence of cdp_flowctl_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached

CRs-Fixed: 2539738
Change-Id: I9b11e66d8c2644f16e0f2464c323798a4cba007a
2019-11-11 23:07:35 -08:00
nshrivas
76be14960f Release 5.2.0.156Q
Release 5.2.0.156Q

Change-Id: I2d44b87e3f9fa75e0534652994c763388edadaa2
CRs-Fixed: 774533
2019-11-11 16:44:09 -08:00
Pragaspathi Thilagaraj
483d70b71b qcacld-3.0: Validate hidden ssid after roaming to avoid disconnection
After roam synch indication is received, the driver compares the
SSID of the current AP and SSID of the roamed AP. If there is a
mismatch, driver issues disassociate to current connected AP.
This causes data path queues to be stopped and M2 to the roamed
AP from userspace will fail. The SSID of the current AP is
parsed from the beacon IEs stored in the connected bss
description. In hidden ssid case the SSID IE has 0 length
and the host receives unicast probe with SSID of the
AP in the roam synch indication. So SSID mismatch happens
and validation fails.

Check if the current SSID in the bss description is NULL.
If its NULL, get the SSID from the connected profile in csr
session.

Change-Id: I30c41b821c0fc506d763eb33f8bb706dd26b405a
CRs-Fixed: 2544915
2019-11-11 16:44:08 -08:00
nshrivas
4b9cad9628 Release 5.2.0.156P
Release 5.2.0.156P

Change-Id: I1354489de590a05e840260b1634b2e1191c882bd
CRs-Fixed: 774533
2019-11-11 15:15:47 -08:00
gaurank kathpalia
7944f32d2c qcacld-3.0: Make get_nss command compatible with hastings
Currently the command to get nss checks the max capability
of enable 2x2, and if the capability is 1, and the
hw mode is currently DBS, it lowers the nss capability
to 1 which is expected in helium, but not in hastings.

Fix is to check whether the device supports DBS 2x2
capability and then only downgrade the value of nss.

Change-Id: I18acef455c0790862ba786f87af776b65646aca6
CRs-Fixed: 2557587
2019-11-11 15:15:46 -08:00
Sourav Mohapatra
f43b308019 qcacld-3.0: Take dev_hold during iterating adapters
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.

An example of this issue is seen when the following happens in parallel.
	1. del_virtual_interface -> hdd_remove_adapter -> removes node
	2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration

To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.

Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
2019-11-11 15:15:33 -08:00
Li Feng
0ab277ae53 qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
    csr_roam_get_phy_mode_band_for_bss

Change-Id: I98be07f9bcca3b85fd1dedbc532fc9810a8d5e4d
CRs-Fixed: 2560010
2019-11-11 15:15:19 -08:00
nshrivas
ce07ddd790 Release 5.2.0.156O
Release 5.2.0.156O

Change-Id: Ic6ed54cbe06f4bb328bad45bac71be5ac51f1aff
CRs-Fixed: 774533
2019-11-11 10:49:18 -08:00
gaurank kathpalia
f50998a4cb qcacld-3.0: Set the flag for max BW support
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.

Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.

Change-Id: I6240b8ae2f0c7389c43dd310d894a35411503d6e
CRs-Fixed: 2550431
2019-11-11 10:49:18 -08:00
nshrivas
151b1d0fc3 Release 5.2.0.156N
Release 5.2.0.156N

Change-Id: Ic3f7e5eeb4ac51228968b402ca31cb1e4f3dde5e
CRs-Fixed: 774533
2019-11-11 02:05:27 -08:00
nshrivas
e5fe7adfe4 Release 5.2.0.156M
Release 5.2.0.156M

Change-Id: I9e5c0b468fe89ae707517eae70b1bd6256ff739a
CRs-Fixed: 774533
2019-11-10 20:41:02 -08:00
Will Huang
a6af7e1182 qcacld-3.0: Use channel frequency in sme_get_cfg_valid_channels()
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.

Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
2019-11-10 20:41:01 -08:00
nshrivas
9c82045c9b Release 5.2.0.156L
Release 5.2.0.156L

Change-Id: Ieca4041da5eba25446038b540eda544e505c151c
CRs-Fixed: 774533
2019-11-09 02:26:29 -08:00
Arun Kumar Khandavalli
c13afcd9da qcacld-3.0: Retrieve information from the object manager vdev
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.

Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
2019-11-09 02:26:27 -08:00
nshrivas
dc111e8549 Release 5.2.0.156K
Release 5.2.0.156K

Change-Id: Id21eb310f6ea895a46dbaf2a12ce1d06b82f33da
CRs-Fixed: 774533
2019-11-08 18:23:38 -08:00
Li Feng
96955a1edd qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
    csr_roam_chk_lnk_set_ctx_rsp

Change-Id: Ia96b78406fc09d0ee4383a446bdd5e09d8f7f12c
CRs-Fixed: 2559993
2019-11-08 18:23:37 -08:00
nshrivas
ac101ab6bb Release 5.2.0.156J
Release 5.2.0.156J

Change-Id: I1879c2352e8970f9771316c5a5c51c23d3635df8
CRs-Fixed: 774533
2019-11-08 15:54:58 -08:00
Mohit Khanna
5b42d1b969 qcacld-3.0: Wait for IPA TX Completions on IPA disablement
In DBS scenario(SAP + STA) when all SPA clients disconnect, while STA is
still connected, IPA pipes are disabled on the lithium target. At this
time, its possible that some packets TX from IPA over WLAN are still
pending. If these completions come after IPA pipes are disabled, it can
lead to a NOC error, since the GSI doorbell register for WBM2SW2 ring
may be clock gated (after IPA pipes are disabled).

To avoid this situation, wait for some time before disabling IPA pipes.
IPA pipes are disabled after a timeout, when system suspend call tries
to suspend the bus. A driver unload or a softap tear-down will also
disable the pipes.

Change-Id: I542049fa19d0dcf5c31d9b8a2d836388847dd6c1
CRs-Fixed: 2553670
2019-11-08 15:54:58 -08:00
nshrivas
3161be186c Release 5.2.0.156I
Release 5.2.0.156I

Change-Id: I099d8c183ab1e6111beba2911555754b5855c619
CRs-Fixed: 774533
2019-11-08 06:54:40 -08:00
Arun Kumar Khandavalli
27f443e880 qcacld-3.0: Drive the self peer creation from the sme layer
Presently as part of the vdev creation the self peer for the vdev
is created in the object manager and in the firmware. The self
peer creation in the object manager needs the vdev to be in the
created state. As part of new changes to send the vdev create to
firmware as part of the vdev creation notification there will be
failure in creating in the self peer.

Hence, drive the self peer creation from the SME layer which will
create the vdev.

Change-Id: I0875f4ec5bd96438c0f21056e1d6920d3be2a177
CRs-Fixed: 2555868
2019-11-08 06:54:39 -08:00
nshrivas
1864fba4b9 Release 5.2.0.156H
Release 5.2.0.156H

Change-Id: I858775e21951c73273f0cdfbd72a508a87303f3c
CRs-Fixed: 774533
2019-11-08 01:45:03 -08:00
Rakesh Pillai
3189481b43 qcacld-3.0: Pass vdev_id instead of vdev for cdp txrx stats
The datapath vdev handle is not to be used outside
datapath layer. So the cdp api for getting txrx stats
will pass vdev_id instead of the vdev handle.

Pass vdev id instead of vdev handle for the cdp api
used to get txrx stats.

CRs-Fixed: 2560363
Change-Id: I761966c2a7c7145e511b679556477beea74eda06
2019-11-08 01:45:02 -08:00
nshrivas
f852281c41 Release 5.2.0.156G
Release 5.2.0.156G

Change-Id: I0d6cd8a7b58cb016fdd45e9773fe2a093a7c5858
CRs-Fixed: 774533
2019-11-07 15:16:12 -08:00
Li Feng
ae9c0fa3fb qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:

    csr_is_valid_channel

Change-Id: Ie0c912459daf8bcd907b27a288ad82edd18c22f1
CRs-Fixed: 2554177
2019-11-07 15:16:11 -08:00
nshrivas
7b8e40d71f Release 5.2.0.156F
Release 5.2.0.156F

Change-Id: I8b7a3c01a6e24582828540f41bcef5b0534c641f
CRs-Fixed: 774533
2019-11-07 13:43:49 -08:00
nshrivas
45c9e3a6e8 Release 5.2.0.156E
Release 5.2.0.156E

Change-Id: Ie634b06a12b639f3582e067e91eefbd88b24d469
CRs-Fixed: 774533
2019-11-07 09:20:26 -08:00
Alan Chen
d77099006c qcacld-3.0: Remove arp_ac_category INI item
The mechanism of overriding ARP frames with AC will not work since
firmware always defaults to BE. Since this overriding is not going to
be supported, remove the arp_ac_category INI and all areas that use it.

Change-Id: I8bff251ded5842f3d0c95bb916eb98a051696ae0
CRs-Fixed: 2555459
2019-11-07 09:20:25 -08:00
nshrivas
62854768d5 Release 5.2.0.156D
Release 5.2.0.156D

Change-Id: Icdc7858f19f53b313841ee2f2aa5ccd5696e8f03
CRs-Fixed: 774533
2019-11-07 07:23:48 -08:00
tinlin
f80d3c78bb qcacld-3.0: Convert legacy channel usage
Modify the following API' code and parameters to make
sure it is using frequency instead of channel:

    csr_add_to_occupied_channels

Change-Id: I002b4d4fe08ee14c8daa3ed113a030d5ab0f5557
CRs-Fixed: 2554988
2019-11-07 07:23:47 -08:00
Tushnim Bhattacharyya
5d01a8a2b5 qcacld-3.0: Replace channel with frequency in struct sSirProbeRespBeacon
Replace channel with frequency in struct sSirProbeRespBeacon.

Change-Id: I2407ed3e6ddd11c72c7b4359197241654922ea65
CRs-Fixed: 2556361
2019-11-07 07:23:43 -08:00
wadesong
88aa89a079 qcacld-3.0: Convert SME code legacy channel ID usage
1) Change hdd_parse_plm_cmd's code to populate frequency
   list instead of channel ID list into struct
   plm_req_params.

2) Use frequencies instead of channel IDs in the following
   APIs' parameter/code:

   sme_set_plm_request
   csr_is_supported_channel

3) Stop populating channel freq list in function
   wma_plm_start, as the frequency list will be included
   in struct plm_req_params automatically.

Change-Id: I6704752317248ac4cfe800629d777f4a127e7be7
CRs-Fixed: 2560088
2019-11-07 07:23:37 -08:00
nshrivas
0cfea13e63 Release 5.2.0.156C
Release 5.2.0.156C

Change-Id: I72d6074b32f6aa2476e9885b5c2f8cf373bd1204
CRs-Fixed: 774533
2019-11-07 02:42:58 -08:00
wadesong
2bab3a5b7c qcacld-3.0: Convert SME code legacy channel ID usage
1) Change csr_get_cfg_valid_channels's code to make it
   use channel frequencies directly to calculate a
   valid channel list.

2) Add kernel-doc for csr_get_cfg_valid_channels.

3) Remove the definition, declaration and usage of
   csr_get_cfg_valid_freq as csr_get_cfg_valid_channels
   does exactly the same job.

Change-Id: I6745cb2220bf9387c64ac8c271297cb89f821ab3
CRs-Fixed: 2560091
2019-11-07 02:42:58 -08:00
nshrivas
31146c039c Release 5.2.0.156B
Release 5.2.0.156B

Change-Id: I81b20dd3fecfe384ece3e8282b61fe3201c4b0a1
CRs-Fixed: 774533
2019-11-06 23:50:23 -08:00
nakul kachhwaha
e3e92ae6db qcacld-3.0: Fix data stall during TDLS Offchan Operation
In non concurrency scenario with TDLS Offchan link, FW is sending
two pauses namely PAUSE_TYPE_CHOP and PAUSE_TYPE_CHOP_TDLS_OFFCHAN
back to back when DUT dwells between TDLS Off channel and AP channel
respectively. HOST handles these events as vdev based event instead
of peer based event and remove all the tx queues from scheduler for
all the peer irrespective of the pause type. This will lead to data
stall in TDLS offchan scenarios, as at any point of time, host will
be receiving one of the two pauses and keep its peer queues out of
scheduler.

Changes are done to decouple the handling of pause/unpause events
for TDLS peers with Offchan enabled from vdev based pause/unpause.
TDLS peers will be paused/unpaused based on PAUSE_TYPE_CHOP_TDLS_OFFCHAN
pause type. Other pause/unpause events will be handled as usual.

Change-Id: Iccb46fd6d121d5df6d53633c9978ddc8e02f588f
CRs-Fixed: 2558612
2019-11-06 23:50:23 -08:00
nshrivas
995f68f46e Release 5.2.0.156A
Release 5.2.0.156A

Change-Id: I8340fcd98cbeb23b1a416948ff79e4b890bd6cfc
CRs-Fixed: 774533
2019-11-06 21:35:57 -08:00
Rachit Kankane
0c9c5d3fdc qcacld-3.0: Update Beacon template
On detecting RADAR, if SAP / GO is operating on DFS channel, host
driver updates Beacon / Probe response template with CSA / ECSA IE
to firmware.

Once the count in CSA IE is reached to 0, host should remove these
IEs from both Beacon / Probe response template and send it to FW.

But with INI gDisableDFSChSwitch=1, After detecting RADAR, host
driver updates the Beacon and Probe response template with (E)CSA
IEs but doesn't remove these after count reaches to 0.
Updated the code to remove these IEs when INI gDisableDFSChSwitch
is set.

Change-Id: I91ea557b23a9bbd01dbad32a21ea4a21d43dc8fe
CRs-Fixed: 2552192
2019-11-06 21:35:56 -08:00
nshrivas
9ccde917b9 Release 5.2.0.156
Release 5.2.0.156

Change-Id: Ie9dd8b403ac4f74be1c5473829d93070ccc9e6be
CRs-Fixed: 774533
2019-11-06 18:02:41 -08:00
Kiran Kumar Lokere
cfdb4a7249 qcacld-3.0: Correct the log level of debug message
Change the log level to debug for HE operation IE information and
check for 6G session to log 6G operation IE information.

Change-Id: I9bcad23022253438381a68fe37f68d525d265035
CRs-Fixed: 2552012
2019-11-06 18:02:41 -08:00
nshrivas
17a19013db Release 5.2.0.155Z
Release 5.2.0.155Z

Change-Id: I203c180aa28e634f06a6e1fefa960294846b8a0f
CRs-Fixed: 774533
2019-11-06 14:06:05 -08:00
bings
2e8c62b82d qcacld-3.0: Convert legacy chan ID usage to chan freq
Modify the following API's code and parameters to make
sure it is using frequency instead of channel ID:
   sme_get_connected_roaming_vdev_band

Change enum band_info band field in struct set_pcl_req
to uint32_t band_mask

Change-Id: I8ad6fc2676c2306043aa9415eefb2b89d8c49a4d
CRs-Fixed: 2555041
2019-11-06 14:06:04 -08:00
bings
a4e27271d9 qcacld-3.0: Disable dfs phyerr offload when no sap/go in DFS channel
As FW required, send WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID when there
is no beaconing session in DFS channel for FW which supports dfs offload.

Change-Id: Ib3c24758b81d6218d2504729d44cdbfb122933ee
CRs-Fixed: 2544846
2019-11-06 14:05:48 -08:00
nshrivas
3fd35196eb Release 5.2.0.155Y
Release 5.2.0.155Y

Change-Id: I1c8e4488d95bc2e6fb1d158b46f7fb8c2521a995
CRs-Fixed: 774533
2019-11-06 12:38:07 -08:00
Visweswara Tanuku
6aca92114d qcacld-3.0: Do not send baselining start/stop during motion detection
Motion detection baselining can be started during Motion detection
phase which results in false motion detection

Do not send baselining start/stop during Motion detection phase,
to prevent false motion detection

CRs-Fixed: 2556575

Change-Id: I20de48b3d09cf8adec3a3a2d9585ad3754f12a9e
2019-11-06 12:38:06 -08:00
nshrivas
d4a741fa33 Release 5.2.0.155X
Release 5.2.0.155X

Change-Id: I622188ac3a1013b93e4baf2b315a518154ce5ccc
CRs-Fixed: 774533
2019-11-06 06:30:54 -08:00
nshrivas
2814e8deeb Release 5.2.0.155W
Release 5.2.0.155W

Change-Id: Id9d8a2bc9a980714cb6a3c808f60eb7ed3347d1e
CRs-Fixed: 774533
2019-11-06 03:33:11 -08:00