Commit Graph

3154 Commits

Author SHA1 Message Date
Rajesh Chauhan
f4b6b093c6 qcacmn: include stdarg header file with correct path
For kernel version 5.15 or later, include linux/stdarg.h in
i_qdf_types.h and for older versions include stdarg.h.
Also remove inclusion of stdarg.h from dp_internal.h,
qdf_trace.h and qdf_types.h files.

Change-Id: I2eaa1af06fda0ac07a1be3d245f197de0b85719d
CRs-Fixed: 3295172
2022-10-05 17:51:31 -07:00
Amit Mehta
95857b39a8 qcacmn: Add API to get and clear pdev obss stats
Add API to send request to Fw to get and clear pdev obss stats.

Change-Id: I2697cc111eba0310d0a65e9911673670ff476c7f
CRs-Fixed: 3295540
2022-10-01 22:31:20 -07:00
Sai Rupesh Chevuru
136869a4c0 qcacmn: Avoid fetching of addr4 from the RX TLV
In defrag path will be receiving raw frames with wifi header,
instead of fetching the addr4 from the tlv, use it from wifi header

Change-Id: I516295660f39135225efd79c6b1bb0b93b1d81d3
CRs-Fixed: 3303206
2022-10-01 09:47:31 -07:00
Ripan Deuri
cb33f7e1d3 qcacmn: Acquire lock before calling rx tid setup
The rx tid setup function is called from multiple contexts.
Acquire lock before calling that function to avoid race condition.

Change-Id: I7a0443e5e09a068301de171afeb4d400bf54b1c8
CRs-Fixed: 3291079
2022-09-30 04:26:34 -07:00
Amit Mehta
c3ea01cd1b qcacmn: Add a tid check for RX to avoid of OOB access
Tid in RX frame header may be larger than MAX TID allowed
value, this will lead a out of boundary array access and
lead to kernel crash at last. Change is aimed to do a TID
check and discard such frame when necessary.

Change-Id: I11f312668a5a42d690c058550f22b0f36f952104
CRs-Fixed: 3264581
2022-09-30 04:26:27 -07:00
Prakash Manjunathappa
44ece0c600 qcacmn: Do not free Tx flow pool in case of MLO link switch
In case of MLO same adapter maps to both vdevs. Tx is done with
primary link vdev pool. In link switch case vdev0 flow pool is
deleted and traffic will continue to flow with same vdev0 flow_id
This is resulting in packets drops within the driver due non-availibilty
of flow pool.
Fix this by skipping flow pool deletion in case of STA MLO connection.

Change-Id: Ie56ea221f7f254484bd31ec4880f2155779fb513
CRs-Fixed: 3292979
2022-09-30 04:26:21 -07:00
Pavankumar Nandeshwar
4db1255f94 qcacmn: Add debug for Umac reset time consumption
Add debug to calculate the time consumed on host during
Umac reset handling.

Change-Id: I1697f61abf13980182a89ae0674f344f93943b86
CRs-Fixed: 3300163
2022-09-30 01:41:05 -07:00
Pavankumar Nandeshwar
7dee89e9ec qcacmn: Add cfg command to enable umac reset skeleton debug
Add cfg command to enable umac reset skeleton debug, which
when enabled will skip post reset procedure handling.

Change-Id: Ieca393e6292660bb3ada40408fd6e71ac78d0a1f
CRs-Fixed: 3296960
2022-09-30 01:40:58 -07:00
Azmath Mohammed
95865c5502 qcacmn: Modify FISA Feature support for DP componentization
Modify FISA Feature support for DP componentization

Change-Id: I64c364881bf2c53794e858acb72babf51997713e
CRs-Fixed: 3243931
2022-09-28 22:31:45 -07:00
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
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
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
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
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
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
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
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
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
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
Rakesh Pillai
cdc30dc279 qcacmn: Set the packet start offset correctly for monitor mode
The packet start offset configuration is common
for both mission mode and monitor mode. Hence if
the packet_header tlv is not subscribed for the
regular mission mode, the packet start offset for
monitor mode also gets affected, where packet_header
is subscribed.

This causes a loss of 128 bytes in the packets
captured in monitor mode.
Fix this issue, by setting the packet start offset
based on the driver operation mode.

Change-Id: I0a0e431278bef519534c2b1be87797d9b047525c
CRs-Fixed: 3292130
2022-09-16 16:31:24 -07:00
Ruben Columbus
953a16bb46 qcacmn: delete QCA_TEST_MON_PF_TAGS_STATS for cce/fse stats
delete QCA_TEST_MON_PF_TAGS_STATS to enable stats by default
and just use flag to enable debug nbuf_head dump

