Wykres commitów

20431 Commity

Autor SHA1 Wiadomość Data
Yu Tian
60d9ef02ec qcacmn: Add verbose log for RX frame dropping
Now only error counter is present in normal
datapath RX frame dropping. This change add
verbose log for easy debug.

CRs-Fixed: 3706290
Change-Id: Iae2fb9f6100109173921c4f1d43258a0722dc0de
2024-02-19 20:15:26 -08:00
Vinod Kumar Pirla
0d945daa64 qcacmn: Extend vdev stop and peer delete cmd for link switch
Enhance WMI command of existing peer delete and VDEV stop to
add new TLV to carry MLO params with link switch BIT set when
link switch is in progress.

Change-Id: I50b1aa48e4e2c976a56bcd3b75395eef6830e627
CRs-Fixed: 3663340
2024-02-18 22:37:29 -08:00
Ananya Gupta
e6b555af3c qcacmn: Rate limit desc sanity failure log
A crash was observed as the desc sanity failure log
exceeded 500 logs per second.
Rate limited the ring descriptor log to fix this.

Change-Id: Ic0d13bc48d05bfb3e2b715e4881e0e8b0329f572
CRs-Fixed: 3715208
2024-02-14 23:12:16 -08:00
Ananya Gupta
7b3f6814fa qcacmn: Set eht flag when the frame is 11be
In monitor mode, set EHT flag for packets for
11be frames when reading status TLV.

Change-Id: I8792bf7737dcf3efe69125218d5170d69f761142
CRs-Fixed: 3724725
2024-02-14 23:12:03 -08:00
Rahul Gusain
564d0238ea qcacmn: Add API to check NAN OUI
Firmware forwards certain action frames to host driver for NAN
functionality. Host driver forwards these frames to kernel.
Userspace may register for these frames on NAN interface and
receive the same.

So, filter the NAN action frames based on WFA OUI (0x50, 0x6f, 0x9a)
and NAN WFA version (0x13) and send them on NAN interface.
Add an API to check for the NAN WFA OUI + NAN WFA version.

Change-Id: I46640060299b9bff20f4b191c2c421deedf84e20
CRs-Fixed: 3694518
2024-02-14 07:13:19 -08:00
Rakesh Pillai
e406fb3ff4 qcacmn: Fix TID arg passing to dp_peer_rx_reorder_queue_setup
dp_peer_rx_reorder_queue_setup accepts a tid_bitmap as argument,
whereas the API dp_peer_rx_init_reorder_queue is passing only TID value.
This leads to rx_tid setup failure and thereby the BA window size is
set to 1 resulting in lower wlan throughput.

Fix this by passing the tid_bitmap to dp_peer_rx_reorder_queue_setup.

Change-Id: Ic8ab5615e0d2650e3077ed3a26ee68193ddc9787
CRs-Fixed: 3702382
2024-02-12 22:22:55 -08:00
Rahul Gusain
bfd5bae251 qcacmn: Store crypto keys at PSOC instead of PDEV
Currently, host driver allocates the memory for crypto keys in
PDEV. But during SSR, driver destroys PDEV and VDEV and keys are
deleted. This results in SAP starting in open mode after SSR as
the keys are not plumbed.

So, fix this issue by allocating the memory for crypto keys in
PSOC.

Change-Id: Ie97d94b340df9abb258da703286ce16e62a44253
CRs-Fixed: 3663797
2024-02-12 15:09:03 -08:00
Manikanta Pubbisetty
7e58813e0e qcacmn: Optimize force free logic in dp_find_missing_tx_comp()
Currently during runtime suspend, in dp_find_missing_tx_comp(),
TX descriptors are freed forcefully if the TX completions for
those descriptors do not arrive within 60 seconds.

In certain rare corner cases, there is a chance of TX buffer (that is
in the enqueue path) getting freed in the TX completion path due to
delayed completions. This results in NULL pointer dereference.
Following is the sequence of events for such a case,

1. dp_find_missing_tx_comp() frees a TX descriptor
2. Different buffer gets attached to the same TX descriptor
3. Delayed completion for the previous TX arrives and frees
   the buffer in point 2.

