Commit Graph

22 Commits

Author SHA1 Message Date
Shwetha G K
9472bdfb6c qcacmn: Support CFR capture_count and MO marking requirement
Support a new capture_interval_mode: capture_count, where after
capture_count+1 number of frames, MAC stops channel capture and
waits for capture_interval duration before enabling again.

Add nob(capture_intervalmode_sel) to switch to capture_count or
capture_duration mode in wlanconfig application, where
capture_intervalmode_sel=0 indicates the old capture_durarion
mode where MAC stops channel capture after capture_duration
instead of capture_count. capture_intervalmode_sel=1 indicates
the capture_count mode.

Support MO marking: Current ENH CFR uses the existing MD/MO,
type/subtype filters to filterin the packets with programmed
type/subtype as either MD/MO. But for m_TARA it is also required
to consider the bw/nss/ta/ra setting. Therefore, it is possible
that not all the filtered-in PPDUs have channel capture and lead
to processing of packets which does not have captured data.
To overcome this issue, from QCN9000 onwards, MAC has MO marking
feature added for M_TARA filter mode, where MAC will consider
all TARA group configuration as filterin criteria & provides
an option to HOST to choose either filterin mode as FP or MO.
en_ta_ra_filter_in_as_fp is added to support MO marking.
Based on the discussion between HOST, FW & MAC teams, 0 is the
recommended & default setting for en_ta_ra_filter_in_as_fp.
Add nob to configure en_ta_ra_filter_in_as_fp but do not expose
to user.

Change-Id: I75cd3218fa4308afad21052e4535ef9b8e5a5869
2020-07-29 09:39:48 -07:00
Shwetha G K
a87d0fe709 qcacmn: freeze_tlv changes due to 37 UL-MU users in Pine
Add freeze_tlv changes due to 37 UL-MU users in Pine

Change-Id: Ibe794b83e7d8722b5ea8709fa23d33fb823bd992
2020-07-22 07:45:19 -07:00
Surabhi Vishnoi
9762d883bc qcacmn: Add ucfg_cfr_capture_data api in CFR component
This API is used to parse the cfr capture metadata received in HTT msg
HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND from firmware. It reads the cfr dumps
from host allocated mem chunks for CFR using offset index received in
HTT msg, populates the CFR dumps into streamfs and updates the read
index of memory chunks allocated for CFR during init.

Change-Id: I2f49e308c3659779b8da7ae1baaceb5bfa968b4e
CRs-Fixed: 2687062
2020-07-02 05:55:48 -07:00
Surabhi Vishnoi
d2c2a6aec6 qcacmn: Add support for CFR in adrastea target
Add the init and deinit CFR pdev api for adrastea target type.
cfr_adrastea_init_pdev api enables the CFR feature if both host and
firmware supports the feature, initialises the cfr pdev structure
and streamfs.

Also during allocation of memory requested by firmware, skip smaller
chunks memory allocation for CFR capture requested memory as firmware
expects contiguous memory.

Change-Id: Ib893dc8a845fea990a11e95e98d8a656f7df12ba
CRs-Fixed: 2687057
2020-06-29 19:15:56 -07:00
Shwetha G K
2846a3c308 qcacmn: Capture tx status error as well in CFR stats
Capture tx status errors & cookie lookup failure under CFR stats

Change-Id: I546b70424f5fe5fafde36da3cdf587cb7ab29856
2020-05-20 23:47:41 -07:00
Shwetha G K
1347c3ab9c qcacmn: Update Pine specific CFR changes
Update Pine specific CFR changes

Change-Id: Ibdd33e458cd058f6db94de5165df31d25d97eebb
2020-05-20 00:09:20 -07:00
Wu Gao
53808c0dc4 qcacmn: Allocate lut based on number of DBR entry
CFR component allocate 140 luts but some of platform use 48 of them,
which allocate huge memory at one time and waste memory in some
platform. In low memory case, it may be failed to alloc luts at one
time. So, allocate lut based on number of DBR entry and split memory
allocation.

Change-Id: Id49c3f9a0f81cfa6d639cb72b62bb377911f0e77
CRs-Fixed: 2679470
2020-05-19 04:38:07 -07:00
Padma Raghunathan
79f10bc2d2 qcacmn: Skip CFR umac handling when feature is disabled
Retrieve the INI option to disable CFR and store the
same in pdev feature ext caps.

When CFR feature is disabled -
1. Skip pdev/peer cfr object allocations
2. Skip CFR SRNG allocations
3. Skip WMI registration for DBR and TX completion events

Change-Id: I5a7a6ae67d2c3a863b952e00e317c44a71e9fbc1
CRs-Fixed: 2671620
2020-05-03 18:18:58 -07:00
Padma Raghunathan
297e63ab48 qcacmn: Add support to disable CFR through INI
Add option to disable cfr for a pdev through INI.
Since INI is per psoc, bitmap is used to indicate
the set of PDEVs for which CFR needs to be disabled.

