Commit graph

16013 Commits

Autor SHA1 Nachricht Datum
Sai Rupesh Chevuru
b43e679a58 qcacmn: Multicast support for MLO
Multicast support for MLO
1. Following functions are newly added.
	dp_rx_igmp_handler()
	dp_tx_mlo_mcast_handler_be()
	dp_rx_mlo_mcast_handler_be()
	dp_mlo_get_mcast_primary_vdev()

Change-Id: If215f843369e6e2621ef302b924e524c86f0d30b
2021-12-16 05:35:30 -08:00
Srinivas Pitla
64d845ab39 qcacmn: Increase number of PCIE groups
The current platforms support 4 pci slots, so increasing
WLAN_CFG_MAX_PCIE_GROUPS to 4 to have unique irq name

Change-Id: Ifca25ee075611c75a5fa5e56782835ad89d26f91
2021-12-15 19:03:41 -08:00
Gururaj Pandurangi
4e553bab35 qcacmn: Allow STA in LPI mode if AP ctry US and advertises LPI
The existing logic is if STA and AP have different ctry code,
and STA is in ETSI, then it operates in VLP mode irrespective
of AP ctry.
New logic would be if AP ctry is US and if it advertises LPI
power type in HE ops IE via beacon, then STA can advance to
LPI mode.

Change-Id: Ifbee7052854277c3d21ccd21b65b79edb5e89f46
CRs-Fixed: 3084589
2021-12-15 13:40:41 -08:00
Srinivas Pitla
3ced6a46de qcacmn: Add API to get partner link info
This API retrievs link address and link id of all partner links
in structure to the caller.

This change also includes few compile fixes for msgq mode

Change-Id: I2a30904a3b41876783de611ac14697338c617689
CRs-Fixed: 3091850
2021-12-15 09:43:41 -08:00
Rakesh Pillai
63ea23ade1 qcacmn: Parse 64-bit TLVs in monitor status ring for WCN7850
In WCN7850, the tlv header width is 64-bit and the tlv header
start is 8-byte aligned inside the monitor status ring desc.

Add changes to parse the monitor status ring TLV according
to the TLV header width.

Change-Id: I19860b871abbc3037174b9d0ae5ed6e52b1eb736
CRs-Fixed: 3084443
2021-12-15 08:44:09 -08:00
Rakesh Pillai
0115477838 qcacmn: Monitor mode ring process changes for WCN7850
In WCN7850, there is only one common RXDMA dst ring for
both the mac.

Add changes to process the common RXDMA dst ring for
status TLVs corresponding to either MAC monitor status
ring. Also use arch ops to get rx_desc from sw_cookie.

Change-Id: Ia2c004755bc4389b587d995286093a519b995cab
CRs-Fixed: 3084442
2021-12-15 08:44:04 -08:00
Rakesh Pillai
63233c05dd qcacmn: Initialize only 1 RXDMA DST ring for WCN7850
WCN7850 has only one RXDMA DST ring, as opposed to other
lithium family chipsets, which had 2 RXDMA DST ring.

Refactor the code to pick the number of rxdma destination
rings from CFG context.

Change-Id: I20d475c02690043e969bc7a78605809b8c6814ae
CRs-Fixed: 3084440
2021-12-15 08:43:59 -08:00
Srinivas Pitla
e9f0077a00 qcacmn: Add debug prints for MLO peer mgmt
This change adds debug prints in error cases to
print error and relevant info to understand issue.

Change-Id: Ie5670d535015f410e81bd5b06ce58046a02b19f0
CRs-Fixed: 3091155
2021-12-15 07:40:10 -08:00
Qun Zhang
015424e069 qcacmn: Consider freq diff instead of maxbw for autobw correction
Due to the maximun frequency range of reg rule CHAN_5835_5895_1
doesn't support bandwidth 80M, kernel has below check warning:

[ 27.297225] Invalid regulatory domain detected
...
[ 27.297334] __regulatory_set_wiphy_regd+0x168/0x1a0
[ 27.297336] regulatory_set_wiphy_regd+0x28/0x5c
[ 27.297858] hdd_send_wiphy_regd_sync_event+0x284/0x2e0 [wlan]
[ 27.298283] hdd_wlan_startup+0x39c/0x8d8 [wlan]
[ 27.298697] wlan_hdd_pld_probe+0x198/0x2cc [wlan]
[ 27.299106] pld_pcie_probe+0x7c/0xbc [wlan]
[ 27.299122] cnss_pci_call_driver_probe+0xf8/0x504 [cnss2]
[ 27.299136] cnss_pci_dev_powerup+0x1a4/0x24c [cnss2]
[ 27.299149] cnss_pci_register_driver_hdlr+0x4c/0x120 [cnss2]
[ 27.299163] cnss_bus_register_driver_hdlr+0x60/0xb0 [cnss2]
[ 27.299176] cnss_driver_event_work+0x21c/0x6c0 [cnss2]