Defer the free in dp_find_missing_tx_comp() when there is a delta in
HP/TP for the TX/COMP rings. If HP & TP are not same, then there is
high chance of processing the delayed completion beforehand, thus
avoiding the aforementioned race.

Change-Id: Ia835928f85ea0f79d0187a55333cb8959d0a72e9
CRs-Fixed: 3721341
2024-02-12 05:21:10 -08:00
Vinod Kumar Myadam
f7205e9662 qcacmn: Add fix to invalid channel state on CSA for Legacy
While CSA, wlan_reg_get_bonded_channel_state_for_pwrmode function
returning invalid channel state for Legacy connection leads to
CSA failure.

This function wlan_reg_get_bonded_channel_state_for_pwrmode
is under macro 11BE feature flag, so for non MLO case returning
invalid.

To handle this issue in Legacy connection, remove 11BE feature
flag for wlan_reg_get_bonded_channel_state_for_pwrmode function.

Change-Id: I905cd84b6af1b91c6c4bf9b1cbaf6e2562dc62e2
CRs-Fixed: 3724006
2024-02-11 23:23:03 -08:00
Pragaspathi Thilagaraj
3918591d4f qcacmn: Parse roam abort reason in wmi_roam_result TLV
Add support to parse roam abort reason in wmi_roam_result TLV

CRs-Fixed: 3712575
Change-Id: I06481186852ce6a1b4b9466c76f96b3a2bddfa41
2024-02-09 03:51:42 -08:00
Aasir Rasheed
8479988cd3 qcacmn: Update link state status
This change is to update link state status in case
of WMI_MLO_LINK_STATE_SWITCH_EVENTID event.

Change-Id: Ia95c072aa9b2ccb64ca8a6b137d1f75bb6f87003
CRs-Fixed: 3721397
2024-02-09 00:24:51 -08:00
Sachin Ahuja
a305ae4885 qcacmn: Enhance QCA vendor with new SAR version
Add more SAR version numbers in the qca_wlan_vendor_sar_version.

CRs-Fixed: 3719790
Change-Id: Id7110cd6520f8b36497271f3c59c54845b050601
2024-02-08 02:14:40 -08:00
Dolly Kumari
24cd0c2bae qcacmn: Update no. of DWORDs for htt_tx_msdu_desc_ext2_t
This change is to update no. of dwords for htt_tx_msdu_desc_ext2_t
as new dwords have to be added by FW to pass
rx buffer address info to support opt_dp_ctrl.

Change-Id: I3edb0a32a1e340d715c00776254ab50aca93c4e0
CRs-Fixed: 3717471
2024-02-07 11:24:29 -08:00
Manikanta Pubbisetty
abe65a4d05 qcacmn: Enable CE-1 history for perf builds
Enable CE-1 event history for perf builds to have additional
information for debugging CE issues.

Change-Id: I4031517c1fe04566a891117db1fe076b53d870d8
CRs-Fixed: 3721865
2024-02-07 07:12:25 -08:00
CNSS_WLAN Service
52158589b3 Merge "qcacmn: Add support to send chan info for standby link" into wlan-cmn.driver.lnx.2.0.14 2024-02-07 05:05:49 -08:00
Abhinav Kumar
0e88ed7844 qcacmn: Add support to send chan info for standby link
As per new requirement, host should send proper values
to get_channel request from upper layer for standby link.

Upper layer can use these information to fetch CU values
for standby link and print on console.

Change-Id: I045b8c5a3035f96e55281bd31d3e0b8043df4cb7
CRs-Fixed: 3719534
2024-02-07 01:39:50 -08:00
Vinod Kumar Pirla
784c8b910d qcacmn: Add new vendor event to notify fw pagefault
Introduce new event type to notify userspace about FW
pagefault. Use this new vendor subcommand to send
pagefault address and count of pagefault to userspace.

Change-Id: I330675b194a0f220cc627a0722494ba36a0def61
CRs-Fixed: 3713819
2024-02-07 01:39:38 -08:00
Karthik Kantamneni
7e541922fe qcacmn: Wait for all the txrx tasks completion after rings drain
After draining txrx rings there is possibility of reg work
getting triggered to update rings write pointer, this
might cause the reg work to execute later after suspend
complete and cause allow suspend and prevent suspend count
to go out of sync. So make sure all the txrx dependent
tasks are complete after drain.

