Commit Graph

3725 Commits

Author SHA1 Message Date
Manikanta Pubbisetty
b5f74912c1 qcacmn: Add TX completion logic for WCN6450
In the case of WCN6450, WBM HW block is removed in the UMAC.
TX completions come via HTT messages. Add logic to handle
HTT TX completion messages from the firmware.

Changes are specific to WCN6450 and hence implement the logic
in the arch specific code.

Change-Id: I447020354ce26e8948e4b49648c434fb2ed302cd
CRs-Fixed: 3381814
2023-03-29 01:13:21 -07:00
Namita Nair
51e4b595d7 qcacmn: Fix filter delete check in opt wifi dp
If only a single filter is installed,
then the ip version of the second filter
param will not be set. Hence fix the check
for ip version in htt layer as it is already
verified when received from the IPA layer.

Change-Id: I05dff71aa27a254023599df0cbab51bafd0c4f82
CRs-Fixed: 3441760
2023-03-28 16:13:18 -07:00
Neha Bisht
3c4357c783 qcacmn: Fix compilation errors for primary umac migration API
Fix compilation errors for primary umac migration API

Change-Id: I3edad34b54581b662725379ec7267fe3ffd5b22b
CRs-Fixed: 3444960
2023-03-28 11:31:38 -07:00
Karthik Kantamneni
0562ed7a5e qcacmn: Code to init/deinit SOFTUMAC based Rhine architecture.
This code helps to initialize and deinitialize new SOFTUMAC
based Rhine architecture.

Change-Id: I374140ccb3b31e9351c6e683c77d81a5a876472a
CRs-Fixed: 3382913
2023-03-28 11:30:30 -07:00
Karthik Kantamneni
a7cd30b5da qcacmn: Route soc init/deinit handling via arch ops API's
Currently dp_soc_init/deinit API's are called first for
common soc initialization/deinitialization and then architecture
level init/deinit APIs are called from base dp_soc_init/deinit.
But with RHINE architecture dp_soc_init/deinit API's are not common,
so we cannot call these APIs as base. To handle this scenario
routing all the soc level init/deinit from arch ops APIs and
arch ops APIs will take care of calling common soc_init/deinit.

Change-Id: Ibb10d452931630c917088b4d222c7fbd82621f6a
CRs-Fixed: 3404205
2023-03-27 15:14:14 -07:00
jinbao liu
d29b507582 qcacmn: Shorten DP_REO_STATUS_STATS_TIMEOUT to 100ms
Currently we have a 850ms timeout threshold not to
block upper APPs, but this could contribute to some
query timeout. To address this issue, this change
changes the timeout threshold from 850ms to 100ms.

Change-Id: Ibb39609000972d09713a0435b4884454b331fe4f
CRs-Fixed: 3436517
2023-03-27 03:47:20 -07:00
Sai Pratyusha Magam
d2952c2e85 qcacmn: Remove wapi packets from is_eapol check
Remove wapi frames from is_eapol check in dp_rx_null_q_desc.

This change is to address the below issue:

First wapi packet received in dp_rx_nll_q_desc,
before TID setup does not reach stack since it is
treated as an eapol frame and gets dropped in
dp_rx_eapol_deliver_to_stack.

Change-Id: Ibcad786eb1a1cec1c082ec630ea38cc582627dfa
CRs-Fixed: 3413689
2023-03-24 07:23:46 -07:00
Kenvish Butani
3b0a344b0c qcacmn: Remove DP_MLO_LINK_STATS_SUPPORT from RX path
Remove DP_MLO_LINK_STATS_SUPPORT macro from per
packet RX Path to enable Link Peer Stats support

Change-Id: Ie4b7ac70db3ba3a8cc20a53de320c0eb1720d08b
CRs-Fixed: 3443161
2023-03-23 11:47:02 -07:00
aloksing
47c7b5dfc8 qcacmn: Reduce mimo users to 8
Reduce array size to 8 for ul/dl mimo users
for deterministic stats

CRs-Fixed: 3408802
Change-Id: I055aa195e514eb1fe74161ef61119f7c8ddad478
2023-03-23 04:47:34 -07:00
Tallapragada Kalyan
ee4fb4380c qcacmn: replenish used nbuf for DS flows
in case of DS pkts the same pkt which is received
in RX path (REO2PPE) can be refilled back to wifi
rxdma

CRs-Fixed: 3381462
Change-Id: I3762c91110ffcc95162bf068b7a1ed3e41904824
2023-03-23 00:14:20 -07:00
Hariharan Ramanathan
7a22157418 qcacmn: Changes to make correct buffer allocation for monitor
Changes to allocate correct number of buffers for monitor during boot
time and allocate remaining buffers only when monitor vap is created.