Fix solution: update the maximum bandwidth of CHAN_5835_5895_1
to 40 and use freq diff instead of maxbw for autobw correction.

Change-Id: I0271f95d565d7789692bd5bfb17a1614f225e9e6
CRs-Fixed: 3082999
2021-12-15 07:40:04 -08:00
Yeshwanth Sriram Guntuka
454c7361e1 qcacmn: Check for system PM state before SW2TCL HP update
In SAP mode, intrabss forwarding can happen when system
suspend is in progress. This could potentially result in
a scenario where SW2TCL HP update goes through after
WOW_ENABLE command is sent to FW.

Fix is to check for system PM states and do an explicit
system wakeup if tx packet gets enqueued to SW2TCL after
wow is enabled. Flush the SW2TCL HP on system resume.

Change-Id: I8dcd108b0dc1d703168f2f7a0ef0627e4dc0b103
CRs-Fixed: 3087727
2021-12-15 07:39:59 -08:00
Ananya Gupta
e5a33cd5b6 qcacmn: Fix reo reinjection path
Add 2 hal soc ops, hal_msdu_desc_info_set and
hal_mpdu_desc_info_se for berilliyum datapath.
Attach hal_rx_msdu_ext_desc_info_get_ptr_be to its function
pointer.
Get reo queue descriptor address as a 5 byte value as in
beryllium datapath it is being obtained from rx packet tlv.

Change-Id: Ia58597384e1a3d5eec493b865a88bab4f209502d
CRs-Fixed: 3084532
2021-12-14 21:22:54 -08:00
Yeshwanth Sriram Guntuka
de814c9b16 qcacmn: Trace del reg write, ce tasklet latency, tx, and rx pkts
Use the tracepoints to trace delayed register write, ce
tasklet scheduling latency, tx, and rx packets.

Change-Id: I63a89276177a9d0466dcb0c831eeb8e938a2bf79
CRs-Fixed: 3081870
2021-12-14 21:22:49 -08:00
Manoj Ekbote
80e882aa2a qcacmn: Intra-BSS changes for MLO
Use chip ID and destination peer to determine the target soc
and partner vdev for Intra-BSS in MLO case.

Change-Id: I709c52e74426c5e81b50c8063cad7669c0e7002d
2021-12-14 18:13:29 -08:00
Wu Gao
28ed233c3c qcacmn: Populate additional params to CFR info for QCA6490
HAL changes to populate agc gain, CFO, rx_start_ts, mcs_rate and
gi_type to CFR info for QCA6490.

Change-Id: I6f6f47c87d40bd661162f764fb3a360230a56457
CRs-Fixed: 3086667
2021-12-14 15:13:42 -08:00
Jinwei Chen
96a3c195c2 qcacmn: change parameter name 'is_assoc_link' in cdp_peer_setup_info
Currently is_assoc_link flag in cdp_peer_setup_info just means first
link peer during MLO connection, but usually assoc_link is the
link which initialize MLO association and it will be the primary_link.
this introduce confusion with another flag is_primary_link.

Change it to 'is_first_link' in cdp_peer_setup_info

Change-Id: I8d14da73e6a3bbc39a4a527d6c0aa5667255e995
CRs-Fixed: 3090270
2021-12-14 14:09:34 -08:00
Ashish
2cb0e9b21e qcacmn: Move reg_get_6g_ap_master_chan_list out of AFC flag
Currently api wlan_reg_get_6g_ap_master_chan_list is declared
and defined under CONFIG_AFC_SUPPORT feature flag, since this is
a generic API and can be used by other functionalities as well.

With this change move wlan_reg_get_6g_ap_master_chan_list api
out of CONFIG_AFC_SUPPORT feature flag.

Change-Id: Ifa7b27895b4660bbf248fc2827472ba50c9df9a4
CRs-Fixed: 3090281
2021-12-14 14:09:29 -08:00
Santosh Anbu
fd747f6685 qcacmn: Move MLO mcast functionality under AP mode
Add change to move mlo mast functionality under AP mode check as it is
specific to SAP mode only.