Change-Id: I0b0bb627f4d597d28181a11c38fa18b191210da4
CRs-Fixed: 3278411
2022-09-14 23:43:40 -07:00
Jia Ding
79a9d0dc1d qcacmn: Set up TX bank profile for IPA
bank id is newly added in TX descriptor for BE chipsets. As such,
with IPA Offload enabled, IPA needs the bank id information to do
offload WLAN TX.

From WLAN perspective, bank id is designed to be used on a per-vdev
role basis. E.g. STA vdev and SAP vdev have separate and different
bank profiles.

However from IPA perspective, bank id needs to be on a per TX ring
basis, because IPA GSI FW is not able to identify STA or SAP vdev
role on a per-packet basis.

Hence initialize last HOST owned bank id profile for IPA usage.

Change-Id: I0cf71b638f5999905069aff0551d8ebeb5477e17
CRs-Fixed: 3289558
2022-09-14 23:43:33 -07:00
Sai Rupesh Chevuru
0991ec65e2 qcacmn: Handling of scatter gather frames
Update the last msdu flag properly in nbuf cb
to handle SG frames.

Change-Id: I2fe0904bdf0d447d57354c207588519816085f63
CRs-Fixed: 3284984
2022-09-14 08:10:55 -07:00
Amir Patel
04cc044ef2 qcacmn: Remove unnecessary prints
remove unnecessary print from monitor deinit path

Change-Id: Ia38d3e3739a0e8464e2fd702d1916b95a930e9f7
CRs-Fixed: 3287637
2022-09-14 05:21:54 -07:00
Sai Rupesh Chevuru
74dfcfa989 qcacmn: Handling of raw frames in mesh mode
In order to handle raw frames in mesh mode pass the valid
txrx_peer to dp_rx_process_rxdma_err()

Change-Id: I24c697c8e55533ecc6ff1992c0da7bf101c8d6cc
CRs-Fixed: 3281431
2022-09-14 00:41:10 -07:00
Ripan Deuri
94c2c62746 qcacmn: Calculate Tx delay stat in microsecond
Add changes for computing wifi host and hardware Tx delay
in microsecond.

Change-Id: I7a54e9ee9785d878660f9e5226c315cf96064572
CRs-Fixed: 3254259
2022-09-13 19:59:00 -07:00
Amit Mehta
163dd20054 qcacmn: Add API to read tsf time
Add API to read tsf time from scratch registers.

Change-Id: If736c31f9ae522a9f853e7b83b6b8a61cad990da
CRs-Fixed: 3287544
2022-09-13 10:51:38 -07:00
Himanshu Batra
b8f5d7c27a qcacmn: Update ppdu phy tx time irrespective of ACK_BA_STATUS
In case when ACK_BA_STATUS is not received, the ppdu phy tx time is not
getting calculated even though the media is used for the ppdu.
Add fix to ppdu phy tx time irrespective of ACK_BA_STATUS

Change-Id: I23d29b2d282edf6e5d49ce18aecd81e5239a118b
CRs-Fixed: 3288380
2022-09-13 09:23:04 -07:00
Himanshu Batra
f147732272 qcacmn: Add support for link airtime usage telemetry
Add support for link airtime usage telemetry.

Change-Id: I8b796f14d55d56051fb05af255e612e4655db990
CRs-Fixed: 3281355
2022-09-13 09:22:57 -07:00
Himanshu Batra
6a5ab907c1 qcacmn: Update airtime computation to per AC level
Update airtime computation to per AC level.

Change-Id: Ia8cb890d2f1dc167ec3a2610ff5a70238d55262d
CRs-Fixed: 3281256
2022-09-13 09:22:49 -07:00
Devender Kumar
a85ce1152c qcacmn: Debug framework for SMMU buffer tracker for IPA offload
Debug framework for tracking the SMMU mapping and unmapping of
skb buffer when IPA offload is enable and IPA_SMMU_NBUF_TRACKER
is define.

CRs-Fixed: 3255423
change-Id: I8966097945b33cb866f4642b98b3d1a4beabfad7
2022-09-13 03:24:34 -07:00
Harsh Kumar Bijlani
c84505ec7b qcacmn: Change datatype of rx_snr_measured_time to unsigned long
Change datatype of rx_snr_measured_time to unsigned long.

Change-Id: I37db568a876b15eee73f21474883eb42d4f3b18d
CRs-Fixed: 3281574
2022-09-12 20:55:09 -07:00
KARTHIK KUMAR T
8267333021 qcacmn: Add cdp function to get rate/link stats
Add cdp function to get the peer extended rate and link stats.
This change is to support user level command to flush mld/link
peer extended link and rate stats.

