Commit Graph

9278 Commits

Author SHA1 Message Date
Shashikala Prabhu
cb2acc0ea0 qcacmn: Correct the return types of functions in HIF component
A few functions in HIF component returns QDF status value with return
type as non QDF STATUS and vice versa. For such functions, update the
correct return type.

Change-Id: Ifc1068d60e62f7405a15e2b4f0738d91243bd6de
CRs-Fixed: 2734818
2020-07-24 09:21:14 -07:00
Shashikala Prabhu
a143607a26 qcacmn: Correct the return types of CE functions
A few functions in CE files returns QDF status value with return
type as non QDF STATUS. For such functions, update the return type as
QDF_STATUS.

Change-Id: I401c0a1e1c21ac0865cf4da018eb2d2fb6d86900
CRs-Fixed: 2734818
2020-07-24 09:21:11 -07:00
Shashikala Prabhu
b87eec2b53 qcacmn: Correct the return types of HIF functions
A few functions in HIF component returns QDF status value with return
type as  non QDF STATUS. For such functions, update the return type as
QDF_STATUS.

Change-Id: I69644a2206266ffe2c2d105056f9fec452f5d972
CRs-Fixed: 2734818
2020-07-24 09:21:08 -07:00
Jeevan Kukkalli
30f2d61e6d qcacmn: Handle invalid HW ast index case inside dp_peer_map_ast()
Handle invalid HW ast index case inside function dp_peer_map_ast().
This change aids upcoming feature where status of HMWDS ast add is
reported to upper layer. This change eliminates extra peer ast list
traversal required for the new feature.

Change-Id: Ic6f45fedb53204c52719686aee9a90ae12695d09
CRs-Fixed: 2728611
2020-07-24 07:10:24 -07:00
Chaoli Zhou
81d4965369 qcacmn: Reduce the ce entries while disable pktlog
If disable pktlog for hasting/genoa, we need to
mark the ce5/ce7 not used separately to save
some memory. But currently, if set target ce
entries to 0, it has wlan fw crash issue,
so reduce it from 32 to 2 first. Once wlan
fw fix the crash issue, and then change to 0

Change-Id: I7ab11f202fe353737a4104e71fc79ee749b80fc8
2020-07-24 07:10:21 -07:00
Edayilliam Jayadev
6c76bce586 qcacmn: Modify vendor command handler to accept vdev
The Spectral module uses the first vdev of a pdev for scanning.
For MCL platforms all the vdevs are associated with a single pdev
and this may cause a mismatch between the vdev intended by user and
the vdev used by driver. To avoid this MCL platforms pass a reference
to vdev on which Spectral scan is triggered. WIN platforms
can continue to use the old approach of using the first vdev of a
pdev by passing NULL for vdev to vendor command handlers.

CRS-Fixed: 2725777
Change-Id: I1a7278bdcbcc2b706aa292b33c17546190dac082
2020-07-24 02:01:11 -07:00
Wu Gao
b43c68dedf qcacmn: Gets vdev by id in spectral component
It starts spectral scan without vdev object, and uses the first vdev
as current vdev. which cause vdev mismatch in some platforms. So pass
vdev object or id when finding current vdev.

Change-Id: Iab55afbe2c98906021a008918f186d3d2dce5871
CRS-Fixed: 2716460
2020-07-24 02:01:08 -07:00
Vijay Krishnan
53f1d00e8f qcacmn: Remove references to CHAN_NUM_API
CONFIG_CHAN_NUM_API macro will be disabled. Remove all the references to
any function defined/declared under the macro. The function
reg_get_channel_list_with_power was placed under CHAN_NUM_API by mistake.
This API does not have any CHAN_FREQ_API counterpart. Therefore, move
this function out of CHAN_NUM_API macro.

The function dfs_send_radar_ind_for_freq is redundant as its counterpart
dfs_send_radar_ind has the same arguments and same functionality,
removing the function dfs_send_radar_ind_for_freq. The function
dfs_send_radar_ind is moved out of CHAN_NUM_API macro.

