Commit gráf

16092 Commit-ok

Szerző SHA1 Üzenet Dátum
Jianmin Zhu
326f1015bc qcacmn: Add mpdu tx retries stats
Customer reported their HLOS LTE-WLAN transition algo sometimes go wrong
for wrong low layer stats, Txretry delta is bigger than Txtotal delta.
Txretry unit is msdu while Txtotal unit is mpdu.

Add vdev/peer stats for mpdu number of successfully transmitted after
more than one retransmission attempt, to align mpdu tx_packets, tx_failed.

CRs-Fixed: 3099490
Change-Id: Id4b9d8fd81af4bf0c141dad481bfd2b3f6c1db2a
2022-01-04 02:53:18 -08:00
Ashish
a48bfbce7c qcacmn: Remove get disconnect stats command from serialization
Currently in SAP mode, when host driver receives disconnect for
station, first it gets disconnect stats with serialization command
and then it sends delete peer command to fw. There is an issue with
this approach, if there are maximum number of clients are connected
to a SAP and all of these clients gets disconnected at the same
time, in that case there will be a disconnect stats command and
peer delete command in serialization, because of which serialization
queue gets full.
To address this issue, remove disconnect stats command from
serialization and send this command just before sending peer
delete command once peer delete command gets serialized.

Change-Id: Iab64e5dee8b0e2bb19b428a3c563a24b486250bc
CRs-Fixed: 3101553
2022-01-03 22:50:20 -08:00
Bapiraju Alla
3c40f95843 qcacmn: Add API to update MLD MAC address
Currently there is no provision to update MLD mac address in MLO manager.
MLD MAC address updation is required when MAC address randomization is
enabled.

To enable MLD address updation, add MLO manager API to update MLD address.

Change-Id: Ia2ccb1c32a3533748bda512e991e3d48d14c39f0
CRs-Fixed: 3103074
2022-01-03 15:02:52 -08:00
Shashikala Prabhu
3090d55051 qcacmn: Compute the remaining max channel switch time
As per the spec,
"A STA affiliated with a non-AP MLD, that operates on Link2, transmits a
(Re)Association Request frame to AP2 requesting Link1 as one of the links
for multi-link setup. Since the (Re)Association Response frame is
transmitted by AP2 after the last Beacon frame on the initial operating
class/channel on Link1 and before the first beacon on the initial
operating class/channel is transmitted, AP2 includes the Max Channel
Switch Time element in the per-STA profile corresponding to AP1 in the
(Re)Association Response frame it transmits. The value carried in Max
Channel Switch Time element provides an estimate of time until the first
TBTT on the new channel on Link1."

Hence, calculate the remaining max channel switch time using the below
steps.

When host receives the CSA complete event with the CSA count 1, calculate
the Max channel switch time for each vdev by adding the below values,
	a) Host triggers the channel switch when CSA complete event is
	   received with the CSA count 0. The time difference between
	   CSA count 1 and CSA count 0 is one beacon interval. Hence, add
	   one beacon interval.
	b) Add the channel change time. The total time required to receive
	   CSA event handler from FW with CSA count 0, plus, the time required
	   to process the CSA complete event, plus, the time required to send
	   multi-vdev restart request for all the vdevs in the new channel and
	   send updated beacon template (only for non-DFS channel) is
	   approximately 1 second (added a few milliseconds as delta and
	   considered 16 AP vaps here).
	c) Add DFS CAC duration of the new channel if the new channel is DFS.
	d) Add one beacon interval time (time required to send the beacon on
	   the new channel after VDEV up).
	e) Store the sum of the above time values in max_chan_switch_time of
	   the vdev_mlme object.
	f) Save the current time when host receives CSA complete event with CSA
	   count as 1 in the last_bcn_ts_ms of the vdev_mlme object.

Calculate the remaining channels switch time using the below formula.
- Remaining channel switch time is equal to the time when the last beacon
  sent on the CSA triggered channel plus max channel switch time minus
  current time.

