Commit Graph

350 次程式碼提交

作者 SHA1 備註 提交日期
Devender Kumar
610e19cab2 qcacmn: Add support for peer map handler
Call ol_peer_map handler when AST_OFFLOAD_SUPPORT
is enable, so that client_connect_ex event can be
sent to IPA.

Change-Id: I688cb95dec43180133a8948573fbd45af3cb9f33
CRs-Fixed: 3419264
2023-03-13 13:44:39 -07:00
Neha Bisht
80ee0f60c6 qcacmn: Add support for primary TQM migration
Add support for primary TQM migration.

Change-Id: Ifd62eb7e731bbd9e86c462642fd2e20d50d5495a
CRs-Fixed: 3410900
2023-03-10 16:11:33 -08:00
Abishek Ganapathy
ee1493dc9c qcacmn: Add HMWDS rem-addr support in Beryllium
Add HMWDS rem-addr support to delete AST WDS mac entries in
Beryllium chipsets.

Change-Id: I5623bac02b326d1d668ad5e1fdcfc3a9f8cbbb9c
CRs-Fixed: 3397961
2023-03-03 13:40:46 -08:00
Santosh Anbu
56559ee387 qcacmn: Add MLO peer AST on primary soc
In scenario where assoc peer soc id is different from
primary soc id, reset the soc to point to primary psoc.
Since unmap is received on primary soc, the map should
also add ast on primary soc.

Change-Id: I85c6ba72a217eb5350ccc072d56b36b111af4d58
CRs-Fixed: 3410916
2023-03-03 05:27:20 -08:00
Jeff Johnson
1ea7b9f065 qcacmn: Fix dp/wifi3.0/dp_peer.* documentation
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_peer.[ch], so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so move that documentation.

Change-Id: I996764f93addfa270ef7aaedd2e23c71be287f77
CRs-Fixed: 3373168
2023-02-13 14:01:37 -08:00
Ruben Columbus
8339fb6fde qcacmn: Flush queue before qref delete
REO_FLUSH_CACHE cmd
 - flush_q_1k_desc as 1 – This will flush Queue, Q1k and QEXT in one go.
   we need not give 11 cmd for each tid of the peer.
 - forward_all_mpdus_in_queue to 1 in FLUSH_CACHE_CMD.
   With this we need wait for aging threshold time.

Change-Id: I695ab48a50968872eb22024ba5c770f0e5a74a09
CRs-Fixed: 3384665
2023-02-13 05:27:59 -08:00
Sai Rupesh Chevuru
e219606587 qcacmn: DP changes corresponding to single netdev model
DP changes to support the single netdev model.

Change-Id: I03c74e605c7530f4ab81edb68f0090f103e84578
CRs-Fixed: 3360499
2023-02-07 02:55:12 -08:00
Chaithanya Garrepalli
b17c727a41 qcacmn: Changes to send REO command on appropriate SOC
Added changes in below API to avoid sending REO command
on non-primary SOC for MLO peers.
1. dp_get_host_peer_stats
2. dp_set_pn_check_wifi3
3. dp_peer_ctrl_frames_stats_get

Change-Id: Ia2631b2ab80d80028743b0d6255158bd6bd76e88
CRs-Fixed: 3384398
2023-01-26 22:21:19 -08:00
Chaithanya Garrepalli
07e72e4e7e qcacmn: Flush the LUT cache before freeing REO queue
Changes to implement the HW recipe to flush LUT cache
before freeing REO queue in SW

Change-Id: I0168a0e8aef8245f3d2b86b601226f97c376f484
CRs-Fixed: 3384508
2023-01-24 06:55:53 -08:00
Rakesh Pillai
ada0c97d9b qcacmn: Add datapath config event history
Add history to record the config/control events
e.g. peer create/delete/unref-delete, vdev attach/detach
in datapath.