Change-Id: Iaff24295c8c3ec702647db24961395b8a7ecf8c4
CRs-Fixed: 2671620
2020-05-03 18:18:54 -07:00
Manoj Ekbote
f87f43f8b2 qcacmn: Add function to get CFR capture status
This function is used to disallow HW mode change if
CFR capture is in progress.

CRs-fixed:2663183

Change-Id: Ib5939c1f5743a1aa3cf7594c98fe4bbcc6ced49f
2020-04-30 01:51:10 -07:00
Wu Gao
6ba047a381 qcacmn: Add interface to write string of CFR stopping
Add a interface to write string of CFR stopping, and indicate to
userspace that CFR has stopped.

Change-Id: Ib1d63cb75cd311b367d5d8100c5c4eb92980392d
CRs-Fixed: 2659373
2020-04-13 21:15:53 -07:00
Wu Gao
b4cc9a28bb qcacmn: Set mac id based on the working band
FW requires to receive WMI_CFR_CAPTURE_FILTER_CMDID with the pdev id
which is based on the working band. It requires srng id when looking
up or releasing DMA address. So add this change to check working band
and set mac id. This is MCL only change.

Change-Id: I763a25b4989607128b2b4c75186eb5bdcd204077
CRs-Fixed: 2641268
2020-04-13 21:15:40 -07:00
Wu Gao
e3ac7503d1 qcacmn: Enable CFR for QCA6490 in target interface
This change adds interface to interface to subscibe wdi ppdu desc
event, adds pdev init/deinit in target interface.

Change-Id: Id6b3dbd500f2f99ab62beeb99b58eb2c22d68857
CRs-Fixed: 2637137
2020-04-13 21:15:24 -07:00
Wu Gao
1391861d2d qcacmn: Remove mac2str in CFR
Use QDF_MAC_ADDR_STR and QDF_MAC_ADDR_ARRAY to replace mac2str.

Change-Id: Ic6382a03a2c4f390e6eaad038aa5a634a9e69153
CRs-Fixed: 2653061
2020-04-13 16:54:26 -07:00
Wu Gao
192c8433f7 qcacmn: Add chip type for QCA6490
Add chip type for QCA6490, and CFR component will indicate chip type
to user space.

Change-Id: Ia3e95e06c8cc86bc30b81906f62f3821606a38f7
CRs-Fixed: 2659553
2020-04-10 16:37:37 -07:00
Padma Raghunathan
81f0e970cb qcacmn: CFR: Clean up header file inclusions in CFR
1. Remove absolute paths to cfr header file.
2. Exclusion of CFR header file is handled in Kbuild,
remove compile flag within file.

Change-Id: I6abdce56716ba17481ccc2e1942754203063e3ad
CRs-Fixed: 2649714
2020-04-09 07:33:31 -07:00
Padma Raghunathan
07ed407a56 qcacmn: CFR: Add protection while accessing cfr lookup table
Protect access to cfr lookup table, since error handling
mechanism attempts to cleanup CFR entries in timer context,
this leads to contention between bottom-half and timer.

Change-Id: I32a095fc82545ab117ab43a81ef8a3a5602741fc
CRs-Fixed: 2649714
2020-04-09 07:32:17 -07:00
Padma Raghunathan
e7d986e168 qcacmn: Avoid to use WIN only APIs
Avoid to use WIN only APIs. This is part of moving CFR to hostcmn.

Change-Id: Ib6be520657b5e6d42eaed4d9c3a3940c691e9d84
CRs-Fixed: 2637130
2020-03-31 00:43:55 -07:00
Wu Gao
a308b3e970 qcacmn: Add CFR files for QCA6490
Since there are chip differences about channel frequency response. Add
files for QCA6490. This change also adds CFR configure file

Change-Id: Ib200affe4c68dac5535c4a3d65109072559161ff
CRs-Fixed: 2637134
2020-03-30 13:39:43 -07:00
Wu Gao
8940e61395 qcacmn: Use qdf streamfs APIs to replace qal streamfs APIs
Use qdf streamfs APIs to indicate data to user space. This is part of
moving CFR component to hostmn.

Change-Id: I2abc46fdfb36d24eef201ab21f5744d951595ea1
CRs-Fixed: 2637128
2020-03-26 05:26:21 -07:00
Padma Raghunathan
cf4f404f0f qcacmn: Add new file to hold CFR specific configuration
Add new file to exchange CFR config with userspace

Change-Id: Ia66dfdcd1f121699f04b579c9867a9f78286a4f8
CRs-Fixed: 2639069
2020-03-24 23:58:08 -07:00
Padma Raghunathan
9946d36d19 qcacmn: Add CFR feature support
Add CFR feature support for WIN and MCL.

Change-Id: I135409c00df953ad7ae4e570418403b11ebc1bc7
CRs-Fixed: 2639069
2020-03-13 06:47:56 -07:00