Commit Graph

17724 Commits

Author SHA1 Message Date
Srinivas Girigowda
7cb3b7dd47 qcacmn: Fix issues reported by static analysis tool
Add changes to fix issues:
1. Array out of bound access
2. Arithmatic expression overrun

Change-Id: Idf9bdea33422015e0310e57d005f7d6941f8151e
CRs-Fixed: 3298301
2022-09-26 17:43:48 -07:00
Linux Build Service Account
b6ef284e96 Merge "qcacmn: Separate GetFrameControl API's for LI chipsets" 2022-09-26 12:34:43 -07:00
Linux Build Service Account
4fad936dbc Merge "qcacmn: Fix incorrect value of gi in rx stats" 2022-09-26 12:34:43 -07:00
Kenvish Butani
a16d867018 qcacmn: Separate GetFrameControl API's for LI chipsets
For 802.11 Fragmented frames, currently there is a
generic GetFrameControl API from RX TLV for all Li
Chipsets. As the offset for frame control in RX TLV
is different for QCN9000 and QCA8074V2, reading the
frame control with generic API gives wrong frame
control value. The Offset is different as the size
of RX_MSDU_START struct is 8DWORDS in QCA8074v2 while
it is 9DWORDS in QCA9000. In the reo reinject path
the destination queue descriptor address read from ring
descriptor address is Invalid

Fix is Separating out the GetFrameControl API from
generic API to Chip specific API. Also fix the reading
of queue descriptor address.

CRs-Fixed: 3280809
change-Id: Ifc5eca31b9b7e70c84ca455d56a58c27601cd51d
2022-09-26 10:48:59 -07:00
aloksing
1a5b0d838e qcacmn: Fix incorrect value of gi in rx stats
Increase GI bit size to 2 to store all possible GIs.

CRs-Fixed: 3292869
Change-Id: I7337e36397f3354458deed16823e4092b8277638
2022-09-26 10:48:52 -07:00
Linux Build Service Account
095f075f16 Merge "qcacmn: Add ring stats for direct switch rings" 2022-09-26 08:54:06 -07:00
Jianmin Zhu
e44fc21aea qcacmn: Fix partner link scan entry generated with wrong bssid issue
When partner link probe rsp is generated from ML probe rsp, bssid is
filled wrongly, then scan entry with wrong bssid is added, if no beacon
or probe rsp of partner link is received, then candidate can't be found
by partner link bssid, partner link connect fails, at last MLO connect
fails.

Change-Id: I3fa51dbde1cf9d8e256ecfc17059660a4430056a
CRs-Fixed: 3298706
2022-09-26 02:04:37 -07:00
Pavankumar Nandeshwar
c3630a234b qcacmn: Add ring stats for direct switch rings
Add ring statistics for reo2ppe and ppe2tcl rings

Change-Id: Ib9c15ba2f95d5cb97d238afad8f6f93dc5100e82
CRs-Fixed: 3279422
2022-09-26 02:04:31 -07:00
Tallapragada Kalyan
27da15777b qcacmn: initialize BE specific HAL API callbacks
certain BE specific HAL APIs were only initialized for
KIWI chipset but not for WKK. Now moved all these APIs
under beryllium generic initialization.

These APIs are mainly used in de-frag pkt handling.

CRs-Fixed: 3294784
Change-Id: I6611f1b7ef80b432d24a490ba65880dd55539137
2022-09-26 02:04:24 -07:00
Linux Build Service Account
95f6824d47 Merge "qcacmn: Handle failure during service ready(ext/ext2) handling" 2022-09-26 00:37:54 -07:00
Linux Build Service Account
e47f5a9021 Merge "qcacmn: Add Link Info definitions for Reconfig ML IE" 2022-09-26 00:37:53 -07:00
Shivam Kumar
52c19ba631 qcacmn: Handle failure during service ready(ext/ext2) handling
Any error during ext/ext2 processing should stop normal init
path and return error. Without this, wrong values are passed
to firmware in WMI init which result in firmware assert.
Add proper handling to take care of failures during svc ready
message processing

