Commit Graph

146 Commits

Author SHA1 Message Date
Chaithanya Garrepalli
56a164e76b qca-wifi: fix print format compilation errors
Correct print format identifier to avoid compilation
errors with -no-format removed from compilation flags

Change-Id: I8806d1a2b31b30f4e0fcb492e462ac38c89c5b79
2021-01-07 10:28:07 +05:30
Linux Build Service Account
d7b7214fbc Merge "qca-wifi: Add AMSDU support in Tx capture" 2020-12-29 11:37:37 -08:00
Manoj Ekbote
a9061165c0 qca-wifi: Add AMSDU support in Tx capture
Add AMSDU subframe header and set the AMSDU bit in
QOS control field.

Change-Id: Id91a032231bf35cd5f87eaed475699035528c12e
2020-12-28 10:19:40 -08:00
Shikha Bakshi
7c42aed98a qca-wifi: Remove FL macros from logs
Remove FL macros from logs as it is already being taken care
of bu QDF_TRACE

Change-Id: Iaceae56e4b91eefe9da9cbb7e1df254b78f70446
2020-12-24 02:34:47 -08:00
Linux Build Service Account
6108563672 Merge "qca-wifi: Modify logs for module ID QDF_MODULE_ID_DP_TX_CAPTURE" 2020-12-18 11:39:50 -08:00
Shikha Bakshi
51ac5a4837 qca-wifi: Modify logs for module ID QDF_MODULE_ID_DP_TX_CAPTURE
Add macros dp_tx_capture_info, dp_tx_capture_info_low,
dp_tx_capture_high, dp_tx_capture_alert, dp_tx_capture_err,
dp_tx_capture_debug to define logs.

Change-Id: I32f31638d1e197f1c2b0a9b5d956a002948047df
2020-12-17 10:25:38 -08:00
Manoj Ekbote
717a95065e qca-wifi: Fix WDS header fields
Fix address fields in WDS case.

Change-Id: I0f94bcd42783a6840a714ca0f5541e7299de1d81
2020-12-16 16:18:38 -08:00
nobelj
968aa5d1a5 qca-wifi: add fix for peer mismatch and xretry mpdu
added fix for below issue

peer derived from peer_id for a radio return peer
from different radio which cause corruption in the queue

current we store xretry mpdu queue to ppdu desc user
which live for short time. added fix to use
xretry mpdu queue from peer user.

Change-Id: I320e3aae9f3df25aff5a6769acc4c037f40ced5c
2020-12-11 02:03:36 -08:00
nobelj
f86496baad qca-wifi: add fix to use peer id from tx tid
During peer unmap handler peer id is set to invalid peer
but is not deleted as reference is held.
On excess retries, peer id is reference from peer which is inactive
for a ppdu descriptor leading to assert.

added fix to use peer id from tx tid.

Change-Id: I058dec46138ebc10f8d97eb0145458737149309c
2020-12-05 22:18:22 -08:00
nobelj
be22a25dba qca-wifi: Modify tx capture bottom half to single thread
Modify tx capture work queue to single thread and added
more debug print in assert case.

Change-Id: If6546240984f4d2142089f06a8323b481d319623
2020-12-04 14:10:56 -08:00
Manoj Ekbote
1328ea0195 qca-wifi: Initialize user retry mpdu queue
Intialize the retry mpdu queue and add debug prints
to get more useful info

Change-Id: I7dda9d6ddf6e39531911d2e7340c67bb67ac865a
2020-11-27 08:50:53 -08:00
Christopher Chopp
ea10246813 qca-wifi: Add check for FW generated action frames in tx capture
Extend the current check for action frames in tx capture
to include more types of FW generated action frames.
This change adds a generic function to check where action
frames are generated that is easily extended to account
for more types in the future.

Change-Id: I23bb37c5a81b02d2c095060bac909298d1b2283f
CRs-Fixed: 2807802
2020-11-17 10:29:18 -08:00
Srinivas Pitla
4d05abaf4a qca-wifi: fix issue in mpdu_tried_ucast WAR
The earlier WAR was not handling a corner case, where
ba_size equal to mpdu_tried_ucast -1.

This fix updates the check to handle it.

CRs-Fixed: 2813082
Change-Id: Ib69f8232e40ee31bc4a4a2b35ec9e8917195d123
2020-11-09 09:25:55 -08:00
Srinivas Pitla
c83d9a7536 qca-wifi: fix mpdu_tried_ucast issue
It is found that mpdu_tried_ucast is less than last ba bitmap set,
this is leading inconsistency with mpdus[] array and failed_bitmap.

To address this, on failed_bitmap prep, if mpdu_tried_ucast is less
than last ba bit set, then mpdu_tried_ucast is updated with last ba
bit set.

