Currently when OPT_WIFI_DP is enabled, dp_tx_get_queue()
sets the ring_id always to one ring. This could potentially
affect the Tx data rates. This change is to ensure
all the Tx data rings are used.
Change-Id: Ib1ecf7f36f6967c0edf947d6310d6ae7caf43e5b
CRs-Fixed: 3577829
Recently, Word compaction is by default enabled as part
of all monitor mode realated features. Due to which, while
parsing the pktlog data, multiple TLV parsing errors are seen.
Hence, with this change word compaction is disabled if pktlog
is enabled.
Change-Id: I35153f74da2de5978b225ced7f8c1112f3aff3b2
CRs-Fixed: 3551975
Optimize tx completion processing in fastpath by adding the list of
tx descs to the free list directly instead of individually accessing
each descriptor and adding it to free list. This gives advantages of
not taking descriptor pool lock for each descriptor and rather takes
the lock only once when appending the whole list of descs to the
free list.
Also removed unused member shinfo_addr from tx_desc structure. Removal
of this member enables increase of flags type from u16 to u32 without
increasing the size of tx_desc structure. These changes improved peak
KPI by 2% in SFE mode.
Change-Id: I995de9cc08c866ad6e1cd1efc76ac2a35d40fb7c
CRs-Fixed: 3584578
During dp_vdev_flush_peers after peer unamp ref_cnt
for peer is set to 1. Which in case if peer unamp
for MLD peer is called before link peers from dp_vdev_flush_peers,
it will result in MLD peer delete before link peer.
To avoid MLD peer delete before Link peer, after peer unmap
in dp_vdev_flush_peers do not explicitly set ref_cnt as 1
for MLD peer.
Change-Id: If7ab63eb213dc482205f3847f0b32e246ca76d51
CRs-Fixed: 3585860
In the case of STA mode, will be marking bss peer as part of
peer map events during the creation.
Due to this create event will be triggered during the peer creation
as bss flag is not set and there won't be any peer delete event
to bss peer resulting stale entries in mld hash.
Hence will be avoiding creation and deletion events.
Change-Id: I15a78ad0b8a90b34505880af94522abbe1de8fb5
CRs-Fixed: 3581548
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.
Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.
Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
In rx monitor deliver, Buffer need to be free properly for any
failure after MPDU restitch.
Change-Id: I7d2f649e8266d91d50a429a92c07bc42d1d730eb
CRs-Fixed: 3580509
Improve readability of monitor filter update error messages.
This will help to avoid redundant error message printing from
caller.
Change-Id: I63dbc52be7a2f9537bf226fe0008c4efb51fe582
CRs-Fixed: 3576860
monitor peer is not allocated for MLO MLD peer this lead to drop in
broadcast and multicast frame in legacy tx monitor path. Added support
to enable monitor peer for all peer.
Change-Id: I786554a918bae966a929e4c9188c1b0f324b5846
CRs-Fixed: 3544695
Lite monitor deallocation should happen before mon rings deinit.
Call lite monitor dealloc function before mon rings deinit
Change-Id: I9b93945ccc092ff524555e8a4aa9cd2e3877f70f
CRs-Fixed: 3578630
Currently, ast entry is not found when VDEV ALL
is there. Change is finding the ast entry when
particular vdev is passed and, also when vdev
all is passed.
Change-Id: Ib71b843c74b9a64cb15f221577ee8e2d30614973
CRs-Fixed: 3575721
Currently RBM id is not assigned properly for RX buffers
in Rhine architecture. Fix this by assigning RBM id during
soc attach in Rhine.
Change-Id: I8f3a781bfaf81366417107f4bd3da61b142ca1e2
CRs-Fixed: 3573342
Direct switch support to handle Rx cookie conversion
when HW cookie conversion is disabled.
Change-Id: I861d854fbeecc2c70e87be3f289915b7e915985d
CRs-Fixed: 3547681
Currently Refill buffer pool enqueue is using POOL_SIZE
macro, but there is possibility of dynamically configuring
max pool size less than that. So use max_bufq_len which will
be configured dynamically during refill pool init instead of
POOL_SIZE macro.
Change-Id: I610b5dff71861254aa8b6d30e2c562bd7316e120
CRs-Fixed: 3575599
Mark nbuf cb if Rx packet is routed via offloads, this gives the
info whether particular packet rx ring routing info is correct or
whether packet has entered offloads layer and rerouted back.
Change-Id: Ib3ad71216c514381d0bce1fb4744550d91880254
CRs-Fixed: 3540537
As the bss peer is closely tied with the vdev creation
and deletion, listeners might be uninitialized and result
race conditions. send an event only to the connected peers.
Change-Id: Ia0ae063c92bba38d2fb67fe4eae84f5562991fa2
CRs-Fixed: 3574176
Currently in htt tx completion for MLO connection
host is not converting peer id into ml peer id.
Due to wrong peer_id host is not able to find txrx_peer
due to which stats are not getting updated.
To fix the issue in case of MLO connection convert
received peer_id into MLO peer_id.
Change-Id: I2e90104053d59a319d46a2628c4e9cdcb32832a0
CRs-Fixed: 3574182
Compute the required pages properly, when num_descs is not
multiple of DP_CC_SPT_PAGE_MAX_ENTRIES(512).
For example, if num_descs less than DP_CC_SPT_PAGE_MAX_ENTRIES,
then 1 page needed rather than 0.
Change-Id: I1c4b12cfebef6a9b315baf9044355caab1b112de
CRs-Fixed: 3571562
Add change to update monitor destination ring interrupt handling
thresholds from INI.
Change-Id: Ibfced2b809ac2101171e8fe9f58e021a5a1f8ccf
CRs-Fixed: 3569507
The dp_tx_tso_num_seg_pool_init_by_id() stub implementation has an
incorrect semicolon, so remove it.
Change-Id: Ie70aafdb83116e3e3fb7bd96223b0c770e80eb7f
CRs-Fixed: 3500205
1. In lowmem profiles the number of tx_desc in 4th pool is reduced to
quarter for memory optimizations.
Added new API dp_get_updated_tx_desc which will return the desc value
from INI based on the flag DP_TX_DESC_POOL_OPTIMIZE.
2. Changes to introduce new INI to get reduced desc value for 4th tx
desc pool.
This helps optimize 0.75M per SOC in lowmem profiles.
Change-Id: I033fcaeb843019fb03bb77e0d05a3ebf60fa806a
CRs-Fixed: 3557483
This flag DP_TX_EXT_DESC_POOL_OPTIMIZE if enabled will reduce the number
of ext tx desc pool to 1.
1. Changes done to split the tx_desc and ext_tx_desc pool number
variables in alloc and free path. Based on this flag the reduced
ext_desc_pool count will be returned.
2. In Tx path, since the pool id is selected based on the CPU, changes done
to override the desc_pool_id of ext_desc_pool via new API
dp_tx_ext_desc_pool_override to 0 with which from whatever core the packets
comes from, pool 0 will be chosen for ext_desc.
Change-Id: Iae8bf9952a136ba2c55256d8f305b6d5fbde5d83
CRs-Fixed: 3552532
peer find by mac function is getting used by
many components. so, Movng that to common path.
Change-Id: I390b86af73618661857ed80d478fe4f48bee9fe1
CRs-Fixed: 3563204
Two SMMU issues are seen on IPA domain with regard to RX.
1. map without unmap
2. Buffers not mapped into IPA.
With If198a6c5f22af58fdaf9d9c020c74b1f76002e37, mapping
RX buffers to IPA domain are deferred to IPA enable pipes
phase with soc->ipa_mapped flag check added. This leads
to a race window where RX packets are routed to WLAN Host
first with soc->ipa_mapped still being 0. In such case, RX
buffers handled by WLAN driver will neither unmap from IPA
domain nor map into IPA domain.
For !ipa_config_is_opt_wifi_dp_enabled(), fix is to set
soc->ipa_mapped to 1 earlier in soc attach phase instead of
IPA enable pipes phase. With this fix, RX buffers can be unmapped
from IPA domain and mapped to IPA domain in dp_pdev_rx_buffers_attach()
and dp_pdev_nbuf_alloc_and_map_replenish() in WLAN host RX path so
as to avoid above two SMMU issues.
Change-Id: Idcb86db99f522959b639865f77178cd47a234277
CRs-Fixed: 3560191
For the control frames regenerated by the host driver based on the
TxMon TLV, add the local packet capture type based filtering.
Change-Id: If6b47368ce36524e1c84c51c298278ced671b915
CRs-Fixed: 3531895
Currently, WBUFF is being used only for WMI TX buffers.
Add HIF CE RX buffers support to WBUFF in an effort to re-use
the copy engine RX buffers instead of freeing/allocating buffers
for every CE RX transaction. This fixes the problem of CE RX
memory fragmentation.
Change-Id: Id9c043a5c5d0882a7994fa03cd8c335555d46b8d
CRs-Fixed: 3534539
Currently in driver while using QDF_MAC_ADDR_FMT to print mac
address, the mac address reference provided to QDF_MAC_ADDR_REF is
incorrect in some cases. Fix all such instances.
Change-Id: I324581691dfe683e0d5b046e19b444928657ce05
CRs-Fixed: 3556423
Currently FISA max msdu aggregation limit is fixed and always
programmed as 0xf, but there are platforms which support different
aggregation limit. So add support to configure different aggregation
limits while sending HTT FISA config message to F.W.
Change-Id: Icbf9b7a48a88dcbfb812e92c8f4032753fc07dc4
CRs-Fixed: 3542497
When the mem_alloc fails and fails to create spinlock
checks the mem allocation before destroying spinlock.
Change-Id: Id4c1a509cd0bb534040040f6948d3307181dc909
CRs-Fixed: 3552551