Change-Id: Id22714a983d1dc2fe7300a178933cd05bf870a55
CRs-Fixed: 3290131
2022-09-25 23:11:07 -07:00
Krishna Rao
2bac69b79e qcacmn: Add Link Info definitions for Reconfig ML IE
Add the following definitions related to the Reconfiguration variant
Multi Link element:
- Fixed fields of Per-STA Profile subelement in Reconfiguration
variant Multi-Link element Link Info field.
- Definitions related to STA Control field of Per-STA Profile
subelement in Reconfiguration variant Multi-Link element Link Info
field.
- Definitions related to STA Info field of Per-STA Profile subelement
in Reconfiguration variant Multi-Link element Link Info field.

Change-Id: I4f5a06a60461f37f6a45bf4c15f203980c0e22b9
CRs-Fixed: 3296891
2022-09-23 22:38:21 -07:00
Krishna Rao
d1a389d7a2 qcacmn: Add control and common info definitions for Reconfig ML IE
Add the following definitions related to the Reconfiguration variant
Multi Link element:
- Encoding for Reconfiguration variant in the Type subfield in
Multi-Link element Control field. (Additionally for completeness, add
the missing encodings for TDLS and Priority Access variants for this
subfield).
- Definitions for bits in the Presence Bitmap subfield in
Reconfiguration variant Multi-Link element Control field.
- Definitions related to Reconfiguration variant Multi-Link element
Common Info field.

Change-Id: Ie5f89438533f372cd020831a0de0fdafac94d6af
CRs-Fixed: 3296867
2022-09-23 21:53:39 -07:00
Bing Sun
cb2c6707f6 qcacmn: Add API to update peer channel width and puncture parameter
Add API to send peer param WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP

Change-Id: Id05629b12059ff2258e196b3e9aa78f5fb52bda4
CRs-Fixed: 3269745
2022-09-23 20:20:55 -07:00
Ruben Columbus
15e2647ec7 Revert "qcacmn: add reo bit to enable reo qref in fw"
This reverts commit Ib8d4a2f6e7f598d45ba2b2c628ed6f3929fc3337

Change-Id: I00c1fe824d3776961180cc82ec398c0f9da9b403
CRs-Fixed: 3292473
2022-09-23 12:45:52 -07:00
Prakash Manjunathappa
60c0c089cd qcacmn: Free the raw mode mpdus in REO error ring
Raw mode mpdus in REO end up resulting in NULL_QUEUE_DESCRIPTOR error.
Raw mode mpdus are not expected in REO, free them without further
processing.

Change-Id: Ica920caecf90a1107ce17836051e1019c9dfc994
CRs-Fixed: 3282836
2022-09-23 10:23:44 -07:00
Amit Mehta
499b2deb3b qcacmn: Fix uninitialized scalar variable issue
Fix uninitialized scalar variable issue

Change-Id: I96163a9163fd4b25a3ce534915353675f582f0c9
CRs-Fixed: 3297589
2022-09-23 06:54:46 -07:00
Gerrit - the friendly Code Review server
aa8d975047 Merge changes into wlan-cmn.driver.lnx.2.0 2022-09-22 18:58:41 -07:00
Abhishek Singh
3ec922f543 qcacmn: Avoid using igtk key index for Mcast WEP key
Use def_tx_keyid for Mcast wep key.
Also reset all the key index in wlan_crypto_free_key once igtk,
bigtk and Ucast/Mcast are freed, so that their values are not
carried to next connection.

Change-Id: I9a1e8715c54f47905889511f983b3127b9b5cfcd
CRs-Fixed: 3297270
2022-09-22 10:41:39 -07:00
Himanshu Batra
eaea81b4f2 qcacmn: Add API to find if blocking cmd is present in serialization queue
Add API to find if blocking cmd is present in serialization queue

Change-Id: Ia37e47f03a69dd81ecf3ae693e1ae7610908ca32
CRs-Fixed: 3296751
2022-09-22 10:41:31 -07:00
Aditya Kodukula
7e71dbe627 qcacmn: Disable 11be functionality when not supported by fw
Disable 11be functionality when not supported by fw