Change-Id: I30b0696cef4499cc1e92b4556488b58037520184
CRs-Fixed: 3717885
2024-02-06 03:35:13 -08:00
Karthik Kantamneni
65641d0d22 qcacmn: Wait for OOM worker thread completion before going to runtime
Currently out of memory worker thread completion wait is not present
before going to wlan suspend, this may lead to worked thread accessing
CE ring HP updates when wlan is in suspend state.

Avoid this by waiting for out of memory worker thread completion
before entering wlan suspend.

Change-Id: Id9d0ae9dc1de03f4e3d95bb6fac1c41ecbf7e202
CRs-Fixed: 3714467
2024-02-06 03:34:58 -08:00
Vinod Kumar Myadam
a4e329c71c qcacmn: Fix out of bound read issue in ESP ie parse
While parsing ESP IE from beacon/probe response frame,
the condition in loop to copy ESP_INFO from the ESP IE is
incorrect which will iterate for 5 times rather than 4 times,
this may cause OOB access.

data < ((uint8_t *)esp_ie + esp_ie->esp_len + 3)
Here adding 3 for esp_ie->esp_len, actually esp_len itself is
1 byte extra (esp_ len = ESP_ID_EXTN + ESP_INFO * 4),
but by adding 3 again will loop for one more iteration
this will cause OOB access.

Remove 3 in loop condition to avoid one more extra iteration
and ignore ESP_ID_EXTN element for total elements, in function
util_scan_update_esp_data.

Change-Id: Ia9226e483672369af36c6914e3ac914fe9de45e5
CRs-Fixed: 3710081
2024-02-05 01:37:59 -08:00
Amit Mehta
1c3aaa5b19 qcacmn: Fix delay req queue not update to date issue
Delay write of SRNG regs may happen on different CPUs.
Sometimes wmb may not sufficient to protect the update
in sequence.

So to fix update issue sleep and retry before checking
again for update.

CRs-Fixed: 3717683
Change-Id: I6c7916f91ecefa8175d3e3d9108d018fc8a42cfc
2024-02-04 22:12:14 -08:00
Jianmin Zhu
4c64c692a1 qcacmn: Avoid MLO sta connect duplicated BSS
After legacy STA connected 1 link of MLO AP as 11ax, MLO STA connect
same MLO AP, 1 link connect will fail for bss peer existed, tx queue
will be disabled, other links can't be used at all.

To fix it, when MLO STA select candidate AP link, if peer with BSS link
addr exist, disable the link.

Change-Id: Ib7e2f4cd43c8190c5e5fd0bb7786df41b022f518
CRs-Fixed: 3715997
2024-02-02 19:33:08 -08:00
Vinod Kumar Pirla
a8b3fe0035 qcacmn: Cleanup STA link VDEV connect API
Remove unused argument in mlo_send_link_connect() and
fetch MLD address from connect response to fill in
partner link connect request.

Change-Id: Iad6089c39d14115774cf1456341965cad8c0110d
CRs-Fixed: 3714999
2024-02-01 21:38:58 -08:00
Jianmin Zhu
56b867e257 qcacmn: MBSSID profile count
Profile count information not sent to firmware
when DUT associated to TX BSS.

Populate profile count for TX BSS profile.

CRs-Fixed: 3633267
Change-Id: I08a13fe785dbbf66f7ec3394d7aa72f685438619
2024-02-01 19:51:30 -08:00
Pooja T C
e1c471c791 qcacmn: Skip non trans bssid look up for WIN driver alone
Issue:
TA of the MBSSID basic trigger always shows up as:
00:00:00:00:00:00, when the STA connected to Non-tx
VAP, due to which peers are not responding to the
basic trigger frames and getting more response
timeouts. This results into a dip in the throughput
(due to excessive retries).

Fix:
In AP solutions, it is expected that the non trans
bssid could be 00:00:00:00:00:00, during vdev MLME
up operation. Hnece, the updating the vdev up params
(trans bssid, profile index, profile number), should
not be dependent on the valid non trans bssid.
This condition is valid for STA solution, hence added
a opmode check specific for AP.