Change-Id: Ib5254873331a095f69638137e46697d8de352a2f
CRs-Fixed: 3092320
2021-12-14 07:24:15 -08:00
aloksing
073955c672 qcacmn: Add missing endif for Wikiki
Add missing #endif for QCA_ENHANCED_STATS_SUPPORT

Change-Id: I0123b8c6afeb280bd3ddeda87da26328fea38aad
CRs-Fixed: 3092380
2021-12-14 05:24:45 -08:00
Yu Wang
f13b79ec7f qcacmn: implement mlo manager APIs for mlo link set active cmd
Add interface for sending mlo link set active cmd and
register the response handler.

Change-Id: Icd7cf3294cddec1aa4a417e29a22fcd6fbea0dfb
CRs-Fixed: 3036846
2021-12-14 01:43:34 -08:00
Vignesh U
b7b42cc588 qcacmn: Expand sub-channel array storage for 11be chipsets
The sub-channel array size was maximum of 8 sub-channels corresponding
to a maximum channel width of 160MHz. But with the introduction of 11be
higher channel width of 320MHz is possible.

Expand the size of sub-channel array to 16 to accommodate the sub-channels
of 320MHz in case of 11be chipsets.

Change-Id: I7ffd1a7c0f05085edff74b92e47ab5a0dab42ef0
CRs-Fixed: 3068405
2021-12-13 23:25:00 -08:00
Abhishek Singh
a83c541117 qcacmn: Remove Union in mlo_link_set_active_param
Remove Union between link_num and vdev_bitmap as
it is possible send vdev_bitmap along with link_num
for forcemode MLO_LINK_FORCE_MODE_ACTIVE_NUM and
MLO_LINK_FORCE_MODE_INACTIVE_NUM.

Change-Id: Ie15c5f20d7990baebee50bdc7a37734331eb891c
CRs-Fixed: 3090334
2021-12-13 19:13:31 -08:00
Lincoln Tran
b9c91b6554 qcacmn: Add synchronization to copied conn req
When accessing the copied connect request, concurrent accesses may
arise. This could cause a double free in certain scenarios. Add locks to
any write access so there is no unexpected behavior.

Change-Id: I011b8980d5756d7105704449af2dba6df1f23a8d
CRs-fixed: 3070966
2021-12-13 16:43:37 -08:00
Yeshwanth Sriram Guntuka
c399429018 qcacmn: Define few tx, rx and misc tracepoints
Define tracepoints for TCP, UDP, and other packets in
tx and rx. Also, define some miscellaneous to capture
delayed reg write and CE scheduling latency.

Change-Id: I1eafad7e367073060d742d7bf4ca3245d75cc25d
CRs-Fixed: 3080977
2021-12-13 08:04:58 -08:00
Yeshwanth Sriram Guntuka
d197c575bc qcacmn: Add support for wlan specific tracepoints
Add support for wlan specific tracepoints using
the existing tracepoint infrastructure exposed
by kernel.

Change-Id: I9e4d09443b97124252240cb6b9ee305acb1bf677
CRs-Fixed: 3077074
2021-12-13 08:04:53 -08:00
Chaithanya Garrepalli
f1e8e24f1a qcacmn: Change vdev aggregate stats for MLO
In Vdev aggregate stats get peer stats from MLO peer
if peer is primary link peer

Change-Id: I8c9e2406199cee05c5d81764d0187670c611402c
2021-12-13 04:55:10 -08:00
Santosh Anbu
9fc10c90b6 qcacmn: Add support to send partner link info in start cmd
Add change to send the mlo partner link info to FW as partof start
cmd.

Change-Id: I6f33e6ce5992a1e21d971667f9cc4de5b12c6b2c
CRs-Fixed: 3088902
2021-12-13 03:26:01 -08:00
Karthik Kantamneni
e79b8799c1 qcacmn: Fix compilation error in flow control switch case logic
In flow control code switch logic break statements are not used
intentionally, but compiler is treating this as error.
So to avoid compilation error add fall through comment.

Change-Id: Ic79b75c48554182fba7c4c0f3885e3a44347e2e7
CRs-Fixed: 3090182
2021-12-13 00:45:17 -08:00
Vikram Kandukuri
599a7dca32 qcacmn: Add WiFi Radar core utils
Add WiFi Radar core functions utils.

Change-Id: I74fd9e5f76d2a454a6de2f21a2080c17230f25ad
2021-12-10 07:35:18 -08:00
Vikram Kandukuri
8e863f6169 qcacmn: add wifi radar utils
Add wifi radar utils function for psoc,
pdev, vdev object creation handlers.

