Commit Graph

3015 Commits

Author SHA1 Message Date
Chaithanya Garrepalli
e6440269ae qcacmn: Export wlan_objmgr_get_psoc_by_id API
Add qdf_export for wlan_objmgr_get_psoc_by_id
API

Change-Id: Ic079f60b0752de847701e517878ed4f3974ee66f
2021-12-22 00:54:11 -08:00
Yu Ouyang
b6a3f2fd44 qcacmn: Trim scan channel list
As requirement, concurrent mode, station 5G/2G scan need stop when AP
connected by peer station.

Condition:
STA + AP 5G (connected) + AP 2.4G	skip 5G scan
STA + AP 5G (connected)			skip 5G scan
STA + AP 2.4G (connected && 2.4G only)	skip 2.4G scan
Others concurrency			skip none

Add ini ch_list_trim_conc to enable/disable the feature. Default is
disabled.

Before send WMI_SCAN_CMD to firmware, call API
policy_mgr_scan_trim_chnls_for_connected_ap() to check if need
trim scan channel list. Which channel list need be trimmed

Change-Id: If4d1cf7347f757fb013ffcb4016e8e6f16859f42
CRs-Fixed: 3075068
2021-12-21 22:10:35 -08:00
Shashikala Prabhu
bb3953b75b qcacmn: Populate MLO Queit IE parameters in beacon template
- Add MLO Quiet IE related parameters in ml_bcn_partner_info structure.

- Populate MLO Quiet IE related parameters in the beacon  template.

Change-Id: I5a4a069d067bdbc5e7c44c407f51a504e9aba151
CRs-Fixed: 3088019
2021-12-21 10:23:25 -08:00
Shashikala Prabhu
0a725937cd qcacmn: Get pointers to per-STA profile CSA, eCSA, MCST IE
Parse the per-STA profile IE and save the CSA, eCSA, Max Channel Switch
Time IE pointers in partner_link_info structure.

Change-Id: Icac75e3ad1f45bd5325c9144db7732684ebb4512
CRs-Fixed: 3087692
2021-12-21 10:23:19 -08:00
Chaithanya Garrepalli
ed4b7bf28b qcacmn: Write Rx desc SPT on partner SOC
Changes to write Rx descriptor secondary page
tables on partner SOCs.

Change-Id: If89eff3425078aebb975463a01d0a45c9f5a21db
2021-12-21 01:10:24 -08:00
Himanshu Batra
78fb9d70d7 qcacmn: IPA changes to support SDX+Pine
IPA changes to support SDX+Pine.

Change-Id: I66ad2a2c3e2f142c54df3e35c867ee827ac1d687
CRs-Fixed: 3079952
2021-12-20 22:44:55 -08:00
Liangwei Dong
db8e2c1604 qcacmn: Disallow 6ghz scan entry without country IE
The two api have different result for country ie empty AP case
at present:
scm_is_bss_allowed_for_country : allow ap with empty country ie
reg_get_6g_power_type_for_ctry: disallow ap with empty count ie
Add check empty country IE in scm_is_bss_allowed_for_country
to align reg_get_6g_power_type_for_ctry.

Change-Id: I8c929bf0befa691f60861ceb8c63827cde400ae9
CRs-Fixed: 3093481
2021-12-20 10:55:24 -08:00
Srinivas Girigowda
c64646331b qcacmn: umac: Add TWT component ID
Add TWT component ID.

CRs-Fixed: 3085319
Change-Id: I200a9d1008fa0aae98b633c4433964b48a14d00d
2021-12-17 20:44:26 -08:00
Jayachandran Sreekumaran
b361cf7444 qcacmn: Function parameter update for mlme_max_chan_switch_is_set
Update the function parameter for mlme_max_chan_switch_is_set.

Change-Id: I0585e328b670f37cb0cd1eb1371ad63b1df1c5f0
CRs-Fixed: 3095312
2021-12-17 20:44:21 -08:00
Krishna Rao
c6f1baf93f qcacmn: Rectify decrement of unparsed Non-Inheritance IE length
At the point in an MLO Manager utility function where we process the
length of the Element ID Extension List in the Non-Inheritance
Information Element, rectify the decrement of the unparsed length so
that it is decremented by the length of the Element ID Extension List
rather than the length of the Element ID List.

