提交图

9884 次代码提交

作者 SHA1 备注 提交日期
Ananya Gupta
a660173209 qcacmn: Pre allocate pdev during attach
Pre-allocate pdev context as size exceeds dynamic allocation
threshold (4KB).

Change-Id: Ida866275ed1ddea5a9b6aa1cf114ccd226ed0f22
CRs-Fixed: 2825110
2020-12-08 01:12:27 -08:00
Himanshu Batra
27378433c5 qcacmn: Add public API to print CM state history
Add public API to print CM state history

Change-Id: Iab079eeb1e4f4a2a256e8e0721db415e539523eb
2020-12-07 09:05:36 -08:00
Shiva Krishna Pittala
d78db319d7 qcacmn: Direct DMA changes for big endian Host
WLAN chip components are little-endian based. When such a chip is attached
to a big-endian Host platform, there will be a mismatch in the order of
bytes for the data that is transferred between the Host and target.

Direct DMA framework writes 64-bit values to its DMA ring entries.
These DMA ring entries are present in the shared memory between the Host
and the FW and the data transfer doesn't go through any copy engine.
So, to avoid invalid reads at the FW side on a big-endian platform, write
ring entries in little-endian format so that the FW reads them correctly.

Change-Id: I9c9189f914fdda335723c25fc05484487985447c
CRs-Fixed: 2828746
2020-12-07 07:06:43 -08:00
Yu Tian
abb64b561e qcacmn: Add ini config for force using 64 blockack
Some AP disables AMSDU in BA256 mode, this has draw back
with KPI in HE mode, so leave a config field to use 64 BA
forcibly to make high KPI with these types of AP

Change-Id: Ia69ffe118fd5bbda78cfb98126a483fcf305294e
CRs-Fixed: 2828304
2020-12-07 02:04:36 -08:00
Abhinav Kumar
7c55b952fa qcacmn: Extract roam message information
Extract btm response and initial roaming stats coming
from FW through WMI_ROAM_STATS_EVENTID event as
wmi_roam_msg_info_tlv_param.

Change-Id: I9a9b768d09a45ba70066cacb4aa420a90a39a76d
Crs-Fixed: 2826323
2020-12-06 23:49:57 -08:00
Vignesh U
336f699034 qcacmn: Store and populate the DFS channel state array
Add an enum to encode various DFS channel states.

The dfs channel states are represented using a per dfs array object rather
than maintaining a channel state field for each channel (since dfs channel
states are not required for 2G and 6G channels).

The size of the array is approximately 30 because
first_dfs_chan = 52
last_dfs_chan = 161(in case of ETSI EN302 502)
channel_spacing = difference between 2 consecutive 5G channels = 4

size_of_the_array = (last_dfs_chan - first_dfs_chan) / channel_spacing
                  = (161 - 52) / 4
                  = 27.25
                  ~= 30;

The dfs channel array is indexed by hashing the frequency. The conversion
(hash function) is as follows:

given_chan_number = (given_chan_frequency - 5000) / 5;
where 5 is: 5Mhz  = minimum IEEE chan bandwidth.

array_index = (given_chan_number - first_dfs_chan) / channel_spacing;

Add the following functionalities:
1) initialize the DFS channel state array.
2) update the channel state array.
3) read the channel state array.
4) convert the channel frequency to channel state array index.
5) convert the dfs channel event to dfs channel state.

Change-Id: I7921571fcc80b43a7ef7caf92c34b016fe396e45
CRs-Fixed: 2823529
2020-12-05 07:27:49 -08:00
Srinivas Girigowda
f7248d774e qcacmn: Fix possible OOB read in cnss_diag_cmd_handler
The nla_data coming from user space is a variable length data,
but the driver is checking nla_len() against a fixed length struct only.
It is possible that the nla_len() check against fixed length struct
may pass and if the nla_data does not have the payload and it may
result in possible out-of-bound read (slot->payload).

Hence the fix is to, check if nla_len() is atleast more than
the fixed length struct and also account for payload length.

Change-Id: I2e68d55c0411cff55908c1704031e3c070f3316e
CRs-Fixed: 2825763
2020-12-04 02:50:42 -08:00
Utkarsh Bhatnagar
4e87e6c554 qcacmn: QCA vendor attributes to configure TX and RX NSS
Define QCA vendor attributes to dynamically configure TX NSS and RX NSS
to be used with QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and
QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands.