Reset the max channel switch time and the last beacon sent time after
sending the VDEV UP command to FW.

Change-Id: I7c03bfae5e159419a6c9462591aeb2d6c5b4fb87
CRs-Fixed: 3076245
2022-01-03 09:04:19 -08:00
Disha Das
d162a849f1 qcacmn: Allocate mmie mic of size 16
Issue: On receiving robust bcast mgmt frames, for mmie
mic validation, mic of length 8 could be allocated.
The encrypt function however, always writes mic of length
16 resulting in memory corruption issue.

Fix: Allocate mic of size 16 for wlan_crypto_is_mmie_valid().
This is also corresponding to mic buffer size of 16 in
wlan_crypto_add_mmie().

Change-Id: I870251c0ed4224a7a974dad86f2808af7148be95
CRs-Fixed: 3091165
2022-01-03 06:34:01 -08:00
Neha Bisht
631d7e1a7d qcacmn: Prefetch tx desc and nbuf in lithuim Tx. send path
Prefetch tx desc and nbuf in lithuim Tx. send path.
This improves the UDP DL CPU idle% by ~1.5%

Change-Id: Ibd31d979c859824ed9f6b34a2685f8b9c4a7635d
2022-01-03 04:54:13 -08:00
Shashikala Prabhu
850aa79f06 qcacmn: Add changes to get the correct link info offset
With the existing offset calculation formula in util_get_link_info_offset
function, the calculated offset was always greater than the length of the
ML IE. Hence, the above function always returned the value 0 for the
offset. The reason is, for example, '(BIT (4) & multi_link_ctrl) * 6'.
We are expecting this calculation to return a value of 6, but it is
returning 96 (= 0x10*6).

Modified the util_get_link_info_offset() to use WLAN_ML_BV_CTRL_PBM_*
presence bitmap to get the link info offset.

Change-Id: Ic548361ac2e82bddaed574cf197c3523d47304d5
CRs-Fixed: 3091674
2022-01-03 02:19:56 -08:00
Ashish
0d31a3986e qcacmn: Add support to query BMISS stats from fw
Currently there is no support to read bmiss stats from fw.
With this change, add support to read bmiss stats from fw.

Change-Id: I75dee16fffac88303f22742eda1985dc15c6ec15
CRs-Fixed: 3097302
2022-01-03 02:19:51 -08:00
Chaithanya Garrepalli
2c1ccc9baf qcacmn: Fix NAWDS mcast loopback issue in intraBSS
For NAWDS intraBSS mcast traffic add check for SA
and DA peer to avoid loopback

Change-Id: Ifb987dbfe6d6f427cd8873315d4ffd67390b4e6f
2022-01-03 01:03:59 -08:00
Chaithanya Garrepalli
a4167759a9 qcacmn: Add QDF APIs for fctx and ftype
Add QDF APIs to set or get fctx and ftype

Change-Id: I4c752f7a5be8b01a11eec9775845384dc2a6a4c1
2022-01-03 01:03:54 -08:00
Yu Wang
384fc6eb86 qcacmn: hold large memory for DBR ring
To avoid memory allocation failure during idle restart,
hold the memories with large size for DBR ring during
the entire lifetime of PSOC.

Change-Id: Idfe5f0e895cc088509b5a62ae07191aed32864f2
CRs-Fixed: 3099522
2021-12-31 02:14:27 -08:00
Devender kumar
412a969aeb qcacmn: Fix Atomic Memory Allocation Method
Memory allocation in atomic context is not correct, as for
MEMORY_DEBUG profile the initial_memory_debug flag is set to
0 which leads in allocating memory with GFP_KERNEL flag
Issue is seen with SDX_PINE where the memory allocation is done
in sleeping context using GFP_KERNEL in interrupt context
Fix is create a new memory allocation API with GFP_ATOMIC flag