Change-Id: Ifb90893e15c9bc74aac3aab75220a0d5c866dd59
CRs-Fixed: 3291962
2022-09-22 06:09:51 -07:00
Utkarsh Bhatnagar
bf2b82dec7 qcacmn: Match vdev as well while cancelling ser cmd
For a particular vdev, If one of such same CMD id
is needed to be cancelled, either
wlan_ser_cancel_scan_cmd() is called if cmd is scan
cmd or wlan_ser_cancel_non_scan_cmd() is called if
cmd is non-scan cmd.
For both the cases, currently cmd_id is iterated
among pdev serialization cmd queue and if cmd_id
is matched then that particular id is flushed.
Since in per vdev cmd_id, same ids can be assigned
across multiple vdevs and it may be possible that in
the pdev serialization cmd queue, different vdev can
enqueue the same cmd id.
Hence, with current condition that only checks for
cmd_id may result in incorrectly cancelling the
same cmd_id for different vdev.
To prevent this, along with checking for cmd id
and type, check for the valid vdev and remove
the cmd corresponding to that vdev only

Change-Id: I10d37588a52e8d3209c7521782716e2358e57079
CRs-Fixed: 3295516
2022-09-22 06:09:44 -07:00
Huashan Qu
75cc8cdf78 qcacmn: Update Automotive Regulatory Database to 40th version
Update Automotive Regulatory Database to 40th version, sync with
change 'Change-Id: I7fa7f1e9f3e6fcd6aa6ecd5aa21bd4e82aeb19a0'

Replicate 'Country Mapping for Linux Android' table for 'AUTO'.

Change-Id: I8dcee18ae3bb687f5724f18ece0cff9e2144b558
CRs-Fixed: 3293159
2022-09-22 02:21:50 -07:00
Jianmin Zhu
fb43cc12b8 qcacmn: Fix scan with random address failed since wdev is connected
Reproduce steps:
1.	Connect from OSIF success, wdev->connected = true;
2.	Disconnect from target if and reassoc from OSIF happens back to
	back.
3.	Disconnect event is not sent to kernel, wdev->connected keeps
	true, isn't cleared.
4.	Connect from OSIF failed too, wdev->connected keeps true,  isn't
	cleared.
5.	Scan with random address failed since wdev->connected is true.

To fix it, if connect req was a reassoc req and received in not connected
state for race between disconnect from target if and reassoc connect from
OSIF, set reassoc_in_non_connected to send disconnect instead of
connect rsp to kernel to cleanup kernel flags like: wdev->connected.

change-Id: Ibbe38da14e9339b49589216250453b76c7387b57
CRs-Fixed: 3290496
2022-09-22 02:21:43 -07:00
Jia Ding
1f49ac1d70 qcacmn: Fix qdf abstraction for IPA rx_bank_id
rx_bank_id defined in IPA driver is a write parameter for WLAN.
Therefore abstract the QDF macro in a set way, where bank id
obtained from wlan driver is passed as an input parameter to
the macro and rx_bank_id field is then being set within the macro
itself.

Without the fix, setting the bank id to IPA driver is like
MACRO_FOO(foo) = val. On build targets with kernel version < 5.15.41,
this can lead to unexpected build error.

Change-Id: I727b8af0ad7bd076e7756b51682842e947eb0a36
CRs-Fixed: 3291711
2022-09-21 21:38:43 -07:00
Jia Ding
b6c2183b7a qcacmn: Setup bank id for IPA TX pipe
Get bank id initialized for IPA usage from DP layer and pass it up
to IPA driver.

IPA is not able to handle bank id on a per-interface basis, and
hence set up same bank id for both TX pipes.

Change-Id: I69632a5e4e2ae115ef9131d5579822b82c001fca
CRs-Fixed: 3289537
2022-09-21 21:38:36 -07:00
Deeksha Gupta
4b36439025 qcacmn: Add 11be eht_cap changes in SAP mode
Add 11be eht_cap changes in SAP mode.