Change-Id: I766182c6dd0aba93d861800146eb44d3e3f6a706
CRs-Fixed: 3669310
2024-02-01 19:51:17 -08:00
Jianmin Zhu
9bc183ab64 qcacmn: Don't allow MLO SCC link
When MLO partner link and assoc link are on same frequency, F/W will
assert.

To fix it, don't allow partner link is on same frequency of assoc link.

Change-Id: I01338dbbc0845e6f6284e4a374f5ad0a5cada334
CRs-Fixed: 3706613
2024-02-01 19:51:04 -08:00
Adwait Nayak
0b4d82980c qcacmn: Add sanity check to fix OOB issue
Add sanity check to fix OOB issue while generating scan entries
for beacon

CRs-Fixed: 3591858
Change-Id: I35b362bc89ab10fa2d2d6660263c726692384e07
2024-01-31 02:14:56 -08:00
Abhinav Kumar
3e44744502 qcacmn: Update proper center freq in mlo link info
FW sends "Center Frequency Index" as new center frequency.
via mlo sta standby csa event WMI_CSA_HANDLING_EVENTID.

Currently host uses value of Center Frequency Index (CFI)
directly to update center frequency for all links to
"mlo_link_info" structure. Due to this host maintains a
wrong value of center frequency throughout of connection
which leads to failure in calculation of bonded channel
in case of 6 GHz and 320 MHz connection.

Fix is to update center frequency in "mlo_link_info"
structure for all require link(s) as per CFI coming via
mlo sta standby csa event.

Change-Id: Iea04fb9b1c1c9b0dbd0be3647173708c47ea74be
CRs-Fixed: 3702255
2024-01-24 11:19:11 -08:00
Aasir Rasheed
6ecdcfe927 qcacmn: retry with same num links incase of assoc failure
Currently for any assoc failure the number of links part of the
association is reduced and retried with less number of partner links.

If the failure is due to "Association request rejected temporarily,
try again later" retry to the same with the same number
of partner links instead of downgrading the links.

Change-Id: Id2b50469a5265b0151c000b3bcead2db361ad152
CRs-Fixed: 3708221
2024-01-24 07:44:00 -08:00
Vinod Kumar Myadam
59d256f5ce qcacmn: Add frame length check in util_gen_link_reqrsp_cmn
While parsing probe response and assoc response frame,
timestamp data is copied to buffer variable without validating
the frame length. If received frame length is less than max
size of timestamp, this will lead Out-of-bound access.

Add frame length check with max size of timestamp before copying
from the frame received in util_gen_link_reqrsp_cmn.

Change-Id: I055ccc84d334316ecd772e19371d315274373c04
CRs-Fixed: 3699954
2024-01-23 04:59:20 -08:00
Aasir Rasheed
924e277dd2 qcacmn: update check for informing partner bssid to kernel
Currently, Host driver is updating partner bssid to kernel
based on number of link. In some cases number of link may be zero
leading to not updating partner link bssid to kernel.

This change is to eliminate number of link check for updating
partner link BSSID to kernel.

Change-Id: I2e2704aeaea0db41c4d82792808cc8765290cc7c
CRs-Fixed: 3707662
2024-01-21 08:55:39 -08:00
Deeksha Gupta
13c5f7f8d0 qcacmn: Fix ML IE copy from main frame to non-Tx VAP frame
Currently, while generating non-TX VAP scan entry from the
TX VAP beacon or probe response MBSSID IE, driver copies
the ML IE from MBSSID and main frame which lead to 2 ML IE
in the TX VAP frame.

Fix is, add proper check to copy the non-TX VAP ML IE from
MBSSID IE.

CRs-Fixed: 3708786
Change-Id: I93f2552fe8a0080ffc871b39b164fadd86df8ff0
2024-01-21 08:55:28 -08:00
Asutosh Mohapatra
817b9dfca7 qcacmn: Add support to validate roaming cfg file
Currently host is not validating roaming cfg file
per key and value and only checking if no unpermitted
characters are present in the file before parsing.

To address this issue, parse roaming ini file
only if no unpermitted characters are present in the key
and value otherwise fall back to roaming backup ini file.
If the backup file don't pass validation criteria's
then don't parse it as well.