Change-Id: I3baa5b601b60f88fe2d9ff1f4008703c6507a267
2021-12-30 03:23:22 -08:00
Sai Pratyusha Magam
5d58a41518 qcacmn: Store default keyix in wlan_crypto_setkey for each peer
Store default keyix in crypto_priv for each peer.

Change-Id: Ieb77c390fddd667f99fd97c5ecdd4f3de61ae045
2021-12-30 03:23:17 -08:00
Sai Rupesh Chevuru
6bbb8971e2 qcacmn: Fix for ping issue in NAWDS Learning repeater mode
In qcn9224, NAWDS Learning repeater mode will receive packets
with reason as HAL_RXDMA_UNAUTHORIZED_WDS.

Change-Id: I6fe8428a5f8e2bac0e1db45b87169db0bd4cc271
2021-12-30 03:23:12 -08:00
Tiger Yu
5a474b79ed qcacmn: Destroy peer object in a delayed work
Destroy peer object in a delayed work to avoid any potential
executing in the atomic context for peer obj destroy handler.
Which might invoke wma_vdev_deinit->wakeup_source_unregister to
cause schedule timeout issue.

This new feature is not enabled by default. Will only be enabled
by defining the FEATURE_DELAYED_PEER_OBJ_DESTROY in the config.

Change-Id: I1cc41ab00f932d36b8658545dc7a5da43c9ebe30
CRs-Fixed: 3098157
2021-12-30 00:34:33 -08:00
Huashan Qu
0ff3ae8b94 qcacmn: Give SAE-PK AP more score to pass SAE-5.7.3 certification
When do SAE-5.7.3 certification test case, STA will choose non SAE-PK
AP to connect which is wrong expected result, non SAE-PK AP beacon
will carry with QBSS IE that contributes more score than SAE-PK AP
score config.

Fix is to give SAE-PK AP more score to pass SAE-5.7.3 certification
case.

Change-Id: Ib3e516ccfa673e19f9bf0869aeffe4f5b1862a71
CRs-Fixed: 3101317
2021-12-29 22:32:19 -08:00
Jeevan Kukkalli
3250ae1f63 qcacmn: Reset monitor configured status flag after filter update
Reset monitor configured status flag after filter update
so that monitor buf ring filters are reset properly

Change-Id: Ia575ddc36241ecd6afba0e2c2861bdd39b430da9
CRs-Fixed: 3099219
2021-12-29 12:34:10 -08:00
Jinwei Chen
61a06721b0 qcacmn: fix unmapped REO queue address for MLO roaming
During MLO roaming, first link peer has unmapped REO queue Desc
address due to roaming is in progress, but 2nd link peer still send
stale REO queue Desc address to FW, SMMU fault will be captured if
REO access to this stale REO queue Desc address.

Add roaming in progress and REO queue address check before
sending WMI PEER_REORDER_QUEUE_SETUP_CMDID

Change-Id: Ic868685d98b802fa904ed440cdbb3cef908c6d95
CRs-Fixed: 3101658
2021-12-29 10:35:36 -08:00
aloksing
00dfbabe8c qcacmn: Add wmi command to enable probing all bw
Add wmi command id and service id

Change-Id: I992bcbe41422b58219a2b4c5c91046a8c29ddf6f
2021-12-29 06:43:26 -08:00
sandhu
ad2829718c qcacmn: Remove IP from files
remove IP from code

Change-Id: If119a4af213b10aadb9f1344e50b0342e72405c2
CRs-Fixed: 3073864
2021-12-29 04:28:58 -08:00
Harsh Kumar Bijlani
2832d48c89 qcacmn: Use atomic variant of qdf_mem_malloc for vdev stats
Use qdf_mem_malloc_atomic for memory allocation while fetching
vdev stats.

