In case of low memory, it could be difficult to allocate luts at
once. So, allocate lut based on number of DBR entry and
split memory allocation.
Change-Id: Ib9d3940147f2adc2a22d0cc7a82210e29c9cd7d7
Remove dependency of wlan_lmac_if_def headerfile from
wlan_objmgr_psoc_obj.h in component_dev
Change-Id: I5aa8f43845538e65d25c14776ec4ec9db174f0a8
CRs-Fixed: 2643301
When CFR feature is disabled through INI, skip handling of HTT
event indicating the DMA completion of CFR data.
Change-Id: Ia1aafc57866eb11a952cedfbe3a00fec201e0ee0
1. MAC does not really consider the expect TA and the
expect RA when the expect TA mask and expect RA mask is 0.
Basically, it checks for the subtype, bandwidth and NSS
as the filter criteria.
2. In the other scenario, if the RA matches with expect
RA and TA matches with expect TA then it does not really
consider the expect TA MASK and expect RA MASK.
With the current default config, since the expect address
mask is 00:00:00:00:00:00 it falls under case 1 and it is
written based on the MAC recipe.
But actual MAC logic is different from what is mentioned
in the recipe. MAC works on below logic:
TA & TA MASK = Expect TA & expect TA mask
RA & RA MASK = Expect RA & expect RA mask
As an additional precaution, we need to modify default
subtype as 0 so that if user enables any group by mistake
and does not give any input for the other RCC
configurations, we can block the RCC to capture CFR data.
Change-Id: Ic79fde2a23126b6cdca84df0091e1df23fb487e4
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: I6a414e0da883250a90451824367c12fcca33c27e
1. Clear cfr_timer_enable flag during wifi down
2. Similar to one-shot capture, report RSSI in metadata for RCC.
Convert SNR in rxtlv to RSSI.
Change-Id: Ib7c9875049f4cf3114bbb8b0851a35ad5928325c
TA retrieved from freeze TLV was being over-written by macaddr
from AST search during RXTLV processing.
MACADDR from AST search is essential only for MU PPDUs.
Change-Id: If38fd198fb196397298ed4ab646eb3257b1113b0
RCC specific debug counters has been moved to DP layer.
Update capture BW from RXTLV instead of VDEV
Capture BW is the bandwidth at which Station operates.
Error handling for pdev referencce count.
Add support to clear CFR ppdu counters
Use same event ENUM for HKV2 and Cypress.
Change-Id: Ic1f5da16c5c1ac5893dce1023eb57f96d78d4cfa
1. Change the default values of TA\RA entries
Host sends out one default RCC setting to FW during
the initialization of target specific CFR component.
Change the default setting of TA, RA address from
00:00:00:00:00:00 to FF:FF:FF:FF:FF:FF and TA_MASK and RA_MASK
should be 00:00:00:00:00:00. This will avoid
the scenario where the system will allow all packets
irrespective of the filter settings provided by the user.
2. In case default configuration is being sent to the FW
successfully during CFR init, those configurations will
be updated as part of global config. So that it can be
reflected as part of rcc_config_details command.
3. Code clean up
Change-Id: I719ddeee48f14992b2210562596b1ea3d61fcc1c
A new flag "is_cfr_rcc_capable", is introduced to enable RCC.
Currently, this flag is enabled only for QCA6018.
Change-Id: Ifdd1922c655c0bb743147e3f51d3ca32cac3dd2e
Add counters for following scenarios -
1. Ucode aborts DMA of CFR data when a higher priority TX/RX activity
needs to be scheduled, add counters in host to identify the no. of
aborts.
2. Add counters to track the total no. of TX-based CFR captures since
wifi up.
Change-Id: I3c0e0e68651348c3484a14dfcd1f664962c8647f
1. Remove the handler that flushes all pending DBR and txrx
events, since that is not being used.
2. PPDU TLV subscribe logic is integrated with ol stats layer,
remove redundant subscriber alloc.
3. Downgrade debug level of timer prints, as error handling timer
fires every 3 secs.
Change-Id: I2a5d2ae10ebee069dd30c1ed87d6560b30f77427
In CFR error handling lut ageout timer, following fixes are made -
1. Fire error handling timer every 3 secs
2. Start/Stop timer only when pdev->cfr_rcc_mode transitions from enable
to disable and vice versa
3. Stop/Free timer during deinit of pdev, incase user issues wifi down
without disabling cfr
Change-Id: I2f9819706d1440d675edfdd933839dbc3ebddbb0
37th bit is being set as an exchange between FW and ucode
to indicate that it is a DDR address to PCSS module.
As a result of which Cookie lookup fails while comparing
all 40 bits, since the physical address of DBR buffer
does not match with the physical address of the received
buffer.
Since lower 36bits represents physical address,
Use only 4 least significant bits from higher 32bits along
with lower 32 bits while programming the physical address in
DBR SRNG. Format: ( low32 + 4 bits of high32 ).
Change-Id: I2cb09c00a9942966266ba81f56f0c6c173671e2f
Do not flush the DBR event for which the corresponding
TX/RX event is yet to be received.
Once the new PPDU TLV is received, flush the previous
pending DBR events.
Change-Id: I4495a45db139128d2af01f79744021c6ad6bf322
1. In CFR RCC mode, when ucode aborts DMA of CFR data, 2 (or)
more PPDU status TLVs are likely to have same phy_addr+cookie in
RX location TLV, so the host will be flushing out the older PPDU
status TLV events instead of DBR events in LUT table,
since DBR events signify the actual DMA completion.
2. Same fix has been made for LUT entry ageout logic.
Change-Id: Ifc0717e97d21ba3463cc2f5ceb2f22a657177002
Earlier, CFR's LUT was dumped when difference between dbr count
and release count is greater than 1. This might be agrressive.
Modified the condition to reflect the worst case where LUT has
no empty entry.
Change-Id: I010431b446ddb66364505f0c8d9a70dd181eb8b1
PHY may not be able to capture the CFR data in certain cases.
Ucode will update the reason due to which CFR capture did not
happen in PHYRX_PKT_END TLV.
Channel capture status -
0 - CAPTURE_IDLE
1 - CAPTURE_BUSY
2 - CAPTURE_ACTIVE
3 - CAPTURE_NO_BUFFER
Originally, ucode updated channel capture status only for PPDUs,
for which PHY was able to capture CFR data successfully. Ucode is
making a change to report channel capture status in PPDUs for which
PHY was unable to capture CFR data.
Re-positioning the counters in host to handle this new change in
ucode.
Change-Id: I915fe7c4969649754936cab624343e044b397a0c
Framework to accumulate RCC configurations until user issues commit
command. Once commit command is issued, all the gathered configurations
are sent to FW through WMI fixed and variable TLVs.
Change-Id: I84fec42d22a3b4eceb710b72d89a7c3047fed1f6
CRs-Fixed: 2582833
Channel Frequency Response(CFR) captures FFT bins corresponding to a PPDU
received and this is relayed to user space application along with
additional information about the PPDU gathered in the host. Usecases of
this feature include location sensing, motion detection.
Change-Id: If0da492bc1fcc0fc2b6e42339c56f9a54ee813f7
CRs-Fixed: 2541307
Converges EXPORT_SYMBOL() to qdf_export_symbol(),
this ensures easy enabling and disabling of exports
Change-Id: I5724a618c9dff7a30b9d314906fbabca943bded8
There seems to be a case where difference between DBR event count
and release count for CFR events is more than 1, which will dump
CFR's look-up-table. As the exact reason for this is not known yet,
we are reducing the log level for these prints to not be enabled
by default
Change-Id: I503f6423f08e6faa84b45747a28ec1a7de4724fc
Report CFR failed status to application by sending CFR header with
error status.
Change-Id: I67e370bbbd8294a14c32567922861a0b5226b0ea
CRs-Fixed: 2538596
For new CFR captures with AoA data, Meta data version is 2.
Updating meta data version to 2.
CRs-Fixed: 2537866
Change-Id: I4c6cb9775e5a9760630b1f28d61fb4bdfd084c6c
After every wifi up/down or load/unload, it is expected that
cfr enabled entries should be reset. Earlier, associated clients'
entires are cleared by FW. Unassociated entries are maintained by
host and were not cleared. This change clears them properly at
cfr_pdev_open level
Change-Id: I2dd7ce861901ccca72bc987c2f91677a481d401e
CRs-Fixed: 2531961
Signatures of target_if_dbr_buf_release and
target_if_dbr_cookie_lookup got updated as part of multi srng
support per pdev in DBR. Update the same in CFR.
CRs-Fixed: 2528137
Change-Id: If53fd9a1a4e4a30b8d9ba3eda9ade887e2c3322b
As part of FR 56301, phase data is being captured in CFR.
Fill the extracted information in CFR header.
Change-Id: Ia1f6245a1a18d1d11b266328b17e6506bd8439f4
CRs-Fixed: 2501944
As part of FR 56301, add support to capture CFR data for
unassociated clients on its Probe response's ACK
Change-Id: I14a4eead4ceeb3eb21d8f2bdf76007f873db1f4e
CRs-Fixed: 2501938
Replace void * tgt_if_handle of objmgr psoc/pdev with
abstract type handles provided by target interface
Change-Id: I903bbae99ec784fe445dc55f954792542d91f380
CRs-Fixed: 2467129