Change-Id: Ib7fc83238c90c045a9d91c756039a9c7ecfe21e1
2021-12-10 07:34:46 -08:00
Vikram Kandukuri
ccf6794c7e qcacmn: Add wifi radar dispatcher
Add wifi radar dispatcher APIs.

Change-Id: Ib3120604dcb5b2faa12420893fd0714dc5b2246e
2021-12-10 00:13:24 -08:00
Venkateswara Swamy Bandaru
73ffddd02d qcacmn: Update EHT capability IE as per D1.2 spec
Update EHT capability IE as per D1.2 11be spec

Change-Id: Idc27d9434e6c8134fee5b62cf28061c0a87bdb1c
CRs-Fixed: 3081129
2021-12-09 14:57:11 -08:00
Venkateswara Swamy Bandaru
73cdfcc102 qcacmn: Add EHT vdev multi user configuration defines
Add EHT vdev param multi user configuration defines for each
bit field of the param.

Change-Id: I5f064cff01d30a86086bec0a65561c10e72c613d
CRs-Fixed: 3052451
2021-12-09 14:57:06 -08:00
Bapiraju Alla
ca4b3fabf6 qcacmn: Add support to dynamic MAC address update
Currently, MAC address update is supported only when interface is down.
Because of this framework needs to issue interface down and interface
up to update the MAC address.

This is resulting in connection time increase when MAC address
randomization is enabled for every new connection.

To optimize the connection time, add support to update the MAC address
without bringing the interface to down state.

Change-Id: Ic3eff6a9571f885292021b2c178d26b0eace5042
CRs-Fixed: 3063475
2021-12-09 13:42:05 -08:00
Krishna Rao
a50a68c40d qcacmn: Generate Link Specific Assoc Request for MLO
Generalize the existing link specific assoc response generation
functionality to make it common between link specific assoc request and
assoc response generation, and expose modified APIs for both. Add
handling of Non-Inheritance IEs as well as fixed field parsing to both.
Add guard checks and other fixes.

CRs-Fixed: 3083541
Change-Id: Ibf642ddc6b40ce258d50f3eeb4f820648222a758
2021-12-09 13:42:00 -08:00
Shashikala Prabhu
190dfc287e qcacmn: Correct the ext element ID of Max Channel Switch Time IE
Use the correct ext element ID for Max Channel Switch Time IE.
As per the spec, the correct value is 52.

Change-Id: Ia2106a6c4e6d63167e112dfb6c85f84f50e028b5
CRs-Fixed: 3089809
2021-12-09 13:41:54 -08:00
Surya Prakash Sivaraj
9f020ef915 qcacmn: Fix MBSSID parsing for OUIs without subtype
Host splits MBSSID into individual scan entries. The IEs
added into the new scan entries should neither be in the
non-inheritance list nor a duplicate IE. Host checks duplicity
of Vendor specific IEs by comparing the OUI, type subtype of
the non-tx and tx BSSID IEs.

Adaptive 11r VS IEs doesn't have subtype, and host uses
IE data as subtype. In this case, even if both the IEs are
same, still both are added into the new scan entry. The
supplicant uses the capability from the first IE belonging
to the tx profile leading to connection failure.

In MBSSID parsing logic, add exception for OUI from this
specific vendor in the Vendor IE comparison logic.

Change-Id: I7bb6cc7ebe34a5f007b9b84c91d6db6c7fcf997b
CRs-Fixed: 3084721
2021-12-09 13:41:48 -08:00
Jianmin Zhu
e6821fc5fb qcacmn: Fix 11ac no rate info in monitor mode
PPDU nss is set as 0 illegally for qca6490, can't calculate rate.

Change-Id: I6d06d4cb220300e202f7b4f93e4e0eb1299cc8e6
CRs-Fixed: 3085590
2021-12-09 12:25:56 -08:00
Rakesh Pillai
773c505cde qcacmn: Fix monitor status tlv parsing for WCN7850
Fix the macros used for parsing the status TLVs
for WCN7850.

Change-Id: I8e22e5950b03e7a887afbea9d05cdddfdef83cbe
CRs-Fixed: 3084621
2021-12-09 12:25:51 -08:00
Santosh Anbu
1c97f0226b qcacmn: Rename peer create check to be MLD specific
Add change to rename peer create in MLO scenario to include MLO prefix
to void interpretation with generic peer create

Change-Id: I0ebf15964390275270e8b02d1e87df8532c63a0b
CRs-Fixed: 3075987
2021-12-09 12:25:46 -08:00
Santosh Anbu
cd43975f65 qcacmn: Allow peer create only when VDEV is in UP state
Replace the state check logic with the existing implementation
that is used to check if VDEV can allow peer create.