Change-Id: Ia36a41deb5ba882adb0727538c085c33c7e38b7c
CRs-Fixed: 3097703
2021-12-29 02:55:10 -08:00
Edayilliam Jayadev
cb40cd916e qcacmn: Miscellaneous fixes in Mgmt Rx REO module
Add miscellaneous fixes in management Rx reorder module.

CRs-Fixed: 3094901
Change-Id: Iba579bac4243f42879fef0b1d3de2ac8ca05bea1
2021-12-28 23:14:05 -08:00
Edayilliam Jayadev
7b2b50778e qcacmn: Handle ref counts in Mgmt Rx reorder module
Handle refcount increment and decrement properly in
management Rx reorder module to avoid reference leaks.

CRs-Fixed: 3094885
Change-Id: I26d7ea360e7f6eabb755b825fd9d34c5320b4e82
2021-12-28 23:13:59 -08:00
Edayilliam Jayadev
ba7f1f77ef qcacmn: Add enhanced statistics for Mgmt Rx REO
Add enhanced statistics for management Rx reorder
module. Add key stats about the frames entering
and leaving the reorder module.

CRs-Fixed: 3094874
Change-Id: I8df7a9ac98106ff834c3897a6b495b8a0dd5214d
2021-12-28 23:13:54 -08:00
Edayilliam Jayadev
a245acf476 qcacmn: Atomically modify pending and stale list in Mgmt Rx REO
The operations with stale and pending list should be atomic.
Share a single spin lock for pending and stale list so that
the modifications are atomic.

CRs-Fixed: 3081847
Change-Id: Ia647de01af0172039659c73bdd32de819dae1257
2021-12-28 22:13:12 -08:00
Kiran Venkatappa
31d1d1ac4a qcacmn: Skip mlo setup triggers if soc in not mlo capable
Skip sending triggers for MLO setup if a soc is not mlo capable to avoid
inconsistent MLO setup exchange with target.

Change-Id: Ie17dcd03e2fcf778795d964a55e4a400adacfb33
CRs-Fixed: 3100309
2021-12-28 14:42:43 -08:00
Chaithanya Garrepalli
0ead24e9f6 qcacmn: Correct ml peer_id check in partner chips map
In dp_mlo_partner_chips_map API correct the ML peer_id
check

Change-Id: I036e725571d922a3d01f3f07e16bda755f6f966e
2021-12-28 10:52:03 -08:00
Tushnim Bhattacharyya
2a660189e5 qcacmn: drop the log level to debug for invalid channel number
Drop the log level to debug from error for the prints indicating
input or output channel number is invalid.

Change-Id: Ief2f609f1c95c223c97cded6d81460e52a34c729
CRs-Fixed: 3100105
2021-12-28 10:51:59 -08:00
Rakesh Pillai
125174cdd1 qcacmn: Initialize only one RXDMA Monitor Status ring
For WCN7850, the first mac (i.e.. MAC0) is capable of
2G/5G and 6G data transfer. Hence initialize and use
only on RXDMA monitor status ring.

Change-Id: Idb6e23a887a9ed32a52dd54765e5ed3c6a12df06
CRs-Fixed: 3094138
2021-12-28 10:51:54 -08:00
Sai Pratyusha Magam
fc5f47db1a qcacmn: Release peer only after key access for peer is completed
Release peer only after key access for peer is completed

Change-Id: I88948536605eb4afac82772428938e0aaecbc957
2021-12-28 07:43:23 -08:00
Shiva Krishna Pittala
a9547b0f25 qcacmn: Add support to extract fixed params from Spectral Caps event
WMI_SPECTRAL_CAPABILITIES_EVENTID event will be sent by the FW to
indicated the different capabilities of the Spectral HW block.
Add support to extract the fixed parameters from this event.

Change-Id: Ib13108f078de008b6a76a25a010e85a7fdb6f5fe
CRs-Fixed: 3098203
2021-12-28 06:43:12 -08:00
Himanshu Batra
0ae42b09e4 qcacmn: Use correct API to find is peer is assoc peer of an MLD
Use correct API to find if peer is assoc peer of an MLD