Change-Id: Ic3c8122fca9124e41931ec445946aec5e8863434
CRs-Fixed: 3371899
2023-01-19 02:55:07 -08:00
Amit Mehta
851e62a653 qcacmn: Changes assert level and add log if peer entry already present
Currently in dp_peer_find_id_to_obj_add while adding peer to soc
peer_id_to_obj_map list, if peer entry is already present for the
peer_id due to no umap event for older peer, driver calls QDF_ASSERT
and returns, As QDF_ASSERT is NOP it results in older entry still present
in the table. which results in peer leak issue as while doing peer unamp
driver gets peer from soc peer_id_to_obj_map table based on peer id,
Since older entry is still there older peer will be freed and new peer
unamp will not happen.

To fix the issue call qdf_assert_always if peer entry is already present
for peer id which will always assert and add additional logs to print
peer information.

Change-Id: Ic777e9c7881fcbc67f54002bd619a8e6d52de126
CRs-Fixed: 3369736
2023-01-05 18:01:25 -08:00
Pavankumar Nandeshwar
4e0ae9b556 qcacmn: Set search idx and cache mapping for ppeds
Set search idx and cache mapping for ppeds in
sta mode

Change-Id: I1f892d329878e093d19324a178566b87715e1736
CRs-Fixed: 3367824
2022-12-29 05:19:41 -08:00
KARTHIK KUMAR T
72332cbe67 qcacmn: Add ast_idx and ast_hash in dp_peer
Add ast_idx and ast_hash values in dp_peer

Change-Id: Ib68a25f6ea6b07cd46f4ec995436625cb3f28a58
CRs-Fixed: 3344867
2022-12-05 14:59:51 -08:00
Ruben Columbus
e1269c4834 qcacmn: clear memory address before used again
set rx_reo_queue_desc_addr_31_0 and rx_reo_queue_desc_addr_39_32 to 0
in hal_reo_shared_qaddr_write_be

Change-Id: Ib92775e0883b68f49c27e606e762384239bae955
CRs-Fixed: 3339043
2022-12-03 11:33:57 -08:00
Yu Tian
6d7d7fcc42 qcacmn: Optimize RX hw stats flow
Only 8 RX data TIDs are used, so HW stats query only needs to update
these TIDs info to save command executing time.

Change-Id: I04b65d19ddb3a9e43cb96b266708272769f7dcf2
CRs-Fixed: 3348771
2022-12-02 21:56:12 -08:00
Yu Tian
5a6d2c2374 qcacmn: Optimize RX hw stats flow
Only 8 RX data TIDs are used, so HW stats query only needs to update
these TIDs info to save command executing time. Change is aimed to
reduce the TID number and use only one REO flush command for overall
REO cache flush.

Change-Id: Ib642451b9f07f62198126c45644742e1908280cd
CRs-Fixed: 3325964
2022-11-25 12:35:53 -08:00
Ripan Deuri
85e7faff70 qcacmn: Add function to check WDS ext peer
Add function to check WDS ext peer.

Change-Id: Ic29cb04fc2830240854921fe3eeadd03e8171979
CRs-Fixed: 3340244
2022-11-21 00:03:45 -08:00
Amrit Sahai
9313b57907 qcacmn: Add support to get jitter stats on peer level
Add support to get jitter stats on peer level

Change-Id: I5e37a24e93cde5e34e561b26c0834d9cfe42bf9f
CRs-Fixed: 3296380
2022-10-20 01:11:44 -07:00
Jeff Johnson
ebfbc0d927 qcacmn: dp: Fix misspellings
Fix misspellings in dp/...

Change-Id: I6ef7a19ee03104ae38a8a77e229b90aa80329592
CRs-Fixed: 3304682
2022-10-07 22:42:22 -07:00
Ripan Deuri
cb33f7e1d3 qcacmn: Acquire lock before calling rx tid setup
The rx tid setup function is called from multiple contexts.
Acquire lock before calling that function to avoid race condition.

Change-Id: I7a0443e5e09a068301de171afeb4d400bf54b1c8
CRs-Fixed: 3291079
2022-09-30 04:26:34 -07:00
Yu Wang
da0adaac10 qcacmn: set correct parameters for QDF_MAC_ADDR_FMT
QDF_MAC_ADDR_FMT and QDF_MAC_ADDR_REF must be used
together, otherwise, it will cause build failure
once WLAN_TRACE_HIDE_MAC_ADDR is defined.