Change-Id: I9b3b3d3c5be2abd01fa8669b10c2961c271ecdbb
CRs-Fixed: 2831257
2020-12-03 17:35:17 -08:00
Rakesh Pillai
2989d9b1fc qcacmn: Add CDP API to dump srng SW hp-tp info
Add CDP API to dump the SW head pointer and tail pointer
of a few important srngs. This can be used to debug or
get a direction when the device doesn't dump ram info.

dp_print_ring_stat_from_hal is not being used, since without
device force wake recipe in place, reading hardware hp/tp
value can lead to NOC errors.

Change-Id: Ib0381acb007f1b4431f6a02cd9762e461d6393e8
CRs-Fixed: 2826084
2020-12-03 17:35:13 -08:00
sheenam monga
0d42f3216a qcacmn: Read csa_beacon_template service
check csa_beacon_template service and set
WLAN_SOC_CEXT_CSA_OFFLOAD/25th bit of
soc_fw_ext_caps in psoc if service is
supported by fw.

Change-Id: I8dca74c805cc8696f261e0f791818bca579c80c8
CRs-Fixed: 2826451
2020-12-03 10:52:03 -08:00
Abdul Muqtadeer Ahmed
aa291dabe2 qcacmn: Vendor specific feature capability for dbs
Add feature capability indication for dbs for the
drivers to advertize support for this.

Change-Id: Ic6941e58a30d6aa6a867a12ddd7a8db5abbb1673
CRs-Fixed: 2821654
2020-12-03 05:36:18 -08:00
Vignesh U
1a80505918 qcacmn: Store and retrieve TPE IE in scan cache
Declare a TPE pointer to store the TPE IE in the scan cache ie list.
Write a function to obtain the TPE IE stored in the scan cache ie list.

Declare a minimum TPE IE length as 2 Bytes and use that to check the
sanity of the received TPE IE before storing it. Discard the TPE IE if the
length check fails.

Change-Id: If5b06604b03d07dd5fb26a62f90fb7202ce4eff0
CRs-Fixed: 2826300
2020-12-03 02:41:03 -08:00
Vignesh U
f443e288cc qcacmn: Get and set 6g client and ap parameters
Write disptacher and core functions to set and get the following
6g ap and client power type parameters in regulatory:

1) current 6G AP power type - LPI/SP/VLPI.
2) current 6G client mobility type - Default/Subordinate.
3) RNR Usable.
4) Unspecified AP usable.

Change-Id: I926642d1a3e7d9049772c5c4d2aad7cd472f8bd0
CRs-Fixed: 2825676
2020-12-03 02:40:59 -08:00
Vijay Krishnan
6be2aca5a4 qcacmn: Remove QCA_DFS_RCSA_SUPPORT from cmndev
The macro QCA_DFS_RCSA_SUPPORT is currently residing inside common
code. But this feature is not used by MCL, therefore in order to
reduce code approval process, this macro and associated code is moved
to WIN specific component-dev git repository.

CRs-Fixed: 2822626
Change-Id: I43a9e63ede5958f8641be1be45f7c5cd71820667
2020-12-02 20:49:33 -08:00
Vivek
3327a6a92b qcacmn: Add support for rate limiting QDF trace prints
The existing QDF implementation does the following
1. The QDF trace either prints to the console
2. The QDF trace message  is directed to the utils,
   which based on log level
	a. redirects to a user space daemon or
	b. redirects to console

There is excessive logging detection in the utils code
before redirecting the prints to  the console.
If the number of prints to console is more than
the configured threshold, we assert in development builds.

Moving the API for excessive logging detection from utils to
QDF trace.

The configuration for detection of excessive logging currently
is only for the number of prints per second.
Adding time configuration also to detection of excess logging
to the console.

CRs-Fixed: 2809752
Change-Id: Iecc408fc9b576fa900a6d7ee793639f1dde3110d
2020-12-02 10:45:34 -08:00
Nandha Kishore Easwaran
e04aeaeed8 qcacmn: Add cache invalidation for MIPS platforms
Add cache invalidation support for for MIPS platforms. The API
on mips platform takes start and size as input. Obtain size by
subtracting end and start.

Change-Id: Iaf2920b8fed2b2a2870682c6bf75c905cb8ca836
2020-12-02 06:33:58 -08:00
Manikanta Pubbisetty
9579bf675f qcacmn: reset monitor filters only in monitor mode
In mission mode, when PKTLOG is enabled, dp_mon_filter_update()
will reset the RXDMA2SW ring filters which will block the RX
completely leading to connection issues.