Change-Id: I8a2cd7b6a20a281934c47ca0418904b426d17a4d
CRs-Fixed: 3432525
2023-03-22 10:30:05 -07:00
Jeevan Kukkalli
5b2792536c qcacmn: Move smart monitor cdp func ptrs to mon ops structure
Move smart monitor cdp func ptrs to cdp mon ops structure.
Smart monitor cdp functions are different for 1.0 and 2.0
hence moving the func ptrs to mon ops structure ensures that
func ptrs are initialized appropriately.

Change-Id: Ic827b44f36d76349f397e5b72dec0a127f90aa7a
CRs-Fixed: 3428778
2023-03-22 10:29:56 -07:00
Kenvish Butani
1e6fe4c3a2 qcacmn: Enable MLO Link Stats Support
1) Enable MLO Link Stats Support
2) Add Stats counter to capture Invalid Link ID
3) Fix the FW Recovery crash while ol_stats
   disable.

Change-Id: I1b5263ae024579c5ec2018f8082f0d03ffdf0030
CRs-Fixed: 3431319
2023-03-22 05:58:57 -07:00
Jeevan Kukkalli
96b25fe6e0 qcacmn: Fix compilation issue when rx tag stats macro is disabled
Fix compilation issue when WLAN_SUPPORT_RX_TAG_STATISTICS is
disabled.

Change-Id: I955af07214bcf7b9b2bba17c0f12eb18076c2a48
CRs-Fixed: 3436740
2023-03-22 05:58:37 -07:00
Namita Nair
cd406423c7 qcacmn: Disable cookie conversion for IPA WBM ring
Currently, HW cookie conversion is enabled
for the WBM ring dedicated to IPA during
optional wifi datapath feature. IPA does
not need HW cookie conversion hence disable
it for this ring when the feature is enabled.

Change-Id: I84ecfa54c87f41f1be5202280c450bdfaeebd4ac
CRs-Fixed: 3437556
2023-03-22 05:58:28 -07:00
Sreeramya Soratkal
12b1dc3a21 qcacmn: Update the debug level of pilot evm count
With the current implementation of tlv parsing for rx_evm and
rx_antenna, there is a flood in printing the higher pilot
evm count error. Update the debug level of the print to
prevent the RCU stall due to excessive printing.

CRs-Fixed: 3435849
Change-Id: I8f1eb0c133a4d8b70494639d90b04de23b276fc2
2023-03-21 23:01:48 -07:00
Sreeramya Soratkal
55cbe940ac qcacmn: Update number of chips supported for MLO
To support MLO on 4 chips, update the maximum number of chips that
can participate in MLO to 4

CRs-Fixed: 3426681
Change-Id: I1281eed9720d5a5f17bbb6a5e3c7f9e56842a33f
2023-03-21 23:01:37 -07:00
Namita Nair
4883e7fba6 qcacmn: Change IP version type from uint8 to uint16
As IPV6 version number 0xdd86 is 16 bit integer
change the type from uint8_t to uint16_t.

Change-Id: I82c2c0c5bac0632351ee41873b4dd83b2eeae8be
CRs-Fixed: 3429726
2023-03-21 20:03:19 -07:00
Karthik Kantamneni
38f98d473f qcacmn: Refactor DP rings related code to different files
Refactor DP rings related code to different files, such that
both hardware UMAC based and Software UMAC based platforms
can use required code effectively.

Change-Id: Ie58eae34a2da77c2d63870fab74b9d2d9d49c14a
CRs-Fixed: 3382905
2023-03-21 10:14:08 -07:00
nobelj
0afe701ed5 qcacmn: Add fix to configure word mask
Add fix to configure tx monitor word mask.

Change-Id: Ica66f42de768398b1189dce3d5593c6fb884b35f
CRs-Fixed: 3437660
2023-03-20 23:22:35 -07:00
Shashikala Prabhu
f77ba421ee qcacmn: Add API to clear SOC from partner_map
Clear the target assert seen SOC from partner_map to disengage it from
umac reset process.

Change-Id: I588ae15977b1fd989b6dccb16c5fa3a5269f5f6c
CRs-Fixed: 3433794
2023-03-20 11:43:11 -07:00
Surya Prakash Raajen
7265d860b2 qcacmn: Add CDP api support to notify asserted soc info
Add CDP api support to notify asserted soc info to DP
umac reset module, to disengage a asserted soc from
umac reset process.