Change-Id: I9c27e079276d8ea7eebda97954a69a485fa6d828
CRs-Fixed: 3265712
2022-09-21 21:38:28 -07:00
Surabhi Vishnoi
997b924222 qcacmn: Reduce log level from error to debug in wlan_vdev_get_bss_peer_mac
Bss peer can be NULL in case of vdev in disconnected state,
so change the log level from error to debug in 
wlan_vdev_get_bss_peer_mac() to reduce logging in dmesg.

Change-Id: Idac08200253d83f267be3381691e10d6bd4b52bf
CRs-Fixed: 3293402
2022-09-21 20:02:58 -07:00
Ananya Gupta
a4b2a03200 qcacmn: Pause Tx HW enqueue when bus suspend in progress
In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, do not update HP when apps suspend is in progress.

Change-Id: Id4176224563bdd759828397fa1cd23de1598192e
CRs-Fixed: 3294407
2022-09-21 20:02:51 -07:00
Krunalsinh Padhar
aaa7ef6872 qcacmn: Add API wlan_mlo_peer_get_links_info
This change adds API that searches for the primary peer in the peer list.

It returns vdev link id of the primary peer.

Change-Id: I43bef7ec56c5785669f217d63a15f95717f8d349
CRs-Fixed: 3280575
2022-09-21 16:49:18 -07:00
Sreeramya Soratkal
fd8b102007 qcacmn: Validate status of spectral control request processed
Validate the result of spectral specific ucfg control operation
after processing the control request to get the spectral system
capability information and the spectral diag status.

Throw error if it is an invalid operation.

CRs-Fixed: 3272699
Change-Id: Iba1b165caa41a7b4a133e9d9f3df7203a60a2b75
2022-09-21 09:34:44 -07:00
Deeksha Gupta
42039b3f6b qcacmn: Add partner link bssid debug print
Add partner bssid debug print in cm_update_partner_link_scan_db().

Change-Id: Ied3b089d983bb1338b1944c57a9e62144edc34e2
CRs-Fixed: 3278872
2022-09-21 03:40:57 -07:00
Tallapragada Kalyan
f3d7c5cd52 qcacmn: perform length sanity check for all chipsets
length sanity check is now performed for all the chipsets
in RX error path

Change-Id: I2a2c136d29319a463908c0f5cdbc463fc5a38bca
CRs-Fixed: 3290123
2022-09-20 23:26:50 -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
jinbaoliu
46796f2eb5 qcacmn: Fix failing to get rx rates stats when in MLO mode
In MLO mode, there are 2 link peers and 1 MLD peer. TX/RX stats
is kept in txrx_peer, which only exists in MLD peer. This change
aims at fixing HDD failing to get rx rates info when in MLO mode.

Change-Id: If476216a6b0d1c006fbc0d45a3cbfbb0be79efd3
CRs-Fixed: 3287090
2022-09-19 21:02:54 -07:00
Karthik Kantamneni
276f3b27ac qcacmn: Add rind id info in TX HW descriptor history
Add ring id info in TX HW descriptor event history,
this helps to map history event to corresponding HW TX
ring in multi TX queue enabled case.

Change-Id: I82dcece76b1342f4086d489ba489da7c20ea6cad
CRs-Fixed: 3294177
2022-09-19 17:50:41 -07:00
David Oladunjoye
8be4fef5d9 qcacmn: QCA vendor attribute to configure periodic sounding
Add a new QCA vendor attribute to configure the periodic sounding for Tx
beamformer functionality.

Change-Id: Id4b75e992e22facdc58b467aaed29d9b00901fad
CRs-Fixed: 3290371
2022-09-19 14:54:16 -07:00
Nandha Kishore Easwaran
206e856a73 qcacmn: Fix subtype filtering for ctrl frames
Fix subtype filtering for ctrl frames. This change is needed
because ctrl frames are generated in the host and subtype filtering
is always required.

Change-Id: Id4fa25103387af38f658851495793249776c1985
CRs-Fixed: 3284207
2022-09-19 03:16:36 -07:00
Hariharan Ramanathan
fbe9b32cc7 qcacmn: Fix compilation issues in QCA5332
Fix for QCA5332 compilation issue.