CRs-Fixed: 3095660
Change-Id: If4913a47762bc96f26875a04da2880409353fb0e
2021-12-17 01:04:23 -08:00
Abhishek Singh
f8e482d488 qcacmn: Remove unused SBS specific code
Remove unused SBS specific code.

Change-Id: I2e35eee885b2a70fd78ff48acc9d2a96e9573b77
CRs-Fixed: 3093793
2021-12-16 23:12:53 -08:00
Arun Kumar Khandavalli
eb3e1b4096 qcacmn: Reset the vdev response timer during SSR
Presently, whenever there is any kind of reference leak in the system
wlan driver doesn't recover and goes into a bad state.

Add support to forcefully reset the vdev response timer so the system
can gracefully recover and wifi can be functional.

Change-Id: Iab705c17f4313e4b8efd980d5427bf8d4ce9496f
CRs-Fixed: 3051962
2021-12-16 16:12:48 -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
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
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
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
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
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
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
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
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
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
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
Lincoln Tran
3bb859e795 qcacmn: Retain link disconnect source if northbound
If the MLO module is sending link disconnect from the north, retain its
disconnect source. If it is a southbound disconnect, update the source
to be from MLO manager. This is needed so some legacy modules handle the
disconnect properly and send vdev stop when appropriate. Also make sure
that the SB disconnect will be processed if the link is in connecting
state.

Change-Id: I6644751934697496147b9177ee7beab4d7355e10
CRs-fixed: 3086012
2021-12-07 22:39:25 -08:00
Rohan Dutta
a6be671ddf qcacmn: Clone security params for MLO STA
Clone security params in MLO STA over the partner links.

Change-Id: I06ba32e384244fe983ecf56d7743c89b33524d6f
2021-12-07 11:15:42 -08:00
Vignesh U
0e0728fe13 qcacmn: Deliver CAC Events on curchan and prev chan
Use DFS curchan and prevchan to deliver DFS CAC Events.

When CAC is started, deliver WLAN_EV_CAC_STARTED on all the sub-channels
of the current channel. In order to reset the CAC_DONE state of the
previous channel, deliver the WLAN_EV_CAC_RESET event on all the
sub-channels of previous dfs channel. If the previous channel was non-dfs
channel the CAC_RESET event need not be delivered. Since in the case of
ETSI domains retain the CAC_DONE state CAC_RESET event need not be
delivered for this case too.