Reset monitor mode filter only when monitor VDEV is configured.

Change-Id: I0f55370af74a5f538ef926d8f8d61bffaa64a69e
CRs-Fixed: 2827739
2020-12-01 09:56:34 -08:00
Shashikala Prabhu
fd0132aa9f qcacmn: Add CSA event handler and extract APIs
Move CSA event handler and CSA extract APIs to common code

Change-Id: Iedfa3bbd8a2b6d9cbfdd9fecd57052b853ed5680
CRs-Fixed: 2826991
2020-12-01 06:50:28 -08:00
Himanshu Batra
f994a48ab9 qcacmn: Use bh spinlock for CM
Use bh spinlock for CM

Change-Id: I28a0de73f98e386d9db9e5d63a51e5aee2c12b0e
2020-12-01 04:44:27 -08:00
Aniruddha Paul
e9a6af6660 qcacmn: Drop invalid peer frames with RA as STA and TA != BSSID
In HKv1, if smart monitor mode is enabled on RE,
we are getting invalid peer frames with RA as STA
mac of RE and the TA not matching with any NAC list
or the the BSSID.Such frames need to dropped in order
to avoid HM_WDS false addition.

Change-Id: If641052c3f0ac5ce49afcc52062462d8b7eaa0e6
2020-12-01 02:50:50 -08:00
Ajit Vaishya
25622b4ed5 qcacmn: Vendor specific feature capability for Adaptive 11r
Add feature capability indication for Adaptive 11r for the
drivers to advertize support for this.

Change-Id: I28da5c3d7d4d841de980c841b1d4c39be12ed295
CRs-Fixed: 2817358
2020-11-30 12:49:27 -08:00
Chaithanya Garrepalli
3888d0824e qcacmn: WAR to avoid SG process with wrong continuation bit
If a continuation bit is set in msdu desc info and reported
length can fit in single buffer avoid SG processing

Change-Id: I6e8c3e1e657c372d5d915450dda20ba26bac495f
2020-11-30 05:25:07 -08:00
Wu Gao
2f09a8e245 qcacmn: Fix memory access out of bounds when sort 6g channel list
In arch 32 platform, the size of rnr_chan_info is 8 bytes, and it only
allocates 4 bytes for each of them. Which cause memory access out of
bounds.

Change-Id: I4f1798c5354c6a76e32bdfed13ade9667465b789
CRs-Fixed: 2827289
2020-11-30 01:24:06 -08:00
Padma Raghunathan
b82e526a72 qcacmn: Handle FP BARs without errors in wbm release ring
Only BAR frames with REO/RXDMA push reason as error are handled
in host. FP BAR frames without errors, are routed to host
via REO/RXDMA with push reason as route.

Instead of leaking the buffer, handle the routed BAR frames
gracefully. Free the buffer and log stats to detect such
cases.

Change-Id: I6e09e8b948d9b2d9d3de3b6558e54f0c70901c62
CRs-Fixed: 2814303
2020-11-29 23:28:16 -08:00
Arun Kumar Khandavalli
66ec120912 qcacmn: Add bus failure reason code to vendor indication
Add bus failure hang reason code in enum qca_wlan_vendor_hang_reason.

Change-Id: I0ea7fff779459a1cccd44c6336a0c49d73f8b37d
CRs-Fixed: 2825302
2020-11-29 23:28:12 -08:00
Tallapragada Kalyan
e6b821c40b qcacmn: get length of nbuf after pushing the meta data in mesh mode
get length of nbuf and set it in tx_desc after pushing the
meta header in mesh mode

Change-Id: Ide563a339eae392c7b3f512526d02f7ec2d6c1df
2020-11-27 08:51:34 -08:00
Mainak Sen
e66ef5081e qcacmn: WMI support for Tx Mode Select
When MSCS feature is enabled, Host needs to send WMI command to
FW to enable tx mode selection

Change-Id: I84372f2e83f2faa6c90436d927410d1af636246e
2020-11-27 06:48:46 -08:00
Hariharan Basuthkar
ad5cb17aa7 qcacmn: Expand regdomain to include 6Ghz superdomain
The regulatory structure which contains country and regulatory domain,
needs to be expanded to include 6Ghz superdomain.
Make changes in the regulatory component to send the 6G super domain
set by the user, to the target.