Change-Id: I4fa9109de58d6f71c90c13c0869e11e4a3171d78
CRs-Fixed: 3291993
2022-09-19 03:16:29 -07:00
Sai Rupesh Chevuru
c16d4c0cd9 qcacmn: Check for valid peer_id in exception path
Sometime DP might receive a exception packet with
already deleted peer id. Added a check to avoid sending
such packets.

Change-Id: Ib43d55c7930e4ddc7550d486505a56cb48e85afe
CRs-Fixed: 3285034
2022-09-19 03:16:20 -07:00
nobelj
5e42bbc352 qcacmn: Add support for tx monitor HE MU and minor fixes
Add support for,
	a) HE MU radiotap information
	b) Multi sta BA frame generation and
minor fix,
	a) handling timestamp NULL,
	b) update NSS and other field in radiotap

Change-Id: I7a8b95328779f967b9e63ff8048242412ab472b0
CRs-Fixed: 3270361
2022-09-19 01:49:40 -07:00
Shiva Krishna Pittala
2bef7708b1 qcacmn: Stop the spectral scan at the end of last report in finite scan
In the case of finite Spectral scan, the spectral scan will be stopped in
the target once the requested count of spectral reports got generated.
The Host will not be notified of this stop scan. To synchronize the Host
data structures in accordance with the target, we explicitly stop the scan
once the last report is received. In the current implementation, the
stop_scan() is called at the beginning of the last report processing and
we continue processing the last report. As part of the last report
processing, we could access the data structures that were reset during
the stop_scan(). To fix this, stop the spectral scan at the end of the
last report processing.

Change-Id: Iecfa4e72ccbedae77ee2a57e9283910e980121d5
CRs-Fixed: 3287136
2022-09-19 01:49:32 -07:00
Ripan Deuri
d2c0e76649 qcacmn: Use nbuf in QDF nbuf API
Use nbuf in QDF nbuf API.

Change-Id: Ib427fab156756bcd5d83e5d14e70c603f831fc8b
CRs-Fixed: 3292512
2022-09-19 00:29:14 -07:00
Adwait Nayak
321fa3cb5f Revert "qcacmn: Do not send the scan entry for nontx profile to cfg80211 layer"
This reverts refer to the Commit-Id
f60c8e57d3.

Change-Id: I4d004ecad6fffd654ee3e90db765acd6cde242c1
CRs-Fixed: 3291428
2022-09-19 00:29:06 -07:00
Tallapragada Kalyan
3366de83ac qcacmn: Add fast TX support for STA mode
Add fast TX support for STA mode too

Change-Id: I416076bf7faa2d48fa4d2749f4b08cee2767e279
CRs-Fixed: 3289179
2022-09-18 05:00:47 -07:00
Jia Ding
a560466b61 qcacmn: Add qdf abstraction for IPA rx_bank_id field
rx_bank_id is newly added in IPA driver to represent bank id
field in TX descriptor for BE chipsets. Therefore add same qdf
definitions for DP layer to pass the bank id to IPA driver.

Change-Id: I7efe7ec6917eab131e2b441a502cdb25e682a88a
CRs-Fixed: 3291711
2022-09-18 03:14:52 -07:00
Debasis Das
035bb69743 qcacmn: Add new skb cb frame-type for sawf
Add new Frame-type that should be used for
setting SAWF information in skb cb.

CRs-Fixed: 3292190
Change-Id: Ife4f4382fba151c2b3e189b71df9eb9255dd0c04
2022-09-17 05:53:10 -07:00
Vivek
d1f06c6992 qcacmn: Add call to API to update delay average
Add call to API to calculate the moving average fo delay for
the following
	NW Delay
	Wifi SW Delay
	Wifi HW Delay

Change-Id: I35afa4d83e474b0173cc1f4b9b6456b9fe2c963c
CRs-Fixed: 3286176
2022-09-17 04:32:29 -07:00
Ashish Kumar Dhanotiya
09220f783e qcacmn: Process tx and rx rate count from peer stats
Based on the new requirement process tx and rx rate counts
from peer stats response and send these stats to user space
as part of big data stats.

Change-Id: I988f0d6cf6a3537f31433d4f57280336ab58bc38
CRs-Fixed: 3289789
2022-09-17 01:11:22 -07:00