cfg80211tool wifiX get_peer_extd_rate_link_stats <mac_addr>

Change-Id: I20cd2b38b242008b95aedc5f9914088a149093dd
CRs-Fixed: 3278042
2022-09-12 15:57:05 -07:00
nobelj
3e3726cc7a qcacmn: Add fix double free in reinject handler
Add fix for double free in Reinject handler. Issue is seen when mesh vap
is present.

Change-Id: I288b1131974c8a3edb83c1b3b2a7a856c4ccbcbf
CRs-Fixed: 3276670
2022-09-12 13:58:43 -07:00
Sushant Butta
b1a6c9543b qcacmn: Optimizations for Tx monitor buffer allocations
Currently 2K Tx buffers are allocated at init time and 6K Tx
buffers are allocated at mon vap creation time.
Changes are done to move Tx buffer allocations to 0+8K model,
where allocations are done when enable cmd is triggered.

CRs-Fixed: 3284106
Change-Id: If0a112b8138f2be1db8f764fd7aa4ef12f274bb7
2022-09-12 11:53:54 -07:00
Chaithanya Garrepalli
cd40aa85ab qcacmn: Add few missing stats
1. Add stats to indicate REO ring size and Rx desc pool size
2. Add low threshold interrupt stats
3. Update SW2RxDMA ring size max to 16K

Change-Id: If84b88bc08e447774ab445df36b9f2f2219356b8
CRs-Fixed: 3286940
2022-09-12 00:28:13 -07:00
Devender Kumar
07327b6ea8 qcacmn: Send client disconnect event to IPA
When AP vap disconnect aburputly or by doing channel switch then for WDS
node, client disconnect event is not sent to IPA driver, hence IPA is
not aware of any new wds client coming behind that peer as the previous
delete event is not handled properly

Fix is to send wds client disconnect event when ast entry are flushed.

CRs-Fixed: 3271481
Change-Id: Id507f543c8f4cb8f69e26ba6ca3a23787af21ed7
2022-09-09 04:09:02 -07:00
nobelj
5f09e5188b qcacmn: Add minor fix specific to tx monitor
Added minor fix,
a) Handle buffer allocation failed and
b) NULL check

Change-Id: Idaeb1d2b1e9bc613bfaf15b3e028e44846345e2f
CRs-Fixed: 3279243
2022-09-08 21:23:53 -07:00
Chaithanya Garrepalli
daed8f2cc5 qcacmn: Changes for Rx fast flag
Change to avoid processing of extended features
based of Fast RX flag

Also add changes to enable or disable this flag
based on feature settings

Change-Id: I8064780a271f8bdcf396bb9e2e2c14998f195535
CRs-Fixed: 3268842
2022-09-08 12:24:27 -07:00
syed touqeer pasha
b88dc98e98 qcacmn: Fetch drop 3 address mcast value
Fetch the drop 3 address mcast value

Change-Id: If4d714e6b418c3030b247e8dd84b948aa6c140d4
CRs-Fixed: 3282708
2022-09-08 10:48:34 -07:00
Rakesh Pillai
d706698dd1 qcacmn: Add support for fragmented history recording
Currently the history recording for any debug purpose
is done using a contiguous memory chunk. For certain
history like tx_hw_ring, tx desc or tx completion desc
history, the amount of contiguous memory required is
very huge (order 7 or 8 allocation), which have a
higher probability of failing.

In order to mitigate the above scenario, introduce the
support for recording debug history into fragmented
chunks of memory, thereby reducing the requirement of
contiguous memory.

Change-Id: Iac4fb38b6d4b095766520899853e68b4c2b83afc
CRs-Fixed: 3282269
2022-09-08 04:38:02 -07:00
Ripan Deuri
04dd6c626a qcacmn: Add support to fetch PER
Add support to fetch PER from peer stats.

Change-Id: Ia7cf8913238ab5b56d5f049cf9d511318ca5d165
CRs-Fixed: 3284395
2022-09-08 02:57:20 -07:00
Amir Patel
8a1be0ce9d qcacmn: Update Noise floor for monitor frames
Update Noise floor for monitor frames

Change-Id: I8fc81b189923130e2c040dea10e04fba92c58c57
CRs-Fixed: 3274706
2022-09-07 16:34:27 -07:00
Amir Patel
0fe7f4446b qcacmn: Optimize monitor mode memory utilization
a. Optimize ppdu_info memory
b. Use kmem cache for ppdu info allocation

CRs-Fixed: 3265620
Change-Id: Ieee040aa703aef8c5eee5e5a34a52ef18300b696
2022-09-06 10:23:43 -07:00