Change-Id: I84b96cd74012e33d464d98675158c9cd5eabff4e
CRs-Fixed: 2802131
2020-11-27 04:54:31 -08:00
Aditya Kodukula
e6cf256348 qcacmn: Add a check to ensure validity of ini file
The function qdf_ini_parse returns QDF_STATUS as SUCCESS even if no
fields are read from the ini file. Because of this even if the
ini file is corrupted and no values are read from it the function
still returns SUCCESS.

So, to avoid that and ensure that the ini file is not corrupted,
add a variable ini_read_count to count the number of fields read
from the ini file and return SUCCESS only if its value is not zero.

Change-Id: I5ec9a9cdc9780b6c9487f6ac64b411b81328d75c
CRs-Fixed: 2804937
2020-11-26 22:45:45 -08:00
Varsha Mishra
d4463d47d9 qcacmn: Use vdev based ast_idx and hash for all tx frames
FW uses CCE rule to exception all mcast/bcast frames. Ast_idx
override does not help in sending them to TQM directly.

Change-Id: Iad6c1e8073f5c5d0513adb7097d5024177b7b7f5
2020-11-26 14:44:39 -08:00
Liangwei Dong
55af82b26c qcacmn: replace macro WLAN_OBJMGR_TRACE by WLAN_OBJMGR_REF_ID_TRACE
WLAN_OBJMGR_TRACE is not needed. Ref id trace func is under
control of WLAN_OBJMGR_REF_ID_TRACE. Replace it by
WLAN_OBJMGR_REF_ID_TRACE.

Change-Id: I8877dad0a4f7c13258b2c9bf63dcafb46e5b8b94
CRs-Fixed: 2826259
2020-11-26 08:10:16 -08:00
sheenam monga
3dd0c45165 qcacmn: Add support for CSA offload
Add support for CSA offload to fw in case
of SAP/P2P GO.

Change-Id: I4ffa7c377e8fe50120f5cd20080419bd1b1e4248
CRs-Fixed: 2819499
2020-11-26 04:15:39 -08:00
Sumedh Baikady
7a8d9d5da0 qcacmn: Change log level for packing radiotap in monitor mode
In monitor mode and other monitor mode features such as
smart monitor, in certain cases, Ex LM profiles there is not
enough headroom to fill radiotap. In this case frame is dropped.
The prints if error type floods and causes backpressure.
Hence change the print to debug only.

Change-Id: I7c0f786848237aaebba6f3282b9d82f0ef5d3f7b
2020-11-26 02:15:51 -08:00
Hariharan Basuthkar
a6e500d22e qcacmn: Add 5.9GHz channels to global_op_class table
As per table E-4 in Annex E, in the 11ax Draft 8.0, add the 5.9GHz
channels to the global_op_class table in the regulatory component.

Change-Id: I69225e5cae813d470ebaf2768e58672276f6bd2f
CRs-Fixed: 2823487
2020-11-26 00:16:55 -08:00
Himanshu Batra
71fd0da4d7 qcacmn: Resolve compilation issue for CM
Resolve compilation issue for CM

Change-Id: Id9ab5cf96d3865b13d5ea020e6e92016c3493f22
2020-11-26 00:16:50 -08:00
Himanshu Batra
1557043c49 qcacmn: Make connect/disconnect ser cmd as blocking
Make connect/disconnect ser cmd as blocking across all platforms

Change-Id: I8cc6988fcb53f257fc4aab00c1b3abaca07174bf
2020-11-26 00:16:46 -08:00
nobelj
da9b69116b qcacmn: remove ppdu_info from list before free
during pdev deinit, while freeing ppdu_info it need to be
removed from the list before freeing.

Change-Id: I2829daf3ed58c7a143fba09d68eb6f0278accdf0
2020-11-25 22:25:14 -08:00
Bapiraju Alla
e8dfd0b73a qcacmn: Add INI parameter to configure NAN in 6GHz
Currently, there is no INI parameter to control NAN feature in 6GHz
frequency band. Because of this, there is no provision to disable the
NAN in 6GHz when there is no requirement.

To address this, add INI parameter to configure NAN feature in 6GHz.

Change-Id: Ibc653d6241d176f7fb75f18d2886175231ad71cc
CRs-Fixed: 2817925
2020-11-25 14:45:58 -08:00
Santosh Anbu
abbeda0b03 qcacmn: Support stop-start cmd enqueue mlme ops
Add change to support mlme ops to enable enqueuing stop-start
cmd to serialization queue when CSA is triggered for a DFS channel.