Change-Id: I92ee07ed90243567dab83d0686022c8327efe1b6
CRs-Fixed: 3428265
2023-03-20 11:43:02 -07:00
syed touqeer pasha
c928ef0e59 qcacmn: Add support for extended statistics with DS
Add support to handle the extended Tx completion
statistics during direct switch mode.

Change-Id: If1b6906d5d2b3156ead8ef039524f47e763cb543
CRs-Fixed: 3431840
2023-03-20 04:49:25 -07:00
Himanshu Batra
391bbecfcc qcacmn: Fix compilation error in dp_umac_reset_handle_action_cb
Fix compilation error in dp_umac_reset_handle_action_cb

Change-Id: I0a0506d9fb04ee3513617964f1f4f36cd755959f
CRs-Fixed: 3436442
2023-03-20 00:23:37 -07:00
Harsh Kumar Bijlani
2d75a88f1e qcacmn: Fix MLO link stats issues
Add link_id check while aggregatin stats into vdev at 
time of peer unmap, otherwise vdev stats are aggregated 
twice and hence give incorrect output.

Also comment out link_id fetch in BE Rx path as it is 
currently not enabled.

Change-Id: I91ceab4c6380bbd6e0cb2717adb2413e9e8e4221
CRs-Fixed: 3435688
2023-03-17 12:42:38 -07:00
Nandha Kishore Easwaran
ba9a08a6fc qcacmn: Delete peers when tx monitor is disabled
Delete the litemon peers added when tx monitor is disabled.

Change-Id: If604e0c121690919ac8364f70e2a471df1b7f794
CRs-Fixed: 3412125
2023-03-17 09:13:20 -07:00
KARTHIK KUMAR T
a53b5d3e62 qcacmn: avoid mesh vdev check incase of single dev model
avoid mesh vdev check incase of single dev model

Change-Id: I7faac78cb81cb1c152191b01f067d48ad8938d08
CRs-Fixed: 3425905
2023-03-17 07:20:06 -07:00
Devender Kumar
148d0de3e5 qcacmn: Add support for pmac_id in IPA driver
To support splitphy and MLO operation when multiple
TX ring are present under single soc, then to differentiate
the TX lmac, pmac id in per packet is require. As pmac_id in
bank register is always constant for pinnacle case, so need
to pass per packet in TX desc.

Change-Id: I8e5a832700770274e68bf8a04e97675386184545
CRs-Fixed: 3356413
2023-03-17 01:41:35 -07:00
Shashikala Prabhu
56160b1881 qcacmn: Add API to print UMAC reset stats
Add API to print UMAC reset and MLO UMAC reset related  stats.

Change-Id: I0925cb8df74a9d33633d180a4cbecd11856d67a5
CRs-Fixed: 3425706
2023-03-16 23:59:18 -07:00
Santosh Anbu
ea42206e31 qcacmn: York Scan radio monitor mode bringup
Initial changes for York scan radio bringup in monitor mode.

Change-Id: I99c9a6eea4c9bf2255b92975e3862500d31c2f1d
CRs-Fixed: 3421410
2023-03-16 19:02:36 -07:00
Neha Bisht
1c335ff769 qcacmn: Fix for mac address in WDI_EVENT_PEER_PRIMARY_UMAC_UPDATE
Fix for mac address in WDI_EVENT_PEER_PRIMARY_UMAC_UPDATE

Change-Id: I06b51bbcccff17e0e2665200c5961af3d63cd59c
CRs-Fixed: 3432531
2023-03-16 13:50:43 -07:00
Himanshu Batra
21a548ada6 qcacmn: Rename WLAN_TELEMETRY_STATS_SUPPORT to WLAN_CONFIG_TELEMETRY_AGENT
Rename telemetry agent macro WLAN_TELEMETRY_STATS_SUPPORT to
WLAN_CONFIG_TELEMETRY_AGENT

Change-Id: I9b2feb33b32daf56e584ae04f260749c358c8ea4
CRs-Fixed: 3425567
2023-03-16 13:50:32 -07:00
Manikanta Pubbisetty
8d58a4e757 qcacmn: Add TX enqueue logic for WCN6450
Implement TX enqueue logic for WCN6450. There are no host facing
UMAC HW blocks in WCN6450. Driver enqueues all TX packets to
copy engine (CE) over the copy engine channel that is mapped to
HTT_DATA2_MSG_SVC service.

Changes are specific to WCN6450 and hence implement the logic
in the arch specific code.