Change-Id: Ifb0bce0661a7252940101346f37d4b4387bea4d2
CRs-Fixed: 3292101
2022-09-20 10:47:38 -07:00
Jeff Johnson
88c15dadbb qcacmn: Fix misspelling "recevied"
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."

Change-Id: Ibd7f4a136541be8aa98f5bee4db7f75af0271f53
CRs-Fixed: 3273526
2022-08-28 19:08:26 -07:00
Sai Rupesh Chevuru
383edf35d0 qcacmn: Map and umap MLO DP peer to partner soc
Maping and unmaping of the MLO DP peer to the partner soc
will be initialized based on architecture.
dp_mlo_partner_chips_map
dp_mlo_partner_chips_unmap

Change-Id: I918f6d552acd9d64086abf4c38f913348e13c381
CRs-Fixed: 3267904
2022-08-22 11:30:40 -07:00
Pavankumar Nandeshwar
67de6bcbfd qcacmn: Handle Umac post reset at host
Handle Umac post reset and post reset complete
events from firmware.

Change-Id: I76ac1b96f01f026535d31edcbd245b3643ecf6ee
CRs-Fixed: 3267222
2022-08-21 00:37:46 -07:00
[B
d8ebd88634 qcacmn: Add unsigned long for type casting void *
Add unsigned long for type casting void *

Change-Id: I72fb98b94356b5d279f0c46281fb8143e02df13d
CRs-Fixed: 3258275
2022-08-02 05:16:26 -07:00
Namita Nair
df5ecd264e qcacmn: Disable FEATURE AST macro
Handle build errors when
FEATURE AST macro is disabled.

Change-Id: I0f1bd4e349543b2e0ab212f65578f194956e3695
CRs-Fixed: 3228963
2022-08-02 03:22:54 -07:00
Namita Nair
dc6a757028 qcacmn: Support same link/mld peer mac address
Currently, if mld and link peer has the same mac
address, the peer cannot distinguished with
just the mac address as the search argument.

Hence to support same mld/link peer mac address,
cdp_peer APIs that uses both link and mld peers,
are also given peer_type info. This helps
to perform the operations on the correct peer.

Change-Id: If646755facc8f9a4d9fed2f31c5cc6618fa9a952
CRs-Fixed: 3043428
2022-07-29 05:57:06 -07:00
Santosh Anbu
c49d6a32c8 qcacmn: Support for ADD/DEL of AST for MLO peer
Support for addition of AST entries for MLO peer event.
Deletion is handled implicitly

Change-Id: Id1caa85370fac847d18dc3bcbecad726bf927d0f
CRs-Fixed: 3251691
2022-07-27 01:59:32 -07:00
Santosh Anbu
82fd1e58e2 qcacmn: Add support to delete AST on BE platforms
Add change to support deletion/cleanup of AST entries on host
for BE platforms(Waikiki) based on peer map and unmap event received
from FW.

Change-Id: I494f7beb572e81cf68cc1cf90864eea0d8125369
CRs-Fixed: 3237943
2022-07-24 17:26:03 -07:00
Santosh Anbu
d08af7b6f7 qcacmn: Add support for addition of AST on BE platforms
Add change to support addition of AST entries on host
for BE platforms(Waikiki) based on peer map and unmap event received
from FW.

Change-Id: Ib9a76fd15d18e322b561ce9361d62643289817c4
CRs-Fixed: 3237940
2022-07-24 17:25:56 -07:00
Vivek
e70a7b87d0 qcacmn: Add mac address to peer unmap ops
On receiving the peer unmap event the ops
is called without the mac address of the
peer for which peer unmap is received.

Add mac address of the peer for which peer
unmap is received.

Change-Id: I9026433089963818d5a227a0660866ff504dea84
CRs-Fixed: 3238626
2022-07-19 01:36:10 -07:00
Amrit Sahai
9ea6f8dc13 qcacmn: Add support for rx stats from REO block
Add support for rx stats from REO block in IPA use case.

Change-Id: I90a6f57507838645dea9095615f378bd5a3a6ffc
CRs-Fixed: 3231322
2022-07-18 17:45:10 -07:00
Devender Kumar
277054124d qcacmn: AST entry create and update support for IPA
To support WDS feature in IPA driver, WLAN needs
to update the ast entry for any new rx packet, and for
end-nodes connected via repeater to root.

CRs-Fixed: 3226348
Change-Id: I7383b12f18e7c70ec06499d66130667eca033131
2022-07-13 02:37:22 -07:00
Yu Tian
fe9866276b qcacmn: Add HW descriptor check before RX TID update
RX TID HW descriptor is first allocated in setup stage. When
failure case happens, it is got freed. This change adds a
check to make sure it's valid before updating RX TIDs.

Change-Id: I1326315b2eca4c50ef9ff5fa887386de4a796eb0
CRs-Fixed: 3227483
2022-06-28 22:30:12 -07:00
Ananya Gupta
e52231c86e qcacmn: Set bandwidth, MPDU retry threshold at peer register
Currently, bandwidth and corresponding MPDU retry threshold was
taken from tx packet status in per packet to update peer stats.
With this change, set bandwidth and MPDU retry threshold
during peer registration.

Change-Id: Iffd06968246d0b86b26716ae6672e2cd23360c67
CRs-Fixed: 3225479
2022-06-28 04:11:54 -07:00
Jinwei Chen
a3585f6fe8 qcacmn: Add sanity check for BA window size in DP
The original BA window size given from CP might > max DP supported,
add sanity check based on HAL target allowed.

Change-Id: Ibadaddeffe65165a89d580d8a5cbf5f7c724c809
CRs-Fixed: 3193852
2022-05-26 01:32:39 -07:00
Prakash Manjunathappa
017ad75e08 qcacmn: Set per_tid_basize_max_tid so that BA size is configured per TID
Set per_tid_basize_max_tid so that BA size is configured per TID.
Accordingly fix dp_check_ba_buffersize to ba_window_size to incoming
buffer_size. Assert for any BA window size above 1024.

Change-Id: I40cb2aac012c50e253c3ef22d44cf5db3abfb7bb
CRs-Fixed: 3182601
2022-05-17 13:50:32 -07:00
Surabhi Vishnoi
ecaa0f1f6c qcacmn: Allow rx UDP packets during roaming before peer map is received
In VoIP cases, no or minimal packet drop is expected during
roaming. Currently, data packets are dropped in host if they
are received after roam sync indication from firmware and before
peer map indication is received due to invalid peer.
This change allows rx UDP data packets during roaming before
peer map indication is received from FW if peer's auth_status
received in roam_sync_indication from FW is authorised.

Change-Id: Ic518b7cd0aef48a2b0f8c923a2e20838b07f3d1f
CRs-Fixed: 3168603
2022-05-12 23:34:21 -07:00
Rakesh Pillai
f74f73dc68 qcacmn: Add API to update DP rx tid BA window size
Currently, in case where AP advertizes BA window size
which is different than our max supported BA window size,
the HW gets configured for BA window size advertized by
the AP, whereas the ADDBA response indicates the window
size of the STA, which is less than the AP.
This mismatch leads to the BA bitmap to be incorrect.

Fix this by exposing an API from datapath for the update
of the final BA window size which is populated in the
ADDBA response.

Change-Id: I81a039f47a775990b426e9aca1daaaa9bdb6e88f
CRs-Fixed: 3187941
2022-05-11 09:41:23 -07:00
Jinwei Chen
691ffe9f3f qcacmn: Fix AST index for STA Vdev overwritten issue
For KIWI, STA AST index lookup search is enabled and remote
AP peer's AST index will be stored in STA Vdev if receive
AP peer htt peer map msg. but if STA TDLS connection happened,
host will receive another peer map msg for remote TDLS STA peer,
this remote TDLS STA peer's AST index will overwrite original AP's
AST index. if TDLS disconnected, STA vdev will still use remote
TDLS STA's AST index for TX, then TX to AP might fail.

Add is_tdls_peer flag in dp peer and configure this value by
cdp_peer_set_peer_as_tdls() from control path right after TDLS peer
created. if is_tdls_peer is true, do not store this TDLS peer's
AST index to STA Vdev, skip bss_peer flag setting as well.

Change-Id: I7b5df1caca6a0b5305a6e867cd92099b5f6a4890
CRs-Fixed: 3151035
2022-05-06 16:43:13 -07:00
sumedh baikady
5d0d6db673 qcacmn: Clear HW REO cache for shared reo qref entries
Clear HW REO cache when new entry is written to shared
REO qref table.

Change-Id: I43cffb66b3e7fdf62afb7ffc1729275b868b9888
CRs-Fixed: 3189158
2022-05-06 16:42:57 -07:00
Pavankumar Nandeshwar
96c227a65d qcacmn: Check if ast hash table is populated before accessing
Check if ast hash table is populated before accessing it,
as some calls from ecm can try to access the hash table when it
is down

Change-Id: I6d38359c3cf13f578671794db61c8eb845245d6d
CRs-Fixed: 3186437
2022-05-03 08:40:48 -07:00
Abishek Ganapathy
e79a7628e6 qcacmn: Find peer using mld_addr for MLO case
For MLO, try to find peer by comparing the MLD MAC
addresses.

Change-Id: Ib109da957d5c330385688a4e91e04cda91a51f30
CRs-Fixed: 3140866
2022-04-22 07:27:02 -07:00
sumedh baikady
52181cceb1 qcacmn: Fix Reo qref issues
1. Since peer id is reused for reconnection in MLO case,
old entries for queue desc addr is cleared. Clear the reo
internal storage and reset it back on client connection.

2. Send Qref feature WMI cmd to FW to enable the feature.

Change-Id: I6705ce121c8c25d9a2ace039dab21312fa5ea4b1
CRs-Fixed: 3156642
2022-04-12 06:31:36 -07:00
Subrat Dash
b657bc4223 qcacmn: Bypass cds to create AST entry for WDS station
The qcacld driver does not register ol_if_ops callbacks
to handle wds AST request.

Call target if APIs directly to add, delete, and update
the AST entries for the WDS stations.

Change-Id: Ib4d5e1fdd6598e3390dbd2be0f24a72ccf01f202
CRs-Fixed: 3133839
2022-03-01 14:55:35 -08:00
Vinay Adella
381d67a7a2 qcacmn: Add support to get reo qdesc size for li & be platforms
Bifurcate the hal_get_reo_qdesc_size to corresponding lithium
or Berillium platforms.
This can handle difference, if any between them and later enhance
to set the qdesc size based on peer negotiation.
Currently for NON_QOS_TID, the BA window size is hardcoded as
256 for Li and 1024 for Be.

Also modify hal_reo_cmd_update_queue_params to accommodate higher
Block-Ack Window size. For this steal bits from pn_size and use
pn_size values as macros PN_SIZE_XX which is only 3 bits,
instead of 8bits.

Change-Id: If310175da579aa3a47a8b031a1774c6c8982d4b2
CRs-Fixed: 3125986
2022-02-22 16:04:01 -08:00
Pavankumar Nandeshwar
24c089c678 qcacmn: Add the missing tid value in rx_tid_defrag
Initialize the rx_tid_defrag with correct tid value
which was missing

Change-Id: Ib01d9692352e56f62d1338f353afac11b175d710
CRs-Fixed: 3130846
2022-02-18 15:32:08 -08:00
Pavankumar Nandeshwar
e157e0df4e qcacmn: Flush dp cached frames only for mld peer
Flush dp cached frames only for mld peers and legacy peers, as
link peers don't need it.

Change-Id: I19a27c5810a1fec6a62bfe5a6377073dc382fb4c
CRs-Fixed: 3131405
2022-02-17 09:40:38 -08:00
Santosh Anbu
83d13e1ffd qcacmn: Support multi AST delete WMI command
Add change to support multi ast entries deletion.

Change-Id: I74b9000c6949d7455da5eb54678e976ab1b9bb20
CRs-Fixed: 3124258
2022-02-11 22:30:17 -08:00
Harsh Kumar Bijlani
d8e05be641 qcacmn: Changes for vdev and pdev stats
Changes for vdev and pdev stats as per the new peer stats
re-organization architecture.

Change-Id: I48f9fb4b0915c40f4add83f2e2dd074cc97874fd
CRs-Fixed: 3092123
2022-02-09 11:55:12 -08:00