Change-Id: Ia1083828f9e2e269fd17969bc4f8d642e938990d
2021-12-06 23:55:34 -08:00
Shiva Sankar Gajula
c2d0e0aca1 qcacmn: update the vdev crypto params form the connect req during roam
With existing STA code changes, The vdev crypto params are filled
in cm_connect_active() but when STA tries to roam from WPA2 AP to
WPA3 AP or vice versa, the new keymgmt of AP2(AP2 keymgmt is FT-SAE
if STA roams from WPA2 to WPA3 and AP2 keymgmt is FT-PSK if STA
roams from WPA3 to WPA2 AP's) is not updating in the vdev crypto
params instead it holds the AP1 keymgmt.

So, Adding changes to update the vdev crypto params from the connect
request structure during roam.

Change-Id: Ia0ddd6192a45f5d9e37b44665aded5a1fc573243
2021-12-06 06:26:48 -08:00
Ashish
1dcd308bb3 qcacmn: Consider gindoor_channel_support ini to decide ap_power_type
Currently driver does not consider gindoor_channel_support ini
when it decides the ap power type and because of that it always
decides ap power type as VLP. Driver should consider this ini
value as well because this INI says that indoor channels are
allowed so driver should set ap power mode as LPI to allow
LPI power mode.

Change-ID: Id7ad546ba23ce210497002e3083a22f1edc87185
CRs-Fixed: 3085997
2021-12-06 02:44:48 -08:00
Himanshu Batra
14325a4a60 qcacmn: Clear MLO cap only when it is the last disconnect req
Clear MLO cap only when it is the last disconnect req as osif would not
have informed userspace for other disconnect req because of
cm_id mismatch

Change-Id: Ifcfde3e0efd6fb28e73679cbbccfa6f64ed35902
2021-12-06 02:44:37 -08:00
Venkateswara Swamy Bandaru
d2d8b77ec4 qcacmn: Add support for 11be D1.2 eht mcs map
Add support for 11be D1.2 eht mac map.

Change-Id: Ie5e0934f01c5614c0d2788d9b56b2e755ea23b1d
CRs-Fixed: 3081122
2021-12-05 22:53:43 -08:00
Jianmin Zhu
50eb6fef18 qcacmn: Fix deadlock for race condition
When connect from wpa_supplicant and roam from F/W happens at same
time, supplicant hold cm cm_req_lock and wait rsp from scheduler
thread, sheduler thread is blocked to wait for cm_req_lock.

Change-Id: I6b9010972d29be9a32d3b85ee72891ed62b50801
CRs-Fixed: 3087193
2021-12-04 20:51:25 -08:00
Srinivas Pitla
df5958c77b qcacmn: Add API to get PSOC by PSOC ID
This change defines an API to get PSOC object
with PSOC ID.

Change-Id: I4c0d63fa480ac33e0471a6e679934b30e3670f8e
2021-12-04 20:51:21 -08:00
Yu Wang
2cec5acc85 qcacmn: move MLO related common definitions to umac
WMI includes are not part of include path in some WIN projects,
move MLO related common definitions to wlan_mlo_mgr_public_structs.h.

Change-Id: If63c82bc15a2a0e0a045be896b74ea9addb3a64d
CRs-Fixed: 3083776
2021-12-03 03:05:22 -08:00
Yu Wang
a9ed2d6a47 qcacmn: implement target_if APIs for MLO
Implement target_if APIs for MLO.

Change-Id: I29c6ea51e29f4ea200e3f47960168dfa9a8c42cc
CRs-Fixed: 3036844
2021-12-03 00:54:14 -08:00
Surya Prakash Sivaraj
c4e6b83afe qcacmn: Update preauth candidate entry to scan table
During SAE roam auth offload, update the beacon/probe response
frame coming from the FW via WMI_ROAM_FRAME_EVENTID into the
scan db.

When the bss info of the preauth candidate is unavailable in
the host/kernel scan entry, supplicant fails to determine the
proper SAE PWE config of the peer and the commit request fails.

Change-Id: I8537147104f30b74ffb2e87946f2e5f4b129f0df
CRs-Fixed: 3075460
2021-12-02 12:15:07 -08:00
Himanshu Batra
b9f1cd3492 qcacmn: Update mlo connected_links_bmap for self vdev
As part of mlo connect notification, connected_link_bmap is gatting
updated for partner links, but for assoc link also this needs to be set
Add fix to update mlo connected_links_bmap for self vdev

Change-Id: I4d64d97e67484dac2e96a3d22b5648ec2bc320d4
2021-12-02 07:15:21 -08:00
Jyoti Kumari
9f3995df8f qcacmn: Add support for lower span active and passive dwell time
Add LOW_SPAN_ACTIVE_DWELL_TIME and LOW_SPAN_PASSIVE_DWELL_TIME
macro support to keep all 2.4g/5g active/passive dwell time
same for low span scan mode.
Disable adaptive dwell to firmware so that firmware cannot
modify dwell time.

Change-Id: Iff05dd7b37a40226c61b28a1e59ea8aa8c57cb52
CRs-Fixed: 3076163
2021-12-02 02:25:11 -08:00
Kai Chen
ddc9f472ac qcacmn: Enable MU sniffer mode
Enable MU sniffer mode. MU sniffer mode support match and wildcard
mode.

Change-Id: I919b99ccabfba8f2e3b877831f473f8cf674b59d
2021-12-02 00:06:46 -08:00