Change-Id: Ia366a74b94a4e84c1d4c037c7a99093bb6739178
CRs-Fixed: 3381755
2023-03-16 11:19:41 -07:00
Manikanta Pubbisetty
cd50866740 qcacmn: Handle flow map/unmap HTT messages for WCN6450
In the case of WCN6450, sizes of the TX descriptor pools are not known
to the driver during load time. The sizes are shared by the firmware
post VDEV creation via HTT_T2H_MSG_TYPE_FLOW_POOL_MAP HTT message.
After the VDEV gets deleted in the firmware, a corresponding flow unmap
HTT message will be sent to the driver to clean up the TX descriptors
of a particular VDEV.

Add logic to handle the flow map/unmap HTT messages for WCN6450. These
messages are specific to WCN6450 and hence the logic is implemented in
arch specific HTT code.

Change-Id: I8edcabbec77abae2c238f487acb7a48b478fd149
CRs-Fixed: 3381751
2023-03-16 11:19:31 -07:00
Manikanta Pubbisetty
6758a546bc qcacmn: Add TX descriptor changes for WCN6450
WCN6450 is a chip based on Rhine architecture. Unlike LI/BE targets,
chipsets based on Rhine (RH) do not have host facing UMAC HW blocks.
Their corresponding SRNG interfaces are also removed. The functionality
of these UMAC HW blocks is replaced with a software implementation in
the firmware. Communication between the driver and firmware will happen
over copy engine (CE).

Although there are no host facing UMAC HW blocks, the CE hardware used
in WCN6450 expects the host driver to use the TX descriptor (HW) format
of LI targets during TX packet enqueue. Therefore it is required to
create a new pool of TX descriptors (HW) pool for WCN6450 that is used
during TX.

The logic to create/free/init/deinit these descriptors is specific
to WCN6450/Rhine, therefore it is implemented in architecture specific
Rhine code.

Introduce new APIs in struct dp_arch_ops {} to allocate and free
arch specific TX descriptors. These ops will be no-op for LI/BE
architectures.

Also for Rhine targets, allocate/free other TX descriptors like TX EXT &
TSO descriptors as part of the arch APIs.

Change-Id: I452ac69143395881ab8580355a0f75571dc3e929
CRs-Fixed: 3381711
2023-03-16 09:30:15 -07:00
Manikanta Pubbisetty
24a8216db2 qcacmn: Refactor TX descriptor alloc/free/init/deinit logic
Currently, memory for all kinds of TX descriptors (TX EXT,
TSO etc) are allocated/initialised at once during the driver
init and freed/deinitialised during the driver deinit.
This logic is not suitable for WCN6450.

In the case of WCN6450, the size of the TX descriptor pool is
not known to the driver during load time; Firmware provides
the size of the descriptor pool via HTT_T2H_MSG_TYPE_FLOW_POOL_MAP
message post VDEV creation.

In order to add the support of WCN6450, it is required to
refactor the TX descriptor alloc/free/init/deinit logic.

Changes will not have any impact on the other supported hardware.

Change-Id: Iaa66fd5e118f0486bd618394fad070502bac34a0
CRs-Fixed: 3381705
2023-03-16 03:11:18 -07:00
Nobel Sharanyan Jeganathan
799d46a277 qcacmn: invoke hal api to populate word mask
Added hal api to populate word mask

Change-Id: Ic13fdb1fa4104618d67f3f7aae25681951d78581
CRs-Fixed: 3422903
2023-03-16 01:33:31 -07:00
Sai Rupesh Chevuru
6d70bfb469 qcacmn: Do not hold reference of partner vdevs
Do not hold reference of partner vdevs,
As we are storing the vdev_id's.

Change-Id: I1f2bf4f66a4d31cbdefc405d398d03dd9580a2a1
CRs-Fixed: 3406135
2023-03-16 01:33:21 -07:00
Devender Kumar
f230d96802 qcacmn: Properly set WDI version for WIN chipset
Set WDI version based on SOC architecture, set WDI
version to IPA_WDI_4 for QCA_WIFI_QCN9224 chipset,
else IPA_WDI_3.

Change-Id: Ib80435e5098cfbcb9f90d4ac9cfe81ea183f308a
CRs-Fixed: 3383949
2023-03-15 22:39:08 -07:00
Santosh Anbu
d20a5a657c qcacmn: York Scan radio monitor mode bringup
Initial changes for York scan radio bringup in monitor mode.
Update monitor filter settings.