Change-Id: If485222ed23a1ac7b7fc625c6d9dfd6000959f36
2021-12-28 02:55:59 -08:00
Naga
719e163615 qcacmn: Change to make monitor ops per soc
- make monitor ops per soc, so that when ops are
  reset it will not impact other soc.
- reset filter setting during pdev deinit.

Change-Id: Ic40582fc1d03343d0bfaf879177212ecb83ae058
CRs-Fixed: 3086841
2021-12-27 23:39:49 -08:00
Himanshu Batra
0dd1799d92 qcacmn: Increase IPA Max bandwidth to support high BW voting
Increase IPA Max bandwidth to support high BW voting

Change-Id: I80d127601d7c6c6feb214062cee6b35a3553f9de
2021-12-27 22:34:27 -08:00
Disha Das
601e5975d1 qcacmn: Fix for concurrency issues in wlan_crypto_getkey
Adding changes to call getpn after checking if key is valid,
and releasing the peer reference.

Change-Id: I8821407472db2b7008ad8226e754077a601d325e
2021-12-27 18:33:59 -08:00
Rakesh Pillai
b93b4af698 qcacmn: Fix timestamp parsing from TLV for kiwi
For KIWI target, 64-bit timestamp is reported
in the PHY TLVs. use the first 32-bits timestamp
value for the radiotap header.

Change-Id: Ia7d7a6913e4cdca3a1432cc5edbb0348ec8a6857
CRs-Fixed: 3096680
2021-12-27 13:00:47 -08:00
Jinwei Chen
1c27daa164 qcacmn: Remove HW CC CMEM cleanup for Kiwi
For Kiwi, if force device wake mechanism is enabled for register
writing, host will try to wake up UMAC before writing real register,
this also happened for CMEM write. but during soc deinit/detach
period, device might already lose power supply and then UMAC can't
be awake from host view result in panic.

Remove HW CC CMEM cleanup which is not necessary for Kiwi as
CMEM will be re-configured during next boot up.

Change-Id: I515308c065eefbba896cb232773b8d7ffc32d385
CRs-Fixed: 3097991
2021-12-27 13:00:41 -08:00
Jinwei Chen
c9ff3a2ac9 qcacmn: Support hif window register and set init_phase for Kiwi
For Kiwi, if UMAC force wake is enabled, HIF window register
support is needed as well. currently hal_soc->init_phase just be
true for a very short periord, this lead to hif_force_wake_request
is called frequently when configure register during initialization,
this is not necessary as pld and device is not in power collapse
state during this period.

Enable HIF window register and increase init_phase true period

Change-Id: I0b5394bbc1ca73d20b2fcabbf2a261e6f8335626
CRs-Fixed: 3097991
2021-12-27 13:00:36 -08:00
Shwetha G K
3ac9cf9e6b qcacmn: WMI support to enable/disable TQM reset
Add WMI command support to enable and disable the
TQM reset on SOC.

Change-Id: Ic9476c56d5a6758ea3006c819372b5f89140a4da
2021-12-27 08:31:11 -08:00
Liangwei Dong
a5503f36a3 qcacmn: Add DEBUG_CONN_RSO log history
Add new DEBUG_CONN_RSO enum to record RSO state changing.

Change-Id: Ie46ab5d4b32d8b5632aa3c3eaed96d00afda22b3
CRs-Fixed: 3097076
2021-12-27 01:03:55 -08:00
Chaithanya Garrepalli
9764cf5e3d qcacmn: Fix double free in MEC notify event
Fix double free of tx descriptors with MEC notify
event

Change-Id: I7456b14e8872fd7732afade7d49134c1fca9284b
2021-12-24 10:33:53 -08:00
Tallapragada Kalyan
0156c41d12 qcacmn: store per page descriptor index instead of descriptor count
store per page descriptor index instead of descriptor count
in the link descriptor cookie

