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
Save BTM BSS termination timeout value and BTM MBO assoc
retry timeout value coming from FW through
wmi_roam_trigger_reason_tlv_param tlv.
Save Blacklist reason, Source of adding AP to BL, timestamp
which indicates the time when AP added to blacklist and
Original timeout value in milli seconds when AP added to BL
coming from FW through wmi_roam_ap_info_tlv_param.
Change-Id: I0a328814e77c7d2452672f43c855d2c1b8646b66
CRs-Fixed: 2744255
Currently driver sets the NOL state of the channels to false
on every regulatory updated, which indicates the channel is
not in NOL. Which may lead to some issues where the channel
is actually in NOL but host treats it as non-NOL channel.
Ideally NOL list should be maintained throughout the driver
lifetime and across the regulatory changes.
To address this issue add a logic to not update the NOL state
of the channels whenever the regulatory update is received.
Change-Id: I7487a24a349f5f6e06a058b4d07799c8e5ac2d40
CRs-Fixed: 2735137
Add WMI support for WMI_TWT_SESSION_STATS_EVENTID. This event
contains stats for a given TWT session.
Change-Id: I01d5f7b30da803ee713a14c1d1124b8af7161bca
CRs-Fixed: 2609951
Add WMI support for WMI_TWT_SESSION_STATS_EVENTID. This event
contains stats for a given TWT session.
Change-Id: Ieca2b6845fd2ec32ccdfb1021611bed07379d365
CRs-Fixed: 2609951
Extract additional params obtained from fw as part of
WMI_TWT_ADD_DIALOG_COMPLETE_EVENTID during TWT setup
Change-Id: Ic58a1da463238a748cbf2678fe0156789ebb3559
CRs-Fixed: 2737036
In 6GHz only 11AX onwards phymode is supported. Update default
phymode sent to FW in wide band scan request as 11AX HE20.
Change-Id: I56849adc8a37bf12e510c3c435a00a80952d42e3
CRs-Fixed: 2746701
Implementation of QDF API to allocate skb to avoid recycler pool
and extending skb debug framework support.
QDF API: qdf_nbuf_alloc_no_recycler
Change-Id: I32ccae7337000c899e8fba8127aa9fb3c8551783
CRs-Fixed: 2734717
Implement the filter to reject the candidate with the channel in
the NOL list(i.e FS hit channel).
Change-Id: I8e39cd9e13a17816f7f96354c9880b11af9c06c8
CRs-Fixed: 2746157