For some corner cases if there are no free
descriptors available in the rx desc pool
then stop processing frames
Add check for the same and break the loop
from processing further frames.
CRs-Fixed: 2380041
Change-Id: Ia5d82813df644af61d898131c2987d8d2798e8c9
Log DPT for Tx completion for Lithium_dp. Do not reset nbuf->cb
as it has DPT markings.
Change-Id: I493c3e0e5f4311b90c1ec60ac3a4b44d13c06f62
CRs-Fixed: 2385743
dp_bus_suspend and dp_bus_resume are currently defined for both WIN and
MCL, but only used by MCL. Move their definitions such that they are
under the same #define's as their usages.
Change-Id: Idd17fa0a521f7474d481fbaf5d2c7cfd4138c774
CRs-Fixed: 2387904
a. Acquire peer list lock
b. Acquire vdev list lock
y. Release vdev list lock
z. Release peer list lock
Change-Id: Ifc1e57fd1a243d909ca65421f269830d24d6b31b
CRs-Fixed: 2372947
Free the pending dp peers before cp peers in fw recovey case,
to make sure dp peers release all cp peer references they hold.
Change-Id: Ie6c7562e7214f40be895cf8a57a1aa6245d717cb
CRs-fixed: 2383984
Add, delete and update AST DP
functions print logs at TRACE
level
Reduce the log level from TRACE
to DEBUG to avoid ML Framework
from interpreting these logs
CRs-Fixed: 2385978
Change-Id: Ifd5c24a95e7e9f69297afff5d7a3235cfa27aaf5
WDS aging timer is dependent on a flag which is set in soc_cmn_setup,
but in current implementation wds_timer_attach is done from soc attach
and soc_cmn_setup is involed from pdev_attach. Fix this race condition
by moving wds_attach to soc_cmn_setup
Change-Id: Ia88201c627b434b85e56daadd0c7ab20e6ce0b3f
CRs-Fixed: 2373127
Passing mon_rx_stats to osif_receive_monitor_80211_base as
it expect valid rs pointer on ATH_SUPPORT_NAC defined
Change-Id: I1fb4eae690b64dc2e73e4793bec13524affe5635
transmit type is incremented twice on update status.
RU tone need to get increment for MIMO_OFDMA and OFDMA
Change-Id: I4e83a91b7653b7452cf5605b7f8aad956c355350
populate TX OFDMA and TX MU MIMO information from
user rate tlv and display the same in fc_peer_stats.
Change-Id: If1dab15bbdf391fba00a701abd6024c420d1d8f7
1. Account for total Tx completions received on wbm2sw release ring.
2. Avoid multiple updates to invalid peer counter on
wbm error path handling.
Change-Id: I904208e1bd83e98598870a1f05c4b17c3fb20e2d
CRs-Fixed: 2366790
Fix the assert in HTT PPDU TLV processing to account for
member additions at the end of htt_ppdu_stats structures by FW
This ensures Host-FW compatibility without placing hard constraints
on timelines for fwcmn header files to be synchronized with host.
Change-Id: I9f730e5896bec916c8e4e3f0eaa06b183c62f393
Make sure the objmgr_peer is not deleted before
dp peer is deleted, which will avoid the access
of already freed objmgr_peer for connected sta peers.
Change-Id: Ib931dcd0c5650fea5284e9dd53dae9e41f662c56
CRs-Fixed: 2359645
hal_srng_cleanup was called from dp_srng_cleanup after the
hal_soc was freed.
Move the call to dp_srng_deinit where the memory is still
valid.
Change-Id: Ida25ee48e527b5139fc05cd85c5634e70965ccd0
CRs-Fixed: 2367332
once in a while the HW is sending a descriptor which
is already processed by host. This can be a potential HW
issue, as a WAR we are not processing such duplicate descriptors
instead increment a counter and continue with next descriptor.
Change-Id: I6c9bc6a9fb4705b42284171a32855411aa5dd73f
CRs-Fixed: 2338543
Change the CDP abstraction APIs for ast entry find, add and delete
to avoid external references for ast entry in upper layers
Process the HTT v2 peer map messages which will be enabled for
nexthop ast entries and use these messages instead of WMI event
for HKv1 WAR where we have to wait for delete confirmation from
target event which is processed in control path
Change-Id: Ifa91a259c0762344deb8ab89e868fc5554d75543
CRs-fixed: 2354951
mpdu length is calculated wrongly in one corner case
resulting in wrongly identifying the last nbuf of the
mpdu, fixed it by properly adjusting the length.
CRs-Fixed: 2368608
Change-Id: Ia7bd3247eb05f2eb4b5de1c65e7190c798128792
Array mcs_count is of size 13 and the
macro MCS_MAX is 13
mcs_count array should be access only
till 12, hence change the comparison
from <= MCS_MAX to < MCS_MAX
Change-Id: Ieab9a8d1f2a06ff31fa79a062bfcbf96f298f0a1
For non-NSS platform, update no of rx packets being
sent from wifi driver to network stack in case of
vow traffic.
Change-Id: If16a5b9c37a16374d4217369b1f02360c62155a9
CRs-Fixed: 2371429
Splitting the wds srcport learn function to add:
1. A wrapper function where host extracts the required fields from
nbuf cb and rx_tlv header.
2. A common function which can be called from both host path
as well as offload path.
Change-Id: I2f2c0580c049f48395a3e0a265e3fb5d8aed6774
Add cdp api to check if tx desc pool available descriptor
threshold has reached.
Change-Id: Ie542d03dd865d32aa6e01da00328aa51728b4276
CRs-Fixed: 2369218
The last_ack_rssi value is made to get updated with the
correct value and the code fragment to reset it to 0 has
been removed.
Change-Id: I87f9ca788c92ae6ffc05b10faeb82e03024050ce
Current driver doesn't check for any TX pending flag before doing
bus suspend.
Add a logic which is similar to existing helium platform.
Change-Id: I49d078c3b86fc0d9659fbbc2f3c1a604a79a9dff
CRs-Fixed: 2360189
Stats are updated periodically and
are categorized to soc, pdev, and
vdev
While the stats are getting updated
and if pdev, or vdev gets detached
in the same time, the stats handlers
will deference a NULL pointer
Hence Add basic sanity checks to DP
layer for soc, pdev and vdev inside
stat handlers
Change-Id: Ic4919b9c205679e1d6e7c571c577339be65c1bad
Change the QDF log level during update peer statistics. It is not
necessary because during roaming it is possible the peer is not
there when we update statistics. Also use QDF_TRACE_RL to replace
QDF_TRACE to avoid massive log prints.
CRs-Fixed: 2353709
Change-Id: I2896e6874b2802ee1d8bf05c6daf064e1953a5d5
Add a missing NULL check for peer object in rx_da_learn API
Also add missing elements in pdev_stats_cmn_tlv structure.
CRs-Fixed: 2357352
Change-Id: Ie54fd0a6a45f00d60420c391098f22b0097de3ac
dp_reo_desc_free function can be executed in SIRQ context, so it
should not be expected that INFO printing which might cause locks
holding too long.
CRs-Fixed: 2367454
Change-Id: Ic77126fa62329547494ec6b672111c6183fadac2
Add support for GRO functionality for TCP packets.
- Pass GRO config to DP layer as a part of dp_update_config_parameters
- Add API to read the number of active RX contexts from DP layer
cdp_get_num_rx_contexts
- Fill GRO info into skb->cb from rx_tlv during dp_rx_process
CRs-Fixed: 2346995
Change-Id: I1c143d8ce2c7522ba2c76142fb6cc82193df5608
Change with fix memory leak observed in case where
smart monitor is enabled and monitor direct bit is not set
Change-Id: Ib556482b9067dbd7418cbe226a19bbbd5844a075
In dp_rx_mon_status_buffers_replenish after replenish of all
mon status ring rx buffers there is log in which function
local desc list is accessed. But after successful replenish of
all the available free desc, free desc list will be NULL. So
accessing the free desc list in the debug log leads to NULL
pointer dereference. In this change remove the debug log as
before that enough logging is in place to check how many buffers
are replenished.
Change-Id: I306aa52f6f25d9b43afb8548b8c03467aa9f27de
CRs-Fixed: 2366585
During dp_rx_pdev_attach and dp_rx_pdev_mon_buf_attach we are allocating
three times as many rx descriptors as there are entries in the ring for
AP usecase. This is not needed for MCL and may need to kmalloc
failures for allocating that much contiguous memory
Allocate only as many RX descriptors as there are ring entries for MCL
usecase.
Change-Id: I8b559a85c3899bcbdc520e71ba5da409314db160
CRs-Fixed: 2342957
1. Reduce the log level for every buffer received
from firmware
2. Set the default pktlog buffer size to 10MB.
Change-Id: Iad8827084579592fcfa69056dcfc9d57095151e7
CRs-Fixed: 2364380
Current driver doesn't clean-up all the peers because the TARGET
state is not marked as reset and due to which nobody is there to
mimic fake peer unmap events to reduce the reference count.
Also, there is no peer delete API being called as well in case of SSR.
Identify the TARGET state in-case of SSR by calling HDD callback
and mimic the unmap events and call peer delete API as well.
CRs-Fixed: 2350285
Change-Id: I878b7a15701c01ac9ef80010086f7e868a631a74
In existing code, 132 bytes of OTA mgmt. and control payload is
provided to upper layers by subscribing to packet header TLV.
The requirement in M-copy mode though is to get complete payload for
mgmt. and ctrl. packets. Add change to configure monitor destination
ring and add mgmt. and ctrl. packet filter to receive full mgmt. and
ctrl. packets.
Change-Id: I0014837b51cac6f0143dcc5cb624ea2086cf4486
CRs-Fixed: 2256159
Currently there is only tso segment and tso number segment
descriptor free operation when tso preparation failed, do dma
unmap for each segment as well.
Change-Id: I9a507f27341877dc062528ce77e02970d16aa098
CRs-Fixed: 2347279
Add support for smart monitor feature on HKv2.
For HKv2, NAC filtering is done by HW and NAC is
programmed directly in the AST table. The NAC entries
in AST table have monitor direct bit set and this
is obtained by host via monitor status ring.
host subscribes for packet header in MD packets.
To these filtered packets radiotap header is added
and delivered to the stack.
Change-Id: I123f986531943e376ac5c492540e01f0b03348c4
For MCL function dp_rx_process_invalid_peer, there is corner case the
nbuf is not data and freed, but invalid_peer_head_msdu pointe to the
same nbuf in pdev is not reset to NULL, then invalid_peer_head_msdu is
reused again.
Reset invalid peer msdu list to NULL when nbuf is freed.
Change-Id: I73058afe9656c34971ea083faa19ef9d90b7f747
CRs-Fixed: 2356531