Change-Id: I6068d41ed67698ec60c0985151282936590b1544
CRs-Fixed: 3678910
2024-01-19 12:22:30 -08:00
Manikanta Pubbisetty
e6fec28c32 qcacmn: Allocate memory from heap for NBUF references
Currently a fixed size array of 2K is used to hold the NBUF pointer
references for RX refill thread NBUFs. Since the queue length of the
NBUF queue is a compile time config, any length change beyond 2K
would result in overflow errors.

Allocate the memory for NBUF references dynamically instead to avoid
such overflow conditions.

Change-Id: I20680768faf20d7688ce33f68ce2aa2be2079be0
CRs-Fixed: 3707803
2024-01-19 12:22:19 -08:00
Vinod Kumar Pirla
d2815cb9cf qcacmn: Remove serialization command priority on HO fail
On HO failure driver triggers internal disconnect and if
the existing connection is two link MLO, then disconnect
is issued first on partner VDEV and later on assoc VDEV.

To avoid STA+STA roaming conflict where STA2 roamed to
STA1's BSSID and STA1 resulted in HO failure and to
prioritize STA1 cleanup so that STA2 will not fail during
peer create.
The original change I379c03138b70580f44c2b96489ada030ec6fc20e

This is leading to cleaning up assoc VDEV first followed by
partner VDEV, but DP component removes the entry of DP peer
on assoc VDEV cleanup as the expectation is partner VDEV
gets cleaned first followed by assoc VDEV. This is causes
reference leak on the peer.

To address this issue don't prioritize disconnect for
HO Fail case.

Change-Id: I8d5abd0bb5ded49527ce851b9155ad22d7dcf5a8
CRs-Fixed: 3708018
2024-01-19 12:22:08 -08:00
Yu Tian
9ae6559c96 qcacmn: Separate Peer state get call from fast path
Peer state could be queried from both fast path and
slow path. Change separates this call and allows log
print from slow path call.

Change-Id: Iad2cc209e15fe95366cd606c5daa6233f2c5535e
CRs-Fixed: 3700370
2024-01-17 00:37:50 -08:00
Rakesh Pillai
a5c5711971 qcacmn: Add vdev delete notify callback
Add vdev delete notify callback for DP vdev, which
is called when dp_vdev is freed. This will notify
the osif/non-cmn dp layer upon dp_vdev delete.

Change-Id: I22110ebd048066e84644c04b4903c50dd61c61a4
CRs-Fixed: 3696638
2024-01-17 00:37:37 -08:00
Alan Z. Chen
37cd1d31ac qcacmn: Add changes to compile on LTS 6.5 kernel
Add necessary changes for deprecated kernel APIs and other changes
in kernel code in order to compile on LTS 6.5 kernel.

Change-Id: I7c51b1d435090877d488f6433357ed1ed7c265b4
CRs-Fixed: 3663875
2024-01-16 08:16:17 -08:00
Lin Bai
7278b2ca6b qcacmn: Fix improper return value
Fix improper return value, to avoid compiler complain.

Change-Id: I21729bf96aa6561d6282bb456451e1e1a0748609
CRs-Fixed: 3674783
2024-01-16 08:16:06 -08:00
Lin Bai
737b028eea qcacmn: Fix code indent
Fix code indent issue, to avoid compiler complain.

Change-Id: I21729bf9aaa6561d6282bb456451e1e1a0748609
CRs-Fixed: 3674783
2024-01-16 08:15:56 -08:00
Lin Bai
6fbd10b2eb qcacmn: Fix function prototype and definition mismatch
Fix function prototype and definition mismatch,
to avoid compiler complain.

Change-Id: I21729bf9daa6561d6282bb456451e1e1a0748609
CRs-Fixed: 3674783
2024-01-16 08:15:45 -08:00
Lin Bai
ece2e29fdf qcacmn: Fix uninitialized variable used issue
Fix uninitialized variable used issue,
to avoid compiler complain.

Change-Id: I21729bf98aa6561d6282bb456451e1e1a0748609
CRs-Fixed: 3674783
2024-01-16 08:15:35 -08:00
Yu Tian
be177477de qcacmn: Check RX rings empty after received WoW ACK
After received WoW ACK from FW, there should be some RX packets
coming and IRQ delayed, if these packets are not got processed,
FW UMAC will crash. Change adds an explicit check and abort suspend
if rings are not empty.

