Firmware sends the following reg rule to build 5G 240MHZ channels
240MHZ reg rule:
start: 5490, end: 5730, max_bw: 240.
However, 240MHZ is not one of the standard IEEE channel width.
Hence the channel finding APIs will fail to find a channel of 240MHZ BW.
240MHZ is considered as a punctured 320MHZ channel (320 - 80).
Hence convert the max bw of 240MHZ reg rule to 320MHZ within the host
so that channel can be built.
Also, change the 5G 240MHZ bonded pair's end freq to 5720. Since there is a
5MHZ bandwidth gap between channel 144 and 149, the bonded pair is
restricted to 5720MHZ on 5G.
Change-Id: Iee8dad0317f7ecb95843faa3d0779b854b8f48fa
CRs-Fixed: 3106866
User can specify a limit and frames are dropped when the memory
used by packets in the queues goes beyond the limit. This is a
SoC level param.
Change-Id: Id2bd9caaa11d9ea9f9e04c635ff629190bb62916
Add target_if layer APIs to send wmi commands to add, delete,
and update AST. The dp_ol_if_ops functions call into target_if
layer for DP-CP interaction.
CRs-Fixed: 2997266
Change-Id: Ie392576e3e46d47f658b741f48732d069ee2847d
This change adds framework for deferring auth request
while link peers are in the process of deletion
Change-Id: Ic96daf7d994c65b10e15f72e4a676b8156573cf2
CRs-Fixed: 3113557
This change is to update restriction mask to uint32_t from uint8_t
as per QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFACES_BITMASK.
Change-Id: If5a6748425502b1f27654a2e6bfa0e5c2b8556de
CRs-Fixed: 3118988
Memory node pointer to unaligned vaddr, and it free the vaddr firstly
and then remove the memory node, which cause invalid memory access.
This change remove memory node firstly, and then free the unaligned
vaddr.
Change-Id: I3b81c1eb4df7c786a3deec456294107ee3b8f226
CRs-Fixed: 3118545
By the time driver reaches prevent l1 call there is chance
of EP vote access getting disabled in-flight, to handle
this skip vote request if EP vote access disabled in-flight.
Change-Id: I91e1cdfc08492188ad8614339d5918c294bf10e4
CRs-Fixed: 3113786
Due to usage of lithium specific structure, the filter settings
were not getting reflected in the htt msg that is being sent to
FW. Usage of BE specific monitor pdev structure is helping out
in configuring the monitor filter settings for various modes.
Change-Id: Ie4a59ec16717d752c6c49624142966722bfacc08
CRs-Fixed: 3118596
Add function pointers to free buffer address stored in status buffer
and support tx monitor in legacy and Waikiki flow.
Change-Id: I28612d388009292ff751fe514183fb801909f485
Introduce qdf wrapper API
1. frag is added to nbuf fragment array. If frag can't be fit in that nbuf
a new nbuf is allocated and frag is added to the new nbuf. Once added
nbuf is added as a fraglist to head nbuf. On a subsequent call, frag is
added to the last nbuf in a fraglist.
2. get reference for fragment.
Change-Id: Ia4ccbc48e54b08d6b9d4f0cf5089fbf43ee8b496
For reports modes 0 and 1, the number of FFT bins in a detector will be 0.
We calculate end_bin_idx as start_bin_idx + num_bins - 1.
When start_bin_idx is 0 for these report modes, end_bin_idx will be -1.
Since bin indices are unsigned integers, end_bin_idx becomes a very big
value and we will try to copy unintended large number of bytes.
Fix this by forcing end_bin_idx to start_bin_idx when num_bins is 0.
Change-Id: I11e5dd673fc95a1ce3823ef977fd70c34a4ec67e
CRs-Fixed: 3096955
Puncture bitmap is different from Puncture pattern.
A bit in the puncture bitmap is set to 1 to indicate the corresponding
20 MHz subchannel is punctured and set to 0 to indicate the
corresponding 20 MHz subchannel is not punctured. Puncture pattern
is the reverse of puncture bitmap.
From the use of reg_punc_pattern, it should be puncture bitmap.
Rename reg_punc_pattern to reg_punc_bitmap.
Change-Id: I1c7fc1b689ba724862761dc10f72a543679bb85e
CRs-Fixed: 3108165
First host checks below two things in PNO scan request:
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in pno scan request.
2. At least one 6G channel is present in the pno scan req.
If any of above conditions satisfy, Host fills all remaining
(other than channel(s) present in pno scan req) valid 6 GHz
channel(s) to pno scan requests and set the flag
FLAG_SCAN_ONLY_IF_RNR_FOUND for each remaining channel(s).
Host sends this updated channel list via WMI command
WMI_START_SCAN_CMDID_param_tlvs->channel_list for pno scan
to firmware.
By this driver allows Firmware to scan 6G channels based on
RNR IEs only (for colocated APs reported by 2.4/5 GHz APs).
Change-Id: Ib6118c4525e9fbe233eb6a7e07a4a3345d486e8a
CRs-Fixed: 3103923
Currently window register accessing with PLD lock is not enabled for
HIF path of KIWI, enable it so there is no race condition with HAL
register accessing path.
Change-Id: Iceeba36ca6febdeca0e7f7bc0dcb7d4adc17bc51
CRs-Fixed: 3110425
Add reg_is_chan_disabled that is used to check if channel
is disabled or not in given channel list.
Rename the API to reg_is_chan_disabled_and_not_nol.
Change-Id: I2b05b0cea0472fc924634ae921e77842f0608a11
Add the 6G config flag so that super channel list functions are not
compiled on devices that do not support 6G.
Change-Id: I95a13c6cc8dd6ee36aed5fdb1df4555a08adc058
CRs-fixed: 3118310
HAL changes to populate agc gain, CFO, rx_start_ts, mcs_rate and
gi_type to CFR info for QCA6750.
Change-Id: I164324b1e929399a8dacf88f3012970c65d5d653
CRs-Fixed: 3115256
Fix compilation error when monitor mode files are not present
and QCA_MONITOR_2_0_SUPPORT is disabled.
Change-Id: Ia70976a89c0ca2349cf744c23a68b3004cbd3325
CRs-Fixed: 3117582
For per-session detector map, maintain a different
det_map_valid flag for Normal and Agile spectral scan
mode.
Change-Id: I5a2a0253624a393feba966641d518e59a48f4a8a
On some targets, minidump will be built as DLKM, and use IS_ENABLED
macro to cover both built-in and DLKM scenario.
Change-Id: I93374b83020af7122531fe282042236cae8037b3
CRs-Fixed: 3116787
Add an API wlan_reg_get_superchan_entry to get a super channel list
entry for a given input channel index.
Change-Id: Ia231669872c15998549aff6262d66766b8cec5c2
CRs-Fixed: 3098998
Add an API reg_translate_6g_chan_enum to translate an index between
MIN_6GHZ_CHANNEL and MAX_6GHZ_CHANNEL, to an index between 0 and
NUM_6GHZ_CHANNELS.
Change-Id: I5eaacf36403252a56293b8fadc797ac2aacd751d
CRs-Fixed: 3099080
Since there are multiple power modes in 6G, the current channel list
alone is not enough to represent the capability of the chip or
device. Given a channel, in many cases it may be required to know all
the power modes that are supported by this channel.
To represent this information per channel, the concept of a super
channel list is introduced. This super channel list is essentially a
mapping between a channel and supported power modes, and
their associated attributes, such as power values, Indoor/Outdoor etc.
The 6G super channel list is stored in the regulatory pdev private
object.
Change-Id: I8657fed17823929c87110aa7a6cf24fe898bb78f
CRs-Fixed: 3098998
Introduce a new flag "BE_PKTLOG_SUPPORT" for beryllium specific
pktlog support.
Change-Id: If91156541b322905ad5d97cf2d9d7ae687290ecb
CRs-Fixed: 3115832
Current there is no ce debug history when testing
perf build, so it is hard to debug some issue.
Here it only enable ce2/ce3 on perf build, which keep
only necessary log here.
Change-Id: I29b998939cfa25f0547a9871721c6daeb0fdd961
CRs-Fixed: 3058740
Register a callback to get max supported FW phymode for the given
channel list.
Also, corrected the array index value used to populate the DFS flag and
phymode.
Change-Id: Id635a159acac085827831726d3020cc209b810cf
CRs-Fixed: 3083405
In the 5.4 kernel, a kernel timer expiry is delayed at the rate of 1 sec
per minute (approx). This accrues to 30 seconds for NOL which is a
30 minutes timer
To avoid the delay use HR(High Resolution: "hrtimer_start") timer for NOL
Change-Id: Ia1072532120d909bbbb73d6acb74643956a66900
CRs-Fixed: 3043864
Send only eapol packets to stack and drop other packets
when found in rx err path when either REO or RXDMA push
reason is set to ROUTE type.
Change-Id: If1f43426adf21f7d00f17d369cd7fde7f7f85866
CRs-Fixed: 3114312
Add qdf wrapper for dma_clean_range and avoid use of DMA
map/unmap APIs in Tx. simple fast path.
Gain of ~150 Mbps is observed while running 4 radio traffic.
Change-Id: I0e96bfee43fe810da8c861cb0f4535fb0ba7f6f7
The channel finding APIs invokes regulatory API reg_fill_channel_list
to fetch the channel params for a given freq. However,
reg_fill_channel_list considers NOL channels as disabled
Hence if the input freq is in NOL, channel finding fails.
Hence in reg_fill_pre320mhz_channel(),
(a) : For MCC, invoke reg_set_channel_params_for_freq()
which considers NOL channels as disabled.
(b) : For WIN, invoke wlan_reg_get_channel_params()
which considers NOL channels as enabled.
Change-Id: Ib184aee665525a9eff57d0d9214925a919e5269f
CRs-Fixed: 3089609
1. avoid accessing CFG parameter in per pkt path.
2. Access peer, vdev and pdev only when current peer_id
is different from previous peer_id.
3. Avoid HKv1 and v2 checks in WDS learning path.
Change-Id: Id7fb7a29c642480f8ca58738dbb0c92130e44ecd
Add max MLO (WLAN_UMAC_MLO_MAX_VDEVS) and MLD max WLAN_UMAC_MLO_MAX_DEV
in #ifndef block so that this can be overridden by cflags.
Change-Id: Iaa2dd1a8d6759b9f9e79bc076e8a4e4673921be8
CRs-Fixed: 3115703