Change-Id: I9f2dca3bc4ccfe40bd40c7e04b3ce035df56d19d
CRs-Fixed: 2825760
2020-11-25 10:50:40 -08:00
Gerrit - the friendly Code Review server
34e43d37b1 Merge changes into wlan-cmn.driver.lnx.2.0 2020-11-25 07:51:39 -08:00
gaolez
1d0d4cbe6b qcacmn: Optimize congestion score calculation
In current code logic, in case of channel utilization value less
than 3, the congestion value treated as “not present” and give
it a medium score. This will cause a very clean channel get a medium
score.

To fix the issue, need calculated congestion score from 1-100 and
not 0-100.

Change-Id: I6abb257e8298e4db3104fdc20351bbadaa7c2ec5
CRs-Fixed: 2812978
2020-11-25 04:51:35 -08:00
Himanshu Batra
569cc296ed qcacmn: Add basic infra for connection manager UTF
Add basic infra for connection manager UTF

Change-Id: Id111a4bcda970e927b73441be55de4d33a694796
2020-11-25 00:52:13 -08:00
Yu Wang
ca591b0db7 qcacmn: move component 'coex' to qcacld project
'coex' component is MCC specific, move to qcacld project.

CRs-Fixed: 2721763
Change-Id: I271301c28748f6b14afb59e105cc9f418e43a9c4
2020-11-24 22:51:16 -08:00
Jyoti Kumari
bd99f03445 qcacmn: Drop remaining IEs if any corrupted IEs are present
Scan entry fails if any coruppted IEs are present

Introduced new ini parameters to enable scan based on ie
corruption. If ini parameter is enable then scan module skips
all IEs following coruppted IEs and adds scan entry without
completely dropping the frame. Otherwise if ini parameter is
disable then scan entry fails on corrupted ie.

Change-Id: If17b68448dd3e6ac3e98ed854ed67d7f16d9dff7
CRs-Fixed: 2806932
2020-11-24 10:55:46 -08:00
Rakesh Pillai
e9899b2a2f qcacmn: Add support to send packet marked by upper layer to FW
Upper layer (OS_IF) can mark certain packets to be sent
to FW. Mark such packets as exception, so that it is sent
to the FW.

Change-Id: I44af2b06793712be7236f831b6b2604123d72bb1
CRs-Fixed: 2813172
2020-11-24 10:55:42 -08:00
sandhu
4e87b183a7 qcacmn: Reduce memory used by rx error ring history
reduce the memory used by rx error ring history.

Change-Id: I5f4113af799bb57c5545893130acd4cf8e4db024
CRs-Fixed: 2807711
2020-11-24 08:49:07 -08:00
Yeshwanth Sriram Guntuka
acbca27d9d qcacmn: Reset RXDMA_BUF ring filters when mon mode is disabled
Rxdma err destination could still grow even after monitor
status ring filters are reset as part of monitor mode
disablement which will result in RXDMA2SW ring back-pressure.

Fix is to reset RXDMA_BUF ring filters when monitor mode is
disabled.

Change-Id: Ifd56f6bdbf6a5e4c5d39fc5c71dd85925e3d5f33
CRs-Fixed: 2818011
2020-11-24 08:49:04 -08:00
Bapiraju Alla
197fc297c3 qcacmn: Add log while dropping FW diag events
FW diag events will be dropped when number FW diag events pending for
processing is reached to configured RX_DIAG_WQ_MAX_SIZE value. Add a
log when these diag events a getting dropped for debugging purpose.

Change-Id: Ifc303991bdf274fa7426794eaf71517722e9f386
CRs-Fixed: 2824458
2020-11-24 08:48:59 -08:00
Ananya Gupta
a550225eb1 qcacmn: Rate limit logs when wake request fails
Excessive logging is detected when force wake request
command fails.
Rate limit the logs in hif_force_wake_request and
hal_write32_mb.

Change-Id: I9b1166074dfdb2d58d811571c802a75a6dbc03c5
CRs-Fixed: 2823961
2020-11-23 21:57:39 -08:00
Ananya Gupta
28998adf14 qcacmn: Changing log level in dp_tx_msdu_multiple
Excessive logging was detected in dp_tx_msdu_multiple.
To fix this, Reduce log level when tx_hw_enqueue fails.

Change-Id: I66d58d12aff037896c7623c6755a443092673a88
CRs-Fixed: 2823453
2020-11-23 15:22:33 -08:00