Change-Id: I7141ef4ace73e3aacee27e423b42c6c59c509b13
CRs-Fixed: 3075987
2021-12-09 12:25:41 -08:00
Shwetha G K
3c5ce319c3 qcacmn: Add MLO NAWDS support
Changes to support NAWDS (Non Association based
WDS) when MLO is enabled.
Since NAWDS repeater works without association, user
inputs capabilities and puncture_bitmap associated with
each link. The same information is to be passed to
mlme peer create API to configure the STA nodes per
capability & puncture bitmap provided by user.

Change-Id: Ia0722a454321bf9d408860276f852dd10712c12c
CRs-Fixed: 3077880
2021-12-09 12:25:36 -08:00
aloksing
9a4ae1a05a qcacmn: print tx/rx stats for 11BE
Add and initialize function pointer to print BE/LI stats

CRs-Fixed: 3071271
Change-Id: Ib9748d475ac583b7404fcc5f1207b8019c7671a6
2021-12-09 11:17:34 -08:00
aloksing
b726e009e7 qcacmn: rx stats update for WKK
Add function pointer to update stats for LI and WKK
Add new fields in structure cdp rx stats

CRs-Fixed: 3071271
Change-Id: I6a1d7afbdfe47d171335d55bf66d210d785f5a03
2021-12-09 11:17:28 -08:00
aloksing
b093d034a4 qcacmn: tx stats update for WKK
Add function pointer and initialize with function
to update stats for WKK
Add new fields in structure cdp tx stats

CRs-Fixed: 3071271
Change-Id: Ib1fd867e414b8a61cff4f462434c51541f925f62
2021-12-09 11:17:23 -08:00
aloksing
3637ac16b0 qcacmn: Move monitor mode HTT parsing from mon_1_0 to common
Moving HTT parsing to common file dp_mon.c
Initialize function pointer to stats ind handler for BE

CRs-Fixed: 3071271
Change-Id: I08fb98f8dbed075c3b49baebca399771bfb5077c
2021-12-09 11:17:17 -08:00
Yu Wang
66181cbbbb qcacmn: set valid MAC address for non-ML connection
Update MAC address for non-ML connection only when
MLD address is valid.

Change-Id: I8ff46acdc972bfed01cd1ec97d5dd960baf24a38
CRs-Fixed: 3084793
2021-12-08 22:03:26 -08:00
Dundi Raviteja
7be08f1577 qcacmn: Avoid possible out of array access
In function wbuff_buff_put(), there is a possibility to
access array out of boundaries for module slot and pool slot.

Add condition to check for array boundaries.

Change-Id: Iaf5a0ef6b2e712804717abf27d0c0d06862a04f5
CRs-Fixed: 3086342
2021-12-08 13:50:27 -08:00
Harsh Kumar Bijlani
974b9bee85 qcacmn: Correct the computation of pdev stats for ifconfig output
Memset Rx ingress stats of pdev to 0 when user makes a request
for ifconfig output for radio.
Also correct the computation of rx_errors stat for ifconfig radio
output.

Change-Id: I78110602b939db0117cf26ca0f8f70cd1ef7b1e8
CRs-Fixed: 3088982
2021-12-08 13:50:22 -08:00
Sai Rupesh Chevuru
deb7bbf8de qcacmn: Fix for HMT SOD insmod crash
In the case of MCC due to low power mode atomic operation in
accessing the bank is resulting the crash.
Fix crash by using spinlock for WIN and mutex for MCC.

Change-Id: I5bb49cbed32e41ad88bfaeb24496adb180e37551
2021-12-08 13:50:16 -08:00
Liangwei Dong
b6e8d7a2ce qcacmn: Set retry_limit_ext for MGMT frame send WMI command
Some p2p action frame needs big retry count than the default
max 15 retry count to get high tx successful ratio.
FW allocates 3 extra bits for retry count setup.
To use this field needs FW change in CR 3082533.
Set the extra 3 bits "retry_limit_ext" to "tx_param_dword0"
field for WMI MGMT send command. Existing 4 bits
"retry_limit" combines with this new 3 bits
"retry_limit_ext" to create a 7 bits retry count:
bit 0 - 3: retry_limit
bit 4 - 6: retry_limit_ext.
So Maximum 127 retries can be specified to a certain mgmt
frame.
To use this field needs FW change in CR 3082533.

Change-Id: I889933ea1750c03701ba8a60340f27e6c2594c1b
CRs-Fixed: 3082534
2021-12-08 12:41:42 -08:00