CRs-Fixed: 2793967
Change-Id: I381b462d0418527dd11ca2c8ae3dc4c8d4bfdba8
2020-10-20 11:28:37 -07:00
Linux Build Service Account
e24d6eed2d Merge "qca-wifi: Check for initialized tid" 2020-10-16 10:07:36 -07:00
Manoj Ekbote
74aa631600 qca-wifi: Check for initialized tid
Add check to know if tid is still in initialized state while
delivering a ppdu with flush bit set.

Change-Id: I6f0fbbdb616ba4b6c98787d389b7bf16d6c5f165
2020-10-14 09:54:46 -07:00
Srinivas Pitla
065a6e13f2 qca-wifi: enhance current debug print in issue scenario
The current debug print is not sufficient to look at
peer, tid. So enhanced current print

CRs-Fixed: 2794519
Change-Id: If531f1892cfc53c308b1913891a54f4a9350d02c
2020-10-13 13:51:40 -07:00
nobelj
3b78c64a1c qca-wifi: Fix tx capture mpdu tried less than acked mpdu
tx capture does not capture mpdu, which missed due to
block ack failure. with subsequent retries it recieve block ack for
all the previous transmitted mpdu in a ppdu was handled.

Change-Id: I23d1bfd7ba05edaec934379fbc036b164a45ceb6
2020-09-28 12:11:08 -07:00
Linux Build Service Account
c54ea45ed5 Merge "qca-wifi: SKB Frag changes for TX Capture" 2020-09-25 06:02:05 -07:00
nobelj
61e1b5c9b1 qca-wifi: Add fix for user after free
user field is updated before allocated memory is free.

Change-Id: I120cb4abab1a010b38dddc8aedc710b77671ac58
2020-09-24 22:28:50 -07:00
Shivani Soni
ce4d8e5daa qca-wifi: SKB Frag changes for TX Capture
Update frag related changes for TX Capture feature

Change-Id: I897e53c923256f2148fde214918bb7b069b8fc2b
CRs-Fixed: 2770668
2020-09-24 16:45:31 +05:30
Linux Build Service Account
92cf74cb43 Merge "qca-wifi: init peer tid at tx monitor on" 2020-09-22 05:06:14 -07:00
nobelj
0c906ba7ca qca-wifi: init peer tid at tx monitor on
peer tid queue init is initialized only when tx monitor
feature turned on.

Change-Id: Idba2d0e7004eed5322c24c921044f66c98b33f61
2020-09-18 22:26:14 -07:00
Linux Build Service Account
529e160dec Merge "qcawifi: Use timer to schedule work queue for stats process" 2020-09-18 17:36:03 -07:00
Kai Chen
78c7be2508 qcawifi: Use timer to schedule work queue for stats process
Use timer to schedule work queue for tx capture stats
process to fix the deauth missing issue in tx capture
when AP is down.

Change-Id: Ie1d1e3fa9f576cd6034fe6035ef933b1e78df99b
2020-09-03 11:39:40 -07:00
nobelj
cde48bdd58 qca-wifi: tx capture memory leak fix
Added memory leak fix and added assert in few more
places to capture other corner case issues.

Change-Id: I5c728f73aafa20b7d65f74e866e652fd8c73de83
2020-09-01 11:38:25 -07:00
Linux Build Service Account
30d7518fef Merge "qca-wifi: Use atomic operation in peer tid queue init" 2020-08-31 03:05:49 -07:00
Manoj Ekbote
2de00c0bd2 qca-wifi: Use atomic operation in peer tid queue init
tid queue init can be called from peer MAP event handler and peer
setup functions. Since they can run at same time because of the
sequencing, make init_done an atomic variable and set it before
allocating the retry ppdu. Otherwise, it can result in double
allocation and memory leak.

Change-Id: I354bf2763b8ddedcf83f04eccccaafc329eac66d
2020-08-28 09:59:58 -07:00
Linux Build Service Account
80a72a98a5 Merge "qca-wifi: Use module_id while getting vdev reference" 2020-08-20 15:37:30 -07:00
Linux Build Service Account
4f44beeb31 Merge "qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object" 2020-08-20 15:37:30 -07:00
nobelj
1dd7beec9c qca-wifi: Add fix to disable ppdu desc debugfs
disable ppdu desc logging in tx capture is not
disabling the debugfs feature.

Change-Id: Ie40b60409b185cc79913da47baea28f81a43a87f
2020-08-15 18:12:22 -07:00
Chaithanya Garrepalli
d9597f02cc qca-wifi: Use module_id while getting vdev reference
Pass module_id as argument to dp vdev get reference
and release reference APIs

Change-Id: I878443620b5ff7c5325edabcda9735220f85b47b
2020-08-11 03:35:47 -07:00
Chaithanya Garrepalli
81a724a970 qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object
Use dp_vdev_get_ref_by_id() to get vdev object from vdev id
array also call dp_vdev_unref_delete() API to release
reference held by dp_vdev_get_ref_by_id

