Function to notify HMWDS ast add status to upper layers via
newly added WDI event WDI_EVENT_HMWDS_AST_ADD_STATUS
Change-Id: Ib6fad7a48425ce7de16d94bb401af0c428c8e556
CRs-Fixed: 2745460
As part of vdev start response, dfs_precac_agile_start() is
called which is intended to set the agile active bit for
the VAP's pdev and start preCAC if possible and not already
running. The active bit for a dfs/pdev indicates that there
is at least one active VAP for that dfs/pdev object.
To set the "agile_precac_active" bit, the "cur_precac_dfs_index"
is used instead of the index of the "dfs" that calls the function.
"cur_precac_dfs_index" need not always indicate the "dfs" that
calls the function.
Consider a case where there are two active 5G radios (DBS_SBS),
both with preCAC enabled. For the first vdev start response of
radio A, dfs_precac_agile_start() is called which sets the agile
precac active bit for radio A and starts preCAC. Now for the
first vdev start response of radio B, dfs_precac_agile_start will
set the current preCAC index as active, which is radio A (which
was already set). The agile preCAC active bit is never set for
radio B even though it has an active VAP and agile capable.
Because of this, after radio A completes preCAC, radio B does
not get a chance to run preCAC for it's channels.
Set the agile precac active bit for the calling radio,
irrespective of which pdev is currently running preCAC, to allow
preCAC when the radio get's a chance.
CRs-Fixed: 2705681
Change-Id: Id11c910c69c85ce9ae03e7989e784a272d5cd905
Remove double validation of ppdu_user tx_ratekbps
and ppdu_user rate index while updating per peer
Tx statistics
Change-Id: I9d4b65556928b21ee6caa10fb15193c8705ad2af
Bring up a Cascade AP in HT80 mode, country DK and enable preCAC config.
During vap start, a preCAC channel is chosen by invoking
tgt_dfs_find_vht80_precac_chan_freq() and then
dfs_start_precac_timer_for_freq() is invoked to start the preCAC timer.
In dfs_start_precac_timer_for_freq(), the dfs pdev object is fetched
indexing cur_precac_dfs_index in DFS SOC object as follows:
"dfs_soc_obj->dfs_priv[dfs_soc_obj->cur_precac_dfs_index].dfs".
The cur_precac_dfs_index is initialized to 0xFF in dfs_rcac_sm_create().
This index is then over-written to the current DFS pdev index in case
of agile preCAC in dfs_prepare_agile_precac_chan() API. This API is not
invoked in case of legacy preCAC and hence cur_precac_dfs_index continues
to hold 0xFF. This leads to kernel paging request failure
and the system crashes.
Initialize 'cur_precac_dfs_index' to dfs->dfs_psoc_idx which holds
the index of the active dfs pdev.
CRs-Fixed: 2708233
Change-Id: I3aae7ea8f611d72bfe23c20cc2a34d94bba83485
Kernel API's used for multilink FR have been modified.
Use version-appropriate API's for the feature to work
with 5.4 kenel.
Change-Id: Id5bb90136fcefccd9c6ab4c8378991695b195c7b
DCS command was assigned wrong enum value.
'get_nominal_noisefloor' command has duplicate entry in the table.
Correct the enum value and remove the duplicate entry.
CRs-Fixed: 2708425
Change-Id: I27c85b26e261bbe6f201bc434bcb97b1b9c75fa4
Add new commands to set and get the rpt_max_phy feature.
This is radio specific configuration.
Commands:
cfg80211tool wifiX rpt_max_phy 0/1 - To disable/enable feature.
cfg80211tool wifiX g_rpt_max_phy - To get feature flag state.
Change-Id: I421e2af15a0415596fbddb552673efd3d3be2070
Convert host pdev id to target pdev id before sending
WMI_PDEV_UPDATE_PKT_ROUTING_CMDID cmd. This is needed for HK_PHYB
RDP where 0 host pdev corresponds to target pdev 2
Change-Id: I2bb63453a19d899896b7d87d90ac4c78721c7a31
When OCAC completion event with status success is given to Host, Host will
trigger a zero second precac timer so that the precac timeout callback
function is called.
For a 165MHz agile channel, FW gives OCAC completion in terms of center
frequency 1 and center frequency 2. The center frequency 2 is non-zero
only for the 165MHz channel. This center frequency 2 information from
OCAC completion event is not stored in host before the zero second timer
is triggered.
Store the center frequency 2 information from OCAC completion event in
adfs params before triggering zero second timer.
CRs-Fixed: 2709894
Change-Id: I74af82d29a3fde859c8a3e1ea13835ebf24578b8
Consider a case where the current operating channel is 36HT80 and Agile
channel is 5290. When a radar is injected on agile channel 5290, Host
aborts agile on channel 5290, changes the timer status to not running and
configures agile to the next channel 5530 and then changes the time status
again to running. But the FW might send the OCAC completion event, with
status as OCAC CANCEL for the previously configured channel 5290. Host will
now change the precac timer status as not-running even though Host has
changed the agile channel to 5530. This is an undesirable state change.
As a consequence, when a radar is injected on the agile channel 5530, Host
will add the channels to NOL but will not trigger a channel change because
according to Host, the precac timer is not running(Host will change agile
channel on radar detection only if the precac timer is running).
Whenever an OCAC completion event is received, check if the event is
received for the currently configured agile channel, else ignore the event
without processing.
CRs-Fixed: 2677927
Change-Id: I18788857bc97a8f78426185f00596079ae2cbfd5
for MU frame, rts and cts are transmitted only for first user.
fix other place to use index from caller instead of 0.
Change-Id: I672d91c3df2fac358942304ad6613ee32313e442
For full monitor, it is observed destination ppdu_id
and status ppdu_id mismatches.
a. If status ring ppdu_id is leading compared to destiantion ring
ppdu_id, drop destination ring ppdus
b. If status ring ppdu_id is lagging compared to destiantion ring
ppdu_id, drop status ring ppdus
c. Handle warp around scenarios
CRs-Fixed: 2686747
Change-Id: Ie059c891347d4ff59b230881d5a9049d8acf279e
Few entries have return type as s32 which is not compatible with
the optimization. So move them back to XML files
Change-Id: Ib14aba6a65d73b3fd430533d8cfbe8693f1ff249
Rolling CAC is supported for FCC and MKK domains. MKKN is a new
variant of MKK DFS domain in which RCAC is not enabled.
Enable RCAC for MKKN DFS domain in addition to FCC and MKK.
CRs-Fixed: 2701619
Change-Id: I52ff8079d5cea9977cc49faa70af29ad44ce12d3
deauth frames are treated as speacial frame where peer id
point to bss peer id but payload RA points to station
mac address. Peer filter is done based on payload.
Change-Id: I4238a108a62accbf3a53f74332a10377675870b8
CRs-Fixed: 2692363
In case of multiple pdev in SoC, the pointer
to original buffer containing AP info(sent to
target) is manipulated. This causes wrong data
to be sent to target.
Fix is to keep a copy of pointer to manipulate
and retain original pointer for other pdev.
Change-Id: I85ea3d591ef486a945cf27a9c4a1c88b0fcc1b5f
Qcn9000 changes to handle offset changes
with respect to rx flow search entry.
Validation Details: Unit testing Rx FSE feature and MIG run
CRs-Fixed: 2595489
Change-Id: Ib470dadf9d3dcad4203e7e9af7e5af69a3628a7a
Reinitilize len variable in the while loop. This change is needed so
that the value of len does not exceed the max wmi limit.
Change-Id: Ibc86c2ab4eecb6d9919765f64d8a259ddea5475f
dump_chmsk_tbl was incorrectly filled as a set command instead of
get command. Correct the entry in the table
Change-Id: Iffa4a3bad427617ce70099761054f4db4b8cd5dd
CRs-Fixed: 2694965