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
Currently unsafe channel list updated from firmware using
"wmi_wlan_freq_avoid_event_id".
This change is to update unsafe channel list for vendor
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT which we receive from
userspace.
Change-Id: I57ff334e9cf47468c30bc6884a9ead0a65a92eab
CRs-Fixed: 3103275
DMA unmap for scatter gather packets is done using
only frag0 dma address and the entire packet length
which will lead to incorrect behaviors. Add handling
to do dma unmap for all the fragments of SG packets.
Change-Id: I614553d9f96c573f0095c9be38706fd4ac3223ab
CRs-Fixed: 3112424
Add a log message to indicate RTPM resume is requested by RTPM
prevent runtime suspend API.
Change-Id: Ifb90493d1ea48601bb40708b1a2d7a821144a9b2
CRs-Fixed: 3110580
Num stats over QMI indicates how many stats requests are fetched
without triggering RTPM resume. If RTPM resume/suspend happens in
the middle then num stats over QMI counter should reset. Add logic
to reset num stats over QMI counter during WoW enter/exit.
Change-Id: I34fe93759bf8a7a2a6c0d4b389ad96b8e1ba4d6c
CRs-Fixed: 3110590
Tx descriptor is not being freed and put back in tx desc
pool for a long time. As a result, system is not going
into suspended state.
To find this descriptor, during dp_bus_suspend and
dp_runtime_suspend, parse through the descriptor pool to
check for any descriptors not freed for a long and trigger
self recovery when found.
Change-Id: Id97c5c8537c9bec922f4e254b5bf094505ee61ff
CRs-Fixed: 3109868
The compiler removes unreferenced TCL_DATA_CMD struct from the
object file. Hence this cannot be parsed in the dumps. This fix will
inform the compiler to retain the structure.
Change-Id: I6bc12893769f17dc3f51130b7e947f62b1bd3ea9
CRs-Fixed: 3105021
Add API qdf_time_ms_to_ktime which is an abstraction of ms_to_ktime
to the qdf layer.
Change-Id: Ie6510007b61bc3b3ac28648983b30a3c52e97098
CRs-Fixed: 3043864
Firmware advertises the service capability bit
WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL when it supports per
channel scan config flags. Get this and cache in psoc.
If firmware supports WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL,
it uses the upper-12 bits(bit-20 to bit 32) of channel_list
for flags and lower 20-bits(bit-0 to bit-19) for frequency.
If firmware doesn't support it, then channel_list holds the
frequency value only. Fill the flags and frequency accordingly.
Change-Id: I30d36a3c164e23cf0395129e5b93d186b81aa8a6
Crs-Fixed: 3103921
use dma_inv_range call instead of dma map and unmap
APIs during replenish and reap. This complete code is
under a compile time macro.
before change: 4160Mbps @ 96.5% (core 3)
after change: 4160Mbps @ 90.5% (core 3)
Change-Id: I61bca349a369ace06cd86f353880108cee013cb1
Spin_lock_bh is introduced in ipa wlan rx path by security fix
I0c0bc6e60efa193126ba1e3eca36c5e02f7f76a3,
wlan_ipa_w2i_cb->cdp_peer_state_get->dp_get_peer_state->
dp_peer_find_hash_find->qdf_spin_unlock_bh(&soc->peer_hash_lock),
which make rx pkt aggregation failed, for each rx pkt, once
put into backlog queue, net_rx soft irq is scheduled to handle it.
For each rx msdu, ipa rx work thread, net_rx soft irq and iperf/app
thread are scheduled, which make rx throughput failed to meet KPI.
To avoid spin_lock_bh, don't call cdp_peer_state_get for each rx pkt,
only call 1 time, and save peer auth state in IPA context, for following
pkts, just get peer auth state from IPA context without spin_lock_bh.
Change-Id: I36196bab4626194bda254219c4c44dc4f029cff0
CRs-Fixed: 3098860
Add Host enums for the following WMI pdev parameters related to
Beryllium Spatial Reuse.
- WMI_PDEV_PARAM_OBSS_MIN_DURATION_CHECK_FOR_SR
- WMI_PDEV_PARAM_TRUNCATE_SR
- WMI_PDEV_PARAM_CTRL_FRAME_OBSS_PD_THRESHOLD
CRs-Fixed: 3112080
Change-Id: I19accc6dc2a744599ccce6ebf683499d92881993
Currently, in the case of single pdev we return the PCI slot as 0.
But in case where the device is attached to PCI slot 1, API will
still return 0.
Make changes to always get PCI slot from PLD API instead of
returning PCI slot as 0 in case of single pdev.
Change-Id: I39b55eeb3ebfbd6c08d7cc15a1ac49932af78b51
CRs-Fixed: 3103192
Currently driver just cancels the scan request and does not free
scan request memory if netdev is NULL or get vdev ref fails,
which leads to memleak.
To address abobve issue, free the scan request if netdev is NULL
or if get vdev ref fails.
Change-Id: Id6605e76a8c0977df93428f2aeb73c0bdfb84685
CRs-Fixed: 3107784
Add additional attributes in QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT
vendor sub command to avoid usage of unsafe frequencies on wifi
interfaces sent from userspace to the driver/firmware.
The driver/firmware shall use restrictions and power cap accordingly
to restrict the usage of these frequencies on operating interface(s).
Change-Id: Ib2234137e436f1ddfe1163aed6e1d4b291f19aa8
CRs-Fixed: 3098836
Currently, we are assigning 9 MSI Vector to DP.
But in some target available MSI Vector are less
because of which they are unable to assign 9 MSI
Vector to DP.
So, to fix the issue reduces MSI requirement for
DP from 9 to 7 and mux DP interrupts.
Change-Id: I48da2d0e8921db3298903a398f981e5b45a60987
CRs-Fixed: 3111170