Change-Id: Ib9468f11b71d0439d0bd63526f64f454ed6b5b4d
CRs-Fixed: 3421412
2023-03-15 22:38:56 -07:00
Chaoli Zhou
ddabd3eda4 qcacmn: Replace kzalloc/kfree with vmalloc/vfree
At continuous physical address limited telematics platform,
in order to avoid occasional memory alloc failure with big
kzalloc size, it's better to use virtual memory allocation
API instead. And below items will be refined to replace
malloc with valloc if CONFIG_ENABLE_VALLOC_REPLACE_MALLOC=y.

1 x 30488 = 30488B @dp_soc_attach:15189
1 x 52096 = 52096B @hal_attach:1104
4096 x 64 = 262144B @dp_rx_desc_pool_alloc:337

Change-Id: I57a6f78f690b5be1838de954933ae36129cea234
CRs-Fixed: 3426935
2023-03-15 20:59:27 -07:00
Pavankumar Nandeshwar
80d41dc9b4 qcacmn: Handle Umac reset for MLO case
1. Add an API to process trigger_umac_recovery T2H message.
2. Synchronize do_pre_reset, do_post_reset_start, do_post_reset_complete
   messages for all the SOCs and then process these messages in the host.
3. Synchronize pre_reset_done, post_reset_start_done,
   post_reset_complete_done for all the SOCs before sending it to FW.
4. Add a new state in host for trigger_umac_recovery message.
   Ignore back to back trigger_umac_recovery messages received from FW.

Change-Id: Id45d326d63e122834090844e83ad6cc7240f96af
CRs-Fixed: 3425833
2023-03-15 11:20:26 -07:00
Narayan Subramhanyan
ff85561570 Revert "qcacmn: Add manual ulofdma trigger bit in rx ppdu user stats"
This reverts commit I2a697f91e572f88a36f96085d15c90c679deaf0c.
Original change was added to support manual ulofdma trigger but it
needs to be reverted here due to a small tweak in design approach.
New design to be integrated and hence reverting this one.

Change-Id: I4c358db48298666c753aa89166a31adbba067e36
CRs-Fixed: 3429084
2023-03-15 09:31:33 -07:00
Gaurav Saini
c1d7a3b4dc qcacmn: Fix Tx ring index selection
For target SDX waikiki, Tx data/completion ring
value should be 3 else it is 2. so, Added a condition
to make a selection based on the target type.

Change-Id: I1fe65894c1c5dfa8f4d3efdd781dbfac0f6e2c04
CRs-Fixed: 3430265
2023-03-15 07:46:16 -07:00
Subrat Mishra
235202f7de qcacmn: Add RC index macro for Smart Antenna 320 MHz BW
Add Rate Code Index macro for Smart Antenna 320 MHz BW in per PPDU
stats processing path.

Change-Id: I880cbc5d54f333dc2f8938c1a4d3bd56b96b7a6e
CRs-Fixed: 3429317
2023-03-15 07:46:05 -07:00
Amit Mehta
4a4820f85a qcacmn: Fix monitor filter config
For beryllium target in monitor mode host only subscribe
to MSDU end and MPDU start tlvs, but during monitor mode
up as part of monitor filter reset host is subscribing to
all the tlvs.

To fix the issue only subscribe to MSDU end and MPDU start tlvs
on target basis

Change-Id: I1599559b1af0b5121a7c361db403da857988cc01
CRs-Fixed: 3429044
2023-03-14 10:37:33 -07:00
Himanshu Batra
fe8e699301 qcacmn: Add API to get osif handle for wds ext peer
Add API to get osif handle for wds ext peer

Change-Id: I1294acee12c9f4d12f8b8728f8d89e61fec81d9f
CRs-Fixed: 3430300
2023-03-14 05:00:19 -07:00
Karthik Kantamneni
2edb0c0388 qcacmn: Add RX handling for RHINE architecture
RHINE is soft UMAC based architecture which is not having
REO block, all the REO functionality will be implemented
in F.W and host level. Host will get the RX packets in
CE-RX rings in HTT format, to reap RX packets new HTT
messages will be extracted and parsed.

So implement RX handling based on new softumac architecture for RHINE.

Change-Id: If430dd017309e2b2a3eb5e27e1d8b58696abceb4
CRs-Fixed: 3382920
2023-03-14 01:41:05 -07:00
Jeff Johnson
2574da9bf9 qcacmn: Fix misspelling "sucsess"
Fix misspelling: "sucsess" => "success".

Change-Id: I93f4b97e2d753362843a08c86a947f936b563c28
CRs-Fixed: 3430188
2023-03-13 23:54:11 -07:00
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