The function wlan_reg_chan_to_freq, wlan_reg_legacy_chan_to_freq is
moved out of CONFIG_CHAN_NUM_API macro. Since it is applicable for legacy
bands.

CRs-Fixed: 2711600
Change-Id: Ib29be638c17ce51f928c865e362ac5b2b8954b42
2020-07-23 21:37:06 -07:00
Kai Chen
ee26d03b10 qcacmn: resolve issue on updating protocol tag
Skip protocol tag updating from msdu end TLV protocol tag meta data
when there is RXDMA REO entrance push error on monitor destination ring.
The attention and msdu end TLV is not updated reliably when there
is RXDMA REO entrance push error such as FCS error on monitor
destination ring.

Change-Id: I4098c01251b4f4cb2e796d450c156ba8f2b9464d
2020-07-23 19:28:48 -07:00
nobelj
ab4338f749 qcacmn: Add support to get device name and tx capture debugfs init
Add support to get device name and invoke debugfs init
on post attach so that device name is updated at that point.

Change-Id: I0e0a06cae4bef4d6e43c0295f5db99220b185df2
2020-07-23 19:28:45 -07:00
Gururaj Pandurangi
0bd8b1bf75 qcacmn: Update reg dmn to support new 5.9 ghz chan
Update reg domain rules to support three new
channels in 5.9 GHz for US.
New channels are 169, 173 and 177 with freq
5845, 5865 and 5885 MHz respectively.
These new channels will be controlled by an
ini fcc_5dot9_ghz_chan_in_master_mode and
a service bit WMI_SERVICE_5_DOT_9GHZ_SUPPORT.
If the service bit is not set we disable the
new channels, and if service bit is set but not
the ini, we make the channels passive. If both
are set, they will be enabled.

Change-Id: I575b02ad387cbda00b015f7075d80c907463bdef
CRs-Fixed: 2683702
2020-07-23 17:24:09 -07:00
Gururaj Pandurangi
b1f6686944 qcacmn: Enable three new 5.9 ghz channels for US
Add new channel bonding pairs as well as frequency
pairs for 40, 80 and 160 MHz with the support of
three new 5.9 GHz channels 169, 173 and 177.
Add new API reg_modify_chan_list_for_5dot9_ghz_channels
to enable/disable these new channels based on
INI value and service bit.

Change-Id: I8598e705ba4047e96e7167661ba70d4236cde251
CRs-Fixed: 2696211
2020-07-23 17:24:06 -07:00
Jinwei Chen
f3bffbfdd2 qcacmn: handle IPA buffer smmu map/unmap correctly
Handle ipa buffer smmu map/unmap with below changes,
(1) Do IPA smmu unmap for RX buffer received from REO
exception/WBM RX release/REO DST/RXDMA DST ring.
(2) Align IPA smmu map length to qdf_nbuf_map_nytes_single()
with fixed length.

Change-Id: I1ed46b31ed31f5b7e4e2484d519bc85d35ce1e69
CRs-Fixed: 2728644
2020-07-23 13:17:09 -07:00
Rakesh Pillai
eec104893e qcacmn: Add stats for stale cookie read from rx ring
Add a count for the number of times we read a stale
cookie value from the REO2SW ring.

Change-Id: I4b20fa93f5261b4ccb9479b7b3469a294703a184
CRs-Fixed: 2736028
2020-07-23 13:17:06 -07:00
Shivani Soni
bf1bffa51d qcacmn: QDF macro for skb shared info size
Introducing QDF macro for getting size of skb shared info considering
alignment

Change-Id: Idb8e714c8de00b640dc7e400a757c71e80ae48e6
CRs-Fixed: 2737178
2020-07-23 07:00:44 -07:00
Mainak Sen
33d438516f qcacmn: Update hal api for IPQ5018 SG support
HAL spi addition for SG support on IPQ5018