Change-Id: I758e1b71d0f5fc9be8cab1bea0f3db20c1698ecc
CRs-Fixed: 3693657
2024-01-15 00:33:16 -08:00
Surabhi Vishnoi
a8d5f5b756 qcacmn: Fix compilation error observed with upstream kernel
Include <linux/qcom-iommu-util.h> file based on ANDROID_COMMON_KERNEL
macro as this file is not available in upstream kernel.

Change-Id: I2e56b33d290319352236d1faae3b29cd6362bc07
CRs-Fixed: 3682260
2024-01-12 11:44:14 -08:00
Surabhi Vishnoi
2e17c21b55 qcacmn: Enable CFG80211_SINGLE_NETDEV_MULTI_LINK_SUPPORT for kernel-6.6
Currently, CFG80211_SINGLE_NETDEV_MULTI_LINK_SUPPORT is enabled based on
__ANDROID_COMMON_KERNEL__ and kernel version greater than equal to 5.15.

Enable it for above condition or if kernel version is greater than or
equal to 6.6.

Change-Id: I12ae6bf116e37999c935012485651bfadf8b9b2a
CRs-Fixed: 3681611
2024-01-12 11:44:00 -08:00
Surabhi Vishnoi
1446cc3832 qcacmn: Fix mismatched format compilation error
Fix compilation error due to mismatched format type in log.

Change-Id: I9cb80f38ada13f623240fa1e5f3a53a632dac78d
CRs-Fixed: 3678442
2024-01-12 11:43:49 -08:00
Vinod Kumar Pirla
95b011605e qcacmn: Enhance allowed security modes for EHT via OEM cfg
Certain APs available to end users may allow EHT/MLO config
in non-WPA3 security modes (like WPA2). Current implementation
will not allow connection to such APs in EHT/MLO and instead
downgrades to 11ax mode.

OEMs may want to control this driver behavior via INI based
on the requirement. To allow connecting to such APs in EHT/MLO
a new INI is introduced as a bitmap. The default value of this
INI will not allow connection to any of those APs in EHT/MLO.

Change-Id: I3e657f3f4ba1f5efc9263cb90bcd1773233975ac
CRs-Fixed: 3693813
2024-01-11 13:09:30 -08:00
Vinod Kumar Pirla
c739c3b6cd qcacmn: Only allow partner links with matching RSN caps
Each link in MLO can have different RSN capabilities with
different AKMs, PMF capability, UC/MC cipher suites and so on.
For any choice of links for MLO connection, the AKMs of the
links should have one common AKM.

Eliminate partner links without overlapping AKMs from MLO
connection.
Modify partner link AKM to match assoc link AKM, so that
only overlapping AKM is chosen even though an AKM with
higher security exists for partner link.

Change-Id: I9573e938789a4b95ae824872845d31008861f6f2
CRs-Fixed: 3693814
2024-01-11 13:09:19 -08:00
Vinod Kumar Pirla
01e1c46c4e qcacmn: Generate ML prb rsp from assoc rsp
For non-TxMBSSID ML AP ML probe req may not receive any response
from MBSSID AP and later partner link may fail to connect as
scan entry is not present.
Introduce new flag to suggest whether the partner link scan entry
is present or not in the scan DB. If flag is set to true, generate
scan entry for such links.

Introduce new APIs which will generate ML probe resp using
the per-STA profile of partner link from assoc resp frame.

Introduce API to get the current candidate scan entry from
connect request.

Change-Id: I1c33956b01eb468afa26be5b0bfba634ee3a0aee
CRs-Fixed: 3675830
2024-01-10 09:54:22 -08:00
Karthik Kantamneni
29002e8730 qcacmn: Handle ipa_init when opt_ipa_wifi is not supported
Handle ipa_init when opt_ipa_wifi capability is not supported
by IPA subsystem.

Change-Id: I6a120589b4ba6b60a1c15420c545f4768cff047b
CRs-Fixed: 3695354
2024-01-10 04:43:19 -08:00