In case of UMAC reset if in_use buffers are sufficient
to fill complete RX refill ring we are replenishing
only 1/3rd ring at pre-reset.
In case of low threshold interrupts disabled ring might
be never refilled. At post reset refill complete ring.
Change-Id: I0e4ed942120619ef357bc91f8cbbab8c1fd1b06e
CRs-Fixed: 3628996
When WDS_EXT feature is enable, Host needs to redirect
the data packets to WDS extended netdevice.
Change is added the support for forwarding the RX packets
when received from IPA as an exception by deriving the
correct netdevice interface.
Change-Id: I083a1acc72023f3ebe6ea36ec05a5706f89c16bc
CRs-Fixed: 3597357
Use per pdev page frag cache to allocate page fragments
to efficiently use memory.
Change-Id: I8a16175ac72d56bcd9783ff0590710aa779454cb
CRs-Fixed: 3611781
Currently soc->ipa_mapped flag is set to true only after all
the buffers are SMMU mapped to IPA. This leads to a race
window where Rx buffers routed to WLAN HOST in the replenish
path are not mapped to IPA, as the ipa_mapped flag is still
set to 0. The fix is to set the ipa_mapped flag to 1, right when
the IPA pipes are enabled, before waiting for the complete
buffer pool to be IPA SMMU mapped.
With this fix, RX buffers can be unmapped and mapped to IPA
domain in dp_pdev_rx_buffers_attach() and
dp_pdev_nbuf_alloc_and_map_replenish() in WLAN host RX path when
ipa pipes are enabled.
This change also renames ipa_mapped flag to ipa_map_allowed.
Change-Id: Ibbe50cb211f858a3372e31644df2f5e98f99a292
CRs-Fixed: 3569745
add new ini to configure skb size and change it in each place its used
correspondingly
Change-Id: Id00c6351bf6bc1b9df5e19064b2057dadd315e9b
CRs-Fixed: 3584462
tcp_seq_num and tcp_ack_num in qdf_nbuf_cb is not used
for Beryllium, repurpose them to store RX MPDU sequence
number. get RX mpdu sequence number from DP and store
it in qdf_nbuf_cb for logging later.
Change-Id: I3c21b383d827f12a1e1ec6202a5fc17804dddc1b
CRs-Fixed: 3610468
Add changes to set band in nbuf cb during rx cached flush
for connectivity logging.
Change-Id: I2243f41349922a4dd023f6651fdb7d682e887046
CRs-Fixed: 3598261
Avoid asserts in data path which related to HW interactions
and instead use work arounds.
Change-Id: I86089d21c5be23784f8a077b085f3f3b8a2308e4
CRs-Fixed: 3564940
For RAW frames, setting zero to start and end flag make difficult
to reconstruct amsdu frame.
Change-Id: I28ffb87682427c7986f98730d514a0421eae1972
CRs-Fixed: 3584549
Use page frag init time rx buffer allocation for efficient usage of memory.
Add ini dp_bufs_page_frag_allocs to disable and revert to original slab
nbuf allocations.
Change-Id: Iac78895addfe9da0118bc071c691a26216d6fda1
CRs-Fixed: 3553800
Currently, IPA SMMU map/unmap is called as part
of init. This causes every nbuf to be mapped
to IPA in the Rx path, causing throughputs
to drop. This change resolves the problem by
deferring the IPA SMMU map/unmap
call to OPT_DP filter reserve/release, as
nbuf needs to be mapped to IPA only in this scenario.
Change-Id: If198a6c5f22af58fdaf9d9c020c74b1f76002e37
CRs-Fixed: 3496679
In case MLO HW will do the link mac address to mld mac address
conversion in RX path, But currently HW is supporting only for
802.3 mode.
For RAW mode(802.11) this conversion not happening on HW so added
this address conversion logic on SW.
Change-Id: Ibd794510e9d0ebdca884ed2e4043e0c48052156e
CRs-Fixed: 3537914
Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.
Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
Use monitor pkt tlvs size and monitor buffer size
instead of data pkt tlv size and data pkt buffer size
for York.
Change-Id: Ifc0d07ed96100ae79e81ac91bccd637e08d71e28
CRs-Fixed: 3494826
Logs without meaningful message or values serves no purpose in debugging.
Hence, add more context to the logs.
Change-Id: Ia463d239a9bf26f292a11bcc71cb1379374c45e4
CRs-Fixed: 3492593
Currently driver obtains RX MCS index from RX MSDU TLV END of a
data frame. According to the specification, the MCS index should
starts with 8 rather than 0 when NSS=2 in HT mode. However, the
original RX MCS index from HW starts with 0, thus SW needs to
get a final MCS index by adding an offset when NSS=2 in HT mode.
Change-Id: Iba5f9976958233fc283513caf0184e59774ab50a
CRs-Fixed: 3471953
Currently the code to support Multipass on SAP is
present along with the code to support WDS. Hence with
the code in its current state, we will not be able to
enable Multipass support without enabling WDS.
Move the multipass support code out of the WDS support
code, to be able to enable Multipass for chipsets which
do not use WDS.
Change-Id: Id17035f1ada9bde56ca2c61fd4688fa3454b0b11
CRs-Fixed: 3479991
When FEATURE_RX_LINKSPEED_ROAM_TRIGGER is not defined,
function dp_rx_rates_stats_update declared without link_id argument,
this will get building error. Add the link_id parameter to fix too
many arguments of function call building error.
Change-Id: I311d520e106f2e6f9e2c11c76cc841840821ccae
CRs-Fixed: 3477778
Currently the code to support Multipass on SAP is
present along with the code to support WDS. Hence with
the code in its current state, we will not be able to
enable Multipass support without enabling WDS.
Move the multipass support code out of the WDS support
code, to be able to enable Multipass for chipsets which
do not use WDS.
Change-Id: Iaafa8dc4f16314d9e3e160fe01251c3684adbf67
CRs-Fixed: 3468548
in case of DS pkts the same pkt which is received
in RX path (REO2PPE) can be refilled back to wifi
rxdma
CRs-Fixed: 3381462
Change-Id: I3762c91110ffcc95162bf068b7a1ed3e41904824
Add support to enable/disable MLO Link Peer stats through
ini and cfg80211tool enable_ol stats command
Change-Id: Id1229a149befa416d060e1b07eee150e6b295abf
CRs-Fixed: 3397721
Add support of HW Link ID in PeerMetaData.
Retrieve the HW Link ID in both Rx per packet
path and RX Error path, store it in nbuf cb.
Use the stored value from nbuf while updating
MLO peer link statistics.
Change-Id: I11596d44fe8557af568fd399d0c0a04d2b887b2a
CRs-Fixed: 3397721
In RX and defrag path some of the code in common files will
not be used by new SOFTUMAC based platform. So placing all
the unused code under SOFTUMAC macro and for better readability
clubbing all the code at one place in source file.
Change-Id: I6ff3997a42872a25fb020898f7fb1879746fc8e6
CRs-Fixed: 3382899
Usually decrypt error frames will be reported and cause
a disconnection. In some cases, the disconnection is unwanted.
Change is aimed to do additional check for frame SA, if it's
received from a valid peer, then don't report it to protocol.
Change-Id: I19d9acffc5ebd2c20abdf19eebc02f6875f762ca
CRs-Fixed: 3363352
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_rx.[ch], so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so move that documentation.
Change-Id: Id0ac49ebfa23790346384d688cc6346f513a7969
CRs-Fixed: 3373158
Fix the max number of rxdma buffer ring entries that can be
replenished during Umac reset.
Change-Id: I4092f09f2ccf069314b2bbe8d463e32365e9a472
CRs-Fixed: 3369673
Use the flag RX_PEER_INVALID_ENH for invalid peer
event instead of FEATURE_NAC_RSSI
Change-Id: I87e301a48b1ccdcd28f8e2eb0ba80b215efa384c
CRs-Fixed: 2969193
IOMMU map and unmap RX buffers into LPASS SMMU context
bank for LPASS to access RX buffers in direct link
usecases.
Change-Id: Ie72a008309e3abdf3fbc7198bb5d3af5e9497180
CRs-Fixed: 3356568
Currently HP update can skip for few packets if the system suspend
is happening in parallel with tx. This could lead to SMMU fault if
the skipped HP update goes after tx desc force free.
Remove the tx pause check in HP updates and have the check before
calling dp_tx_send in case of intra-bss forward case. No special
handling is needed for non intra-bss case as we don't expect packets
from network stack after suspend.
Change-Id: Id4f2cefcc0a14e7c16438b9bda5cb1d55eb05050
CRs-Fixed: 3327818
Changes dp_rx_buffers_no_map_replenish API to
miminize the contention on RX refill ring lock
Change-Id: Ie55f034c6d01abbab21707460cd0f20548b35ba2
CRs-Fixed: 3313886
We allocate extra buffers than requested when watermark is less
than critical low threshold. While allocating extra buffers we
should check for boundary conditions so that total allocated
buffers is always within the range of available entries.
Change-Id: I2f24c6157cb2afcc8bc5ca84b7e0308588a4d99d
CRs-Fixed: 3307051
get the HP of the RXDMA ring without incrementing
This will ensure in case of nbuf failures the ring
HP remains unchanged
Change-Id: I69ec9207a44a4c50484933797326e962ad2d4a5c
CRs-Fixed: 3309394
For STA MLO connection, AP might send M1 right after assoc response
on assoc link, but at this monment, host has not sent wmi_peer_assoc
for the assoc link and no osif_rx is registered to dp_vdev, MLD peer
will not be initialized in FW side and no HTT MLO peer map msg to host,
then this M1 frame will be detected as no valid txrx_peer and dropped
in host as dp_vdev->osif_rx is NULL as well.
Store this M1 frame to cached buffer queue until CP register the osif_rx
to DP and then flush them back to stack.
Change-Id: Ie84fa9c39db75fe77b9fd61dc1bf46f2fa737df7
CRs-Fixed: 3289587