Change-Id: I76179f41cbbf80504ee2e88156783a86bd07e8fe
2020-07-23 04:46:13 -07:00
Manoj Ekbote
181194b1ea qcacmn: Check period while getting CFR capture status
When a one-shot capture is triggered with CFR, the state is not
reset to DISABLED after capture has completed. This affects HW mode
switch behavior because if CFR capture is ongoing (ENABLED), mode
switch is not allowed. This change checks for period to return DISABLED
or ENABLED. Period is 0 in case of one-shot capture.

Change-Id: Iae8727959a1becd3b5f4da166e868c1592910b84
CRs-Fixed: 2735166
2020-07-23 01:57:46 -07:00
gaurank kathpalia
441725b6ef qcacmn: Restructure connection manager structures
Move few scoring params to uint8 from uint32 to save memory.
Also move the req and resp related IE to req and resp structures
instead of global structure.

Change-Id: I67f8dd3f381642083fc5f288ebd9055d2919faad
CRs-Fixed: 2737146
2020-07-22 21:35:20 -07:00
Abhishek Singh
0d404e731b qcacmn: Remove older scan filter params
Remove older unused scan filter params and code related to it.

Change-Id: I13293e047397efb2b857001391e1fc925e034532
CRs-Fixed: 2737908
2020-07-22 21:35:16 -07:00
Jeevan Kukkalli
659ecbabda qcacmn: Return appropriate QDF error codes
Modify functions dp_peer_add_ast(),dp_peer_map_ast() and
dp_rx_peer_map_handler() to return appropriate QDF error codes.

Change-Id: I582a5e68219fe25df5f46ae6044afa3bed880d2c
CRs-Fixed: 2728559
2020-07-22 11:55:41 -07:00
Yeshwanth Sriram Guntuka
01c7242aca qcacmn: Update tx completion cb prototype to pass tx status
Update tx completion callback prototype to pass tx
status also as argument.

Change-Id: I33413a0943ec8050d6c8ae6b2ef3592d593cb063
CRs-Fixed: 2682028
2020-07-22 11:55:38 -07:00
Muthuchamy Kumar
394948ac33 qcacmn: Added new API to get the NSS from the scan entry
NSS from scan entry is required to calculate the link rate.

Change-Id: If0e4bf2499239abe14dc21154f20687a8d4dd87c
2020-07-22 07:45:26 -07:00
Paul Zhang
77c4c9ff7e qcacmn: parse the 20MHz PSD in TBTT info of RNR
In the TBTT info of RNR, one byte is added for power
spectral density. Add logic to get the PSD limit.

Change-Id: I7ce44a762c47d0d0526157fcb41a80ad3ef3c08e
CRs-Fixed: 2731433
2020-07-22 07:45:22 -07:00
Shwetha G K
a87d0fe709 qcacmn: freeze_tlv changes due to 37 UL-MU users in Pine
Add freeze_tlv changes due to 37 UL-MU users in Pine

Change-Id: Ibe794b83e7d8722b5ea8709fa23d33fb823bd992
2020-07-22 07:45:19 -07:00
Yeshwanth Sriram Guntuka
8007762d6a qcacmn: Set invalid bit in cookie for exception ring descriptor
On returning the msdu link descriptor to HW via WBM
release ring, the rx exception ring contents are not
zeroed. This could result in host reading stale ring
descriptor content in the scenario when HP is updated
even before the latest values are reflected in the ring
descriptor.

Fix is to set invalid bit in cookie for exception ring
descriptor and add cookie sanity check.

Change-Id: I01a294c92b260ebe8e584ef20e9550b1febec913
CRs-Fixed: 2730759
2020-07-22 03:21:44 -07:00
Rathees kumar Chinannan
199049f281 qcacmn: Add new param on peer assoc command
Add new param on peer assoc command to pass sta
type for bsscolor.

Change-Id: I83f78c07f9079b23629c2f7f42d67ae9630c2d6c
CRs-fixed: 2727001
2020-07-22 03:21:40 -07:00
Hariharan Basuthkar
ed5856be03 qcacmn: Modify hal_rx_radiotap_num_to_freq for 6G frequencies
When an AP operates on a 6G channel. The channel frequency in the
radiotap header, in the beacon frame, shows an incorrect 6G frequency.