Change-Id: I719bd5707e6c7f11d7cd159974b5255cd845f2bc
2021-12-24 09:13:18 -08:00
Will Huang
f920f723a9 qcacmn: Extend IPA max intf number to 4
To support 4 SAP concurrency on sdxlemur, it is required to extend IPA
max interface number to 4.

wlan_ipa_iface_2_client is for legacy chip which support MCC, it is not
useful for nowaday chip, just extend it to 4 interface with same
content as other interface to pass ipa setup.

And Fix a static analyze error about session_id.

Change-Id: I5f2a4a0e3ff943e15ab9907e206b64423002eccb
CRs-Fixed: 3092428
2021-12-23 20:33:37 -08:00
Qun Zhang
439cfbfc48 qcacmn: Let OBSS scan disable action called directly
Wlan host side doesn't have ways to know whether OBSS scan is
run or not if OBSS scan is offloaded to FW. So should let OBSS
scan disable action called directly to make sure OBSS scan is
disabled during each suspend.

Change-Id: I6134c038bbea2ae4f09662354d60063488696cb5
CRs-Fixed: 3097186
2021-12-23 04:50:25 -08:00
Bing Sun
6b44bcd1c5 qcacmn: Add WLAN_RNR_TBTT_OFFSET_INVALID
When populating TBTT OFFSET in RNR IE, if TBTT OFFSET is unknown,
set it as WLAN_RNR_TBTT_OFFSET_INVALID.

Change-Id: Ie60d4b66c849b4c9d19cc63f88821b564aeace07
CRs-Fixed: 3097197
2021-12-23 04:50:19 -08:00
Bapiraju Alla
76caeb9b44 qcacmn: Use target if component for VDEV manager response path
Currently, VDEV manager responses are using legacy path instead of
target_if, vdev_mgr and os_if components. As the driver implementation
is planned for converged model, legacy implementation will be moved to
the respective components.

To avoid rework, Use target_if, vdev_mgr and os_if components to process
the FW responses corresponding to the vdev manager.

Change-Id: I778f6de93481fc730383e8f8e1c604f173947d69
CRs-Fixed: 3093776
2021-12-23 00:54:35 -08:00
Bapiraju Alla
df5cc86477 qcacmn: Set partner vdev link id before initiating the connect on it
Currently, Driver is notifying the connect response to the user-space
immediately after first link connection. At this time, partner vdev
information is not available. Hence user space is notified with invalid
partner wdevs.

To avoid this, set link ID's for the partner VDEVs before notifying the
connect completion to is_if.

Change-Id: I6524e9af9359fced471db8f25220d2ac6854fc22
CRs-Fixed: 3097646
2021-12-23 00:54:30 -08:00
Gururaj Pandurangi
bad847ced8 qcacmn: Reduce logging in get 6G power type for country API
Optimize the checks in reg_get_6g_power_type_for_ctry API to
reduce logging. Logs will appear only during initial connection
and not after parsing each beacon.

Change-Id: I4c4904c4825cd822d119e4ee9b2c69e96612be31
CRs-Fixed: 3094366
2021-12-22 23:02:00 -08:00
Naga
984bfae507 qcacmn: Enable timer based low threshold interrupt
Enable timer based low threshold interrupt for waikiki monitor
tx/rx source rings

Change-Id: I8c422b4157d0077cfa211d1b754fecbb2b98fad6
2021-12-22 23:01:55 -08:00
Shiva Krishna Pittala
6219f3d454 qcacmn: Populate the number of Spectral detector info TLVs
Populate the number of Spectral detector info TLVs and
add the debug prints for Beryllium Spectral TLV extraction APIs.

Change-Id: I1f449389ba630e30e160b3070bee14d93a45c3be
CRs-Fixed: 3097662
2021-12-22 16:50:12 -08:00