Change-Id: Icd8fac503d46dc0a010c6911116d9243effee777
2020-08-11 03:35:33 -07:00
Chaithanya Garrepalli
fe5cbcd4ab qca-wifi: use the generic peer iterate API
Use the peer iterate APIs to iterate through peers
in vdev list at vdev, pdev, soc level

Change-Id: I983d825a780d76370ecb652e5151029df0334a26
2020-08-11 03:35:15 -07:00
Chaithanya Garrepalli
1052e4d52b qca-wifi: remove DP peer back pointer in DP AST entry
Remove peer pointer in AST entry and store peer_id instead
to avoid access of peer memory without taking reference

Change-Id: I1e9c2a6880b3582866b821bf56a8400e056665f2
2020-08-11 16:04:23 +05:30
Chaithanya Garrepalli
243000f513 qca-wifi: add module id for dp peer reference
Use appropriate module id while taking peer
reference

Change-Id: Ifd4c80ff304f599700192a340e60c7f65214f2b7
2020-08-06 12:02:22 +05:30
Chaithanya Garrepalli
78363d7d9c qca-wifi: use dp_peer_find_by_id API to get the peer
Use common dp_peer_find_by_id API as it is taking
peer refcount now

Change-Id: Ib2604f1f7d9acc9ffcc33969fc8900089cd245d2
2020-08-06 10:52:55 +05:30
Chaithanya Garrepalli
ccf15df948 qca-wifi: use peer_list_lock instead of peer_ref_mutex
Iterate vdev->peer_list under vdev->peer_list_lock

Change-Id: If69016109cf47681a9616adde59c5d73aaba5217
2020-08-06 10:42:59 +05:30
nobelj
f1dd0b06ed qca-wifi: add fix to send ppdu in sequential
add support to send ppdu info in sequential ordered

Change-Id: I5ca9a7e8d8ca9d18712bce811676cbb1fb485a1e
2020-07-28 19:42:51 -07:00
Linux Build Service Account
d8fbb4ff60 Merge "qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture" 2020-07-28 14:37:33 -07:00
Linux Build Service Account
fba80373cc Merge "qca-wifi: Fix tx capture tid init issues" 2020-07-27 13:37:05 -07:00
Linux Build Service Account
c4aaaef829 Merge "qca-wifi: Memory optimization for PPDU stats" 2020-07-26 23:49:36 -07:00
Manoj Ekbote
2d96374ca3 qca-wifi: Memory optimization for PPDU stats
Currently, per-user information in Tx PPDU completion is allocated for
37 users though FW may send information for fewer number of users. In
new scheme, FW provides number of users in USERS_INFO TLV and host can
allocate the per-user struct based on this number. This can save memory
while processing each completion message.
Make related changes in tx capture files to use pointer instead of fixed
size member.

CRs-Fixed: 2730933
Change-Id: I8709665a481d64dc4ab086ce9b27e8837c38b53f
2020-07-23 23:21:21 -07:00
nobelj
36e778c0f8 qca-wifi: Add support to store and display ppdu desc
Debugfs is added to store the last 30 ppdu desc and display
as readable format to user. Feature of storing ppdu desc is
enabled through debugfs and it is not enabled by default.

Change-Id: I85ff52760462abd9a6e33d082db45d8179e67c0d
2020-07-23 03:15:57 -07:00
Srinivas Pitla
aa3e76eb38 qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture
Currently, same user can be processed multiple times, which leads to
release ref count wrongly, with this, some of the users in PPDU
desc are never processed and can possibly cause memory leak.

Added a flag in PPDU user to indicate that the user is already
processed.

CRs-Fixed: 2718150
Change-Id: Ia00e0ad12999578157e9f8a6df0ad4763f828c88
2020-07-22 10:28:59 -07:00
Srinivas Pitla
d0e7ec087c qca-wifi: Fix tx capture tid init issues
For some peers, tx capture tid init is not invoked,
It is resulting in ppdu_desc leak.

Invoking tid init on tid peer update, if tid is not
initialized.

Change-Id: Ia49c7e6d093a42e57e8d9239a60ad0b8dabfcc5b
CRs-Fixed: 2718150
2020-07-21 11:29:38 -07:00
Linux Build Service Account
e5977a6360 Merge "qca-wifi: Mark Action Frames as Non Self_Gen" 2020-07-14 09:40:49 -07:00
Christopher Chopp
79c6331413 qca-wifi: Mark Action Frames as Non Self_Gen
Add check for action frames in tx capture feature and
manually mark selfgen as false.

Change-Id: I37e25f323ebd65240810dbb2b6ddb8fec3e1c66c
2020-07-09 11:19:05 -07:00
Linux Build Service Account
a05a705913 Merge "qca-wifi: Fix user index for rts, cts frame" 2020-07-07 14:09:18 -07:00
Linux Build Service Account
3a90a2e495 Merge "qca-wifi: tx capture modify config lock with user mode flag" 2020-07-07 10:37:37 -07:00