This is because, the function hal_rx_radiotap_num_to_freq is not updated
to handle the 6G channelization spec update ( IEEE 802.11 11AX Draft 6.1).

To fix this issue, update the function hal_rx_radiotap_num_to_freq to
handle the 6G channelization spec update (increase the 6G frequencies by
an offset of 10MHz).

Change-Id: I342dcb46b2627b3a2c3f12524077e63d811a5feb
CRs-Fixed: 2733367
2020-07-22 03:21:36 -07:00
Wu Gao
5a754eb0c4 qcacmn: Enable spectral scan gen3 for QCA6490
Enble host sopport of spectral scan gen3 for QCA6490 target.

Change-Id: Ic99520bb6db94a0f41c2cd4c94b77e9795617f4c
CRs-Fixed: 2716598
2020-07-20 21:54:21 -07:00
Shwetha G K
5ebf659ba8 qcacmn: Enhanced CFR code cleanup
Enhanced CFR code cleanup

Change-Id: Ie27a0523c8216fc12f24ba6c707ce45cc61fb5c8
2020-07-20 19:26:40 -07:00
Jinwei Chen
50e10cff51 qcacmn: Remove hash key related member in hal_rx_fst
For MCC, hash key related member in struct hal_rx_fst is not used,
it requires big chunk memory > 40K bytes that sometimes may fail to
allocate from system, wlan start up failed.
Remove hash key related member in hal_rx_fst by macro
WLAN_SUPPORT_RX_FISA for MCC.

Change-Id: I4214e18155c3ebc3dcc800c8c74f7eed16d580b4
CRs-Fixed: 2732990
2020-07-20 17:15:45 -07:00
Hariharan Basuthkar
ae92ea605f qcacmn: Fix KW issue in the regulatory component
In  I3c82e2eb98cdaf0ff8754bd990529a1833276304, KW error is reported in
the function, reg_compute_chan_to_freq.

This is because min_chan_range and max_chan_range can be assigned values,
that can cause array out of bounds issue.

To fix the issue, add explicit range checks against min_chan_range and
max_chang_range before iterating through master_chan_list to
avoid out of bound access.

Change-Id: Id5cd032fb899475720080b29012a6de1b5d4a916
CRs-Fixed: 2727082
2020-07-20 04:47:04 -07:00
Jinwei Chen
87d4f73245 qcacmn: Handle raw frames and invalid flow_idx stats
Make sure to drop the raw Rx frames as both driver and stack
are not expected to handle them.
Add counter for invalid fisa flow_idx packet received.

Change-Id: I5107c554b8ce6a9a7973f2aeca44bb0f360dc2df
CRs-Fixed: 2733981
2020-07-20 04:47:00 -07:00
Srinivas Dasari
b6130d4eb6 qcacmn: Process NAN events even when nan_disable_support is present
Currently, host driver processes NAN events only if
wmi_service_nan_dbs_support is advertised by the firmware. But NAN
concurrency is handled in host in non-DBS platforms also when
wmi_service_nan_disable_support is advertised by the firmware.
So, process the events if any of these two are capabilities
are present.

Change-Id: Ib571ef69ea177ddd758f800448939122126339b8
CRs-Fixed: 2735465
2020-07-20 04:46:55 -07:00
Rakesh Pillai
28f1bf3f4e qcacmn: Invalidate ring desc cookie after processing
Currently all the rx ring descriptor contents are left
intact even after these entries are processed. This can,
at times, lead to stale entries being processed, if the
head pointer of any ring is updated before the updated
contents of the ring descriptor gets reflected in the memory.

This can lead to scenarios where the host driver reads a
stale value of sw_cookie, and free/unmap a currently in-use
buffer, thereby leading to the hardware accessing unmapped
memory region.

The sw_cookie is the integral part of al the rx ring
processing. Hence we always mark the sw_cookie as invalid
after dequeuing an entry from the REO2SW ring. Every time
we check for the validity of the sw_cookie before we try to
process an entry from REO2SW ring. if the invalid bit in the
sw_cookie is set, we just skip this entry and move on to the
next entry in the ring.

Change-Id: I0e78fa662b8ba33e64687a4dee4d1a5875ddb4bf
CRs-Fixed: 2730718
2020-07-18 00:00:04 -07:00
Aniruddha Paul
1b7f50b096 qcacmn: Update the Tx/Rx Delay histograms
Update the Host Tx/Rx per packet delay histogram

Change-Id: I40c3c05b2eb90427bd83783f13f2a7a3df41d232
2020-07-17 21:25:58 -07:00
Balamurugan Mahalingam
8aec8db9ac qcacmn: Avoid configuring mac1 WMI buffers for QCN9000 and IPQ5018
And avoid configuring PKTLOG buffers if REMOVE_PKT_LOG
is defined

Change-Id: I40276f1f1905137cef053f9e552effde05b0240d
CRs-Fixed: 2733547
2020-07-17 21:25:55 -07:00
Abhinav Kumar
93ea2cf59b qcacmn: Process Disconnect request from FW
FW sends a disconnect request to HOST while roaming failure
through event WMI_VDEV_DISCONNECT_EVENTID per vdev id.
Process WMI_VDEV_DISCONNECT_EVENTID and issue disconnection.

Change-Id: I0d3d2ddf0cab65eecbfc7676e9b21f2cc19971e2
CRs-Fixed: 2731954
2020-07-17 21:25:51 -07:00
Will Huang
fa2a661a48 qcacmn: Move 11d country vote to scan complete
Currently we invoke scm_11d_handle_country_info() on every
beacon/probe-rsp receiving, it is not fair if not checking duplicated
beacon/probe-rsp, like if station connected it will dwell more time on
home channel and receive more duplicated beacon/probe-rsp, and caused
elect unexpected country.

Because scan entry will be updated without duplication, so after scan
complete we do 11d country vote by iterating whole scan entry db.

Change-Id: If7669c5529dd51e193e4a58d0090c0b2a1f25425
CRs-Fixed: 2706837
2020-07-17 21:25:48 -07:00
Shiva Krishna Pittala
b6a6d5e2c4 qcacmn: Add Host abstraction for WMI pdev param SR_TRIGGER_MARGIN
Pdev parameter WMI_PDEV_PARAM_SR_TRIGGER_MARGIN is added to configure
the safety margin which will be used in calculating the acceptable
interference level for PSR based Spatial Reuse operation.
Add the host abstraction for the same parameter.

CRs-Fixed: 2729664
Change-Id: Iae542d4f7de23520ee00719e721d81e32737a191
2020-07-17 17:23:27 -07:00
Surabhi Vishnoi
bb9b9ec907 qcacmn: Compilation fixes when WLAN_CFR_ENABLE config is enabled
For adrastea targets, enhanced CFR is not supported. When only
CONFIG_WLAN_CFR_ENABLE is set, some compilation errors are
observed as CONFIG_WLAN_ENH_CFR_ENABLE is not set true.

Fix these compilation errors when only CONFIG_WLAN_CFR_ENABLE
is set for targets which do not support enhanced CFR.

Change-Id: I96a769d8f10144033e48e123bb68d48a54cdf8ab
CRs-Fixed: 2706904
2020-07-17 17:23:23 -07:00
Amir
990bafdd4d qcacmn: Set 'en' bit to true in full monitor mode register
As per MAC team's suggestion, While disbaling full monitor mode,
Set 'en' bit to true in full monitor mode register.

CRs-Fixed: 2722950
Change-Id: Idc891efde5f1fa625d59b7a193deeb38dca33e23
2020-07-17 01:51:39 -07:00
Shashikala Prabhu
bdecef61b5 qcacmn: Add wrapper functions to get the correct pdev_id
Add wrapper functions to get the host pdev id from target pdev id and
vice versa.

Change-Id: Ib10f6f5625b4a9e1f44a13e9185de75f6df88b3c
CRs-Fixed: 2711423
2020-07-17 01:51:34 -07:00
Shashikala Prabhu
065e48fb63 qcacmn: Add wrapper function to get host pdev_id from tgt_pdev_id
Add wrapper function to get host pdev id from target pdev id.

Change-Id: I4628955569d741765efc515949909d9ea358e54a
CRs-Fixed: 2711423
2020-07-17 01:51:30 -07:00
Shashikala Prabhu
6d11d6f27a qcacmn: Add support to get pdev_id and psoc from dev_name
LOWI application provides the interface name as part of lowi message to
host driver. Add support in the driver code to get the corresponding
pdev_id and pdev from interface name using  dev_get_by_name().

Change-Id: I267b95c843a9bb1dd0c58ff45767f31999500b1c
CRs-Fixed: 2711423
2020-07-17 01:51:26 -07:00
Alok Kumar
8054d1a47d qcacmn: Add mapping table for channel band to lmac ring id
In monitor mode, the packets for 5GHz go to lmac ring 0 and for
2.4GHz packets go to lmac ring 1. But this is valid for DBS solution.
For single MAC solution, both 2G and 5G packets go to lmac ring 0.
 
Add mapping between channel band and lmac id ring and populate
this mapping table based on target type i.e DBS or Single MAC.

Change-Id: Iabc7c2088caca6fe4adef1da6d45945fc9a2716c
CRs-Fixed: 2728664
2020-07-17 01:51:21 -07:00
Prabhat Tamrakar
0ba944c541 qcacmn: Initialized QDF_NBUF_TRACK structure member
Uninitialize QDF_NBUF_TRACK structure members printing junk
data, it may lead to slab-out-of-bounds

Initialize QDF_NBUF_TRACK structure members with default value
in API qdf_net_buf_debug_add_node

CRs-Fixed: 2720988

Change-Id: I377a82a5e91b752516cd42089a66549d84d1c2dd
2020-07-17 01:51:16 -07:00
Abhishek Singh
09403ed7d0 qcacmn: Move Blacklist filter while scoring the BSS
While BSS are scored apply blacklist logic to remove
blacklist AP or move the avoid AP at the end.

Change-Id: I3071b63732dba6763e2f48d0613b36e86bd780d9
CRs-Fixed: 2725143
2020-07-16 23:46:21 -07:00
Abhinav Kumar
55d706efcd qcacmn: Add service bit for CONFIGURE_ROAM_TRIGGER_PARAM_SUPPORT
Add new service bit for
WMI_SERVICE_CONFIGURE_ROAM_TRIGGER_PARAM_SUPPORT.

Change-Id: I3f2683c5284cdc615270fd653e6173649c543c04
CRs-Fixed: 2733024
2020-07-16 20:05:37 -07:00
Abhinav Kumar
f037c70790 qcacmn: Add new attr for QCA_NL80211_VENDOR_SUBCMD_ROAM
Userspace can configure different roam control params as
defined in qca_vendor_attr_roam_control through the roam subcmd
QCA_NL80211_VENDOR_SUBCMD_ROAM and the below attributes:
QCA_ATTR_ROAM_CONTROL_SCAN_FREQ_SCHEME
QCA_ATTR_ROAM_CONTROL_CONNECTED_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_CANDIDATE_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_USER_REASON

Introduce above new attributes for roam subcommand.

Change-Id: I680ac7973cbe282673cf8cc065a7b643d4503d5e
CRs-Fixed: 2729127
2020-07-16 20:05:34 -07:00
hqu
ee897412af qcacmn: Move rso related process to connection manager [PART 1]
Based on new macro ROAM_OFFLOAD_V1, define
send_roam_scan_offload_rssi_thresh_cmd to different
function pointer type.

Change-Id: I965b8c0a2a2660b9560d48a92ad693a7efb7aaff
CRs-Fixed: 2730850
2020-07-16 20:05:31 -07:00