Rx desc pool have a flag to identify whether frag or nbuf
operation needs to be performed for alloc, map, prep and
free buffer for monitor dest buffer.
This flag will be set only for mon destination desc pool,
if RX_MON_MEM_FRAG feature is enabled.
In all other case, It will be set to Zero and default nbuf
operation will be taken.
This flag get initialized at the time of pdev rx_desc_pool
initialization and gets reset while pdev deinit.
Mon destination buffer will have support for frag if
RX_MON_MEM_FRAG flag is set.
Change-Id: I67c6c823ee4f114035b884c024a1a9054a40665b
CRs-Fixed: 2741757
Special vap type is used by scan radio solutions.
Indicate special vap type to FW through
vdev create WMI command.
CRS-Fixed: 2746724
Change-Id: Ie5e4b059306c5c80d93dba0ebb4810b3e570878f
Add HE capability IE parsing support to get NSS supported for
scan entry. Curreny only vht capability ie pasing suuport ie
is there. But in case of 6GHz band vht capability IE ont be
there and thus giving false NSS as 1.
Change-Id: Ie25d67d765c0880ed82df0b6cc2d047fe08adec0
CRs-Fixed: 2744234
Add export function symbol for functions and compile
qdf_func_tracker.c file, required for code instrumentation.
These functions print the dump of function call map and are
called during CBT test case execution, to find errors and
trace function calls.
Change-Id: Idc79de7111398956b4995d3d7cbefa45a079b100
CRs-Fixed: 2748686
Currently when query REO stats, each time REO will response
cumulative REO stats per TID, while host side count them as
delta stats between each query.
Reset host stats to 0 before each query, and if query timeout
happened, use the last saved stats for this time query.
Change-Id: I29e986b3c8859f5c3d1b557d9cc980a52219d664
CRs-Fixed: 2743352
Currently in_use and unmapped flag from rx_desc can not know is
the rx nbuf has done IPA smmu map/unmap accurately.
add rx nbuf IPA smmu map/unmap flag in qdf_nbuf_cb, and use
this flag to check if IPA smmu map/unmap need to be done or not.
Change-Id: I19bbc6cc69ba752ef7c58d41fbe26299ca96d29e
CRs-Fixed: 2731313
It is possible pdev already be freed in previous
wlan_objmgr_pdev_component_obj_detach function.
Here avoid to print this pointer again.
Change-Id: I8618eec1c0a9f493141d0191a9a3e6c0a08305dd
CRs-Fixed: 2751813
Add service ready parameter to update the capability for Preamble Puncturing
Tx support from target. Add WMI support for configuration of Punctured
band setting from Host.
Change-Id: If5714c162356c35c7c385c4596043c0bc671be9a
Deliver fragmented frames directly to stack without reinjecting back
to REO. Handle PN check for fragmented frames before delivery.
Drop the frames on PN check failure.
Change-Id: I7865def0d39fa83378073e07d318c34dccc6c6e5
CRs-Fixed: 2739870
Move the dfs current channel NULL check inside the routine that does the
sanity check(dfs_radarevent_basic_sanity()).
Since we have two completely different functions to handle radar from:
1) Home channel
2) Agile Channel
we do not need agile detector check in "radar from home channel" function.
Change-Id: Ie91f1d24c948e9d136f49d9ce8bc4cff29327862
CRs-Fixed: 2737944
The process radar found indication was generic radar action function that
caters to both radar on agile channel and current operating channel.
Since this API dfs_process_radar_ind() has been split into, one for
the radar on agile channel dfs_process_radar_ind_on_agile_chan() and
the other one dfs_process_radar_ind_on_cur_chan() for radar on current
channel, and the agile spefic functionalities have been defined in
dfs_process_radar_ind_on_agile_chan(), dfs_process_radar_ind_on_cur_chan()
need not have any agile specific part.
Remove the agile specific part in dfs_process_radar_ind_on_cur_chan().
Also changed the following: dfs_is_precac_timer_running function returns
true for both agilePrecac and legacy preCAC. Therefore replace
"dfs_is_precac_timer_running" by "dfs_is_legacy_precac_enabled" while
checking for the radarsource.
Change-Id: Id6921d0919a7a630d201ef7c1037510285b12d73
CRs-Fixed: 2737327
The process radar indication is huge making it difficult to read and debug.
It can be modularized into 3 high level functionalities based on whether
HW mode switch action is in progress or not, whether the radar found
detector id or segment id is the same as agile detector or segment and if
none of these conditions satisfy then the radar might be on the current
operating channel.
Classify DFS radar action based on HW mode switch status,
detector id and preCAC status into 3 sub-functions.
i) dfs_radar_action_when_hw_mode_switch_in_progress()
ii) dfs_process_radar_ind_on_agile_chan()
iii) dfs_process_radar_ind_on_cur_chan()
Change-Id: I7d862eb08d6373fabaedda4b77deb966466f6b1a
CRs-Fixed: 2737273
Move RU and MCS strings from dp_stats.c to cdp header file so that these
strings can be used in user applications including the CDP header. This
will remove redundant definitions of these strings in user application
Change-Id: Ie74283f54131378447324b927e19e9716ef7519a
CRs-Fixed: 2749062
Change the receive and transmit Iv in wlan_crypto_set_wapi_key
such as:
tx_iv[16] = {0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36, 0x5c, 0x36, 0x5c, 0x36,
0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36};
rx_iv[16] = {0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x36, 0x5c, 0x36, 0x5c, 0x36,
0x5c, 0x36, 0x5c, 0x36, 0x5c,
0x37};
This is done as wpi_key_tsc_counter sequence was been sent
in reverse order. 0x365C365C365C365C365C365C365C365C was
sent although 0x5C365C365C365C365C365C365C365C36 was expected.
This is because new chipset firware expects the format to be
in big endian. Also, taken care for the backward compatibility
required for the old chipset firware with the feature flag.
Change-Id: I8c795df5a9143e5089e93aaebe7787e51b570c74
CRs-Fixed: 2743162
packetdump_timer is stopped when deregistering the
function, to make align, start it when registering.
CRs-Fixed: 2748669
Change-Id: I9d106f81b04011111c4b01e6b6c50403202e7c6e
When matching ppdu_id is detected during HAL processing, then print the
error message instead of going for assert.
Change-Id: I8f58359a66fbeaf2ebc98477f65bab446c0a784b
CRs-Fixed: 2747953
Remove self and BSS peer back pointers and added APIs to
get self and BSS peer from VDEV
These new APIs will iterate through peer list and return
the appropriate peer by taking a reference
Caller has to take care of releasing the reference
Change-Id: I550ff83d665f3ad0a185bea1a1e6270c5474ff07
The 2 functions dfs_print_delayline and dfs_get_pri_margin are specific
to Partial Offload and Direct Attach. Bringing them under the macros in
order to resolve unknown symbol errors for 16M flash profile.
Change-Id: I0ca1514e37ba54083a9f614825dda4f31a95e7ea
With the current implementation, the chanwidth of the Agile channel
(for both PreCAC/RCAC) is the same as (or less than) as the chanwidth
of DFS curchan. The width of the DFS curchan is determined in the
function dfs_find_curchwidth_and_center_chan_for_freq which calls a
macro WLAN_IS_CHAN_11AXA_HE80 for 80 MHz which checks if the channel
is a 5G channel and 80 MHz. As a result, for wideband (i.e radio has
both 5 and 6Ghz channels), if the curchan is a 6GHz channel this check
fails which leads to invalid chanwidth and RCAC does not start.
Fix this by checking the chanwidth of the DFS curchan for both 5GHz and
6GHz in case of 11AX.
Change-Id: I9aef64cea1d442fc31b2314da08baba7769650f2
In Partial-Offload, when a repeater is associated with Root-AP in
DFS channel. The Repeater STA will get connected with Root-AP and then
Repeater-AP comes up in the DFS channel but it does not send beacons.
The reason is, when a STA vap is UP and in connected state, CAC is
skipped. So, for Repeater-AP we send VDEV_UP before Spoof radar
pulses event. FW rejects the VDEV_UP sent by host and therefore
Repeater-AP will be in UP state but it does not send any beacons.
The fix is, while checking the condition if STA vap is set to true, we
also check whether spoof radar event is completed. If the spoof radar
event is not completed, then we will not skip CAC and then VDEV UP
will be sent after the Spoof radar event.
CRs-Fixed: 2748740
Change-Id: If63f3118d3e40785b375a0bd59d46783c14fe433
Introduce APIs to perform postNOL channel switch to user
configured channel after the NOL expiry of said channel.
This channel change will involve regular CAC after vdev start.
Change-Id: I426b0c4b51c84789870841dd4c3af942be185f20
Enable burst scan for GO+STA case and set the burst
duration as 1 active dwell time.
Burst scan provides higher priority and can ensure
the scan request granted, since P2P GO requests larger
duration for its high priority channel request.
But this value will limit the off-channel time to give
more bandwidth for P2P home channel.
Also, change minimum rest time from 50 to max rest time
i.e. 100 for MCC case for all concurrency combinations.
50ms min reset time only grants 1 home channel in MCC,
when there is only 1 home channel and has heavy traffic,
it can be scheduled firstly as scan BSS channel, and if
activity check found not much traffic for the 1st 50ms,
it decides to go foreign channel directly, the 2nd home
channel with heavy traffic will not get chance to schedule.
Change-Id: I2cd73750709a964bd23896fe10f754caa28c2789
CRs-Fixed: 2716111
wdi event has to be called before dp_txrx_ppdu_stats_handler.
this will handle all pktlog htt messages including cases for mgmt frame
Change-Id: Iefba15b61278fe77cbb6d6df9190e66b46ed573c
On some cases, dp_rx_thread can not handle nbufs in time,
then a large number of packets are pending in
rx_thread->nbuf_queue, which run out of system memory at
last and failed to malloc new buffers for refill buffer
ring, fw crash is encountered. To avoid this, drop RX
packets when the pending number becomes large.
Change-Id: I370ad983b185b6ecb28fa7c0b4820b8edc00c710
CRs-Fixed: 2737191
WMI commands are logged in hex in FW and hence log WMI CMD ID
in hex when stats request is send over QMI to assist in debugging.
Change-Id: I9ce63db30b491f26b9d6ac7ae3c98e6177452d7c
CRs-Fixed: 2733208
In direct buf rx, if physical address is not intact or
is corrupt, the dbr lookup for vaddr will fail and result
in vaddr being NULL. There is no validation for this vaddr
in the caller and hence results in NULL access in the
callstack.
Add debug log and return error status when dbr
vaddr lookup fails, which indicates that there is
corruption in paddr received and avoid NULL access.
Change-Id: I76ee300ce3e686765dd5c4ee73fa71d1735c163a
CRs-Fixed: 2748529
Add connect functions to convert kernel specific connect
request to connection manager specific connection request
for connection manager infrastructure.
Along with the above functions, add the file structure for
connect, disconnect and roam functions for connection
manager infrastructure.
Change-Id: Id4e389d06cea6e39327faef0c119275741574785
CRs-Fixed: 2739318