1. Since peer id is reused for reconnection in MLO case,
old entries for queue desc addr is cleared. Clear the reo
internal storage and reset it back on client connection.
2. Send Qref feature WMI cmd to FW to enable the feature.
Change-Id: I6705ce121c8c25d9a2ace039dab21312fa5ea4b1
CRs-Fixed: 3156642
The qcacld driver does not register ol_if_ops callbacks
to handle wds AST request.
Call target if APIs directly to add, delete, and update
the AST entries for the WDS stations.
Change-Id: Ib4d5e1fdd6598e3390dbd2be0f24a72ccf01f202
CRs-Fixed: 3133839
Bifurcate the hal_get_reo_qdesc_size to corresponding lithium
or Berillium platforms.
This can handle difference, if any between them and later enhance
to set the qdesc size based on peer negotiation.
Currently for NON_QOS_TID, the BA window size is hardcoded as
256 for Li and 1024 for Be.
Also modify hal_reo_cmd_update_queue_params to accommodate higher
Block-Ack Window size. For this steal bits from pn_size and use
pn_size values as macros PN_SIZE_XX which is only 3 bits,
instead of 8bits.
Change-Id: If310175da579aa3a47a8b031a1774c6c8982d4b2
CRs-Fixed: 3125986
Flush dp cached frames only for mld peers and legacy peers, as
link peers don't need it.
Change-Id: I19a27c5810a1fec6a62bfe5a6377073dc382fb4c
CRs-Fixed: 3131405
Changes for vdev and pdev stats as per the new peer stats
re-organization architecture.
Change-Id: I48f9fb4b0915c40f4add83f2e2dd074cc97874fd
CRs-Fixed: 3092123
Delay and jitter stats are placed in struct dp_txrx_peer.
Make changes accordingly for allocation, fetching and clearing
operations of these stats.
Change-Id: Ic9b9e48467741072806000f4d1b3aa8e5c65d508
CRs-Fixed: 3092123
* Initialize stats in dp_txrx_peer and dp_monitor_peer as per
the stats re-organization.
* Update peer calibrated stats on every timer expiry of 1 second.
* Define APIs to reset monitor_peer stats and to fetch rdkstats_ctx
from monitor peer.
* Place check to make sure that monitor peer related APIs are
are called only for legacy peer or MLO Link peer.
* Update peer based pktlog flag, tx and rx capture feature flags
in monitor_peer.
Change-Id: Idadbe19e85d4a9fdf77fb6dabe0c8a4952b024b8
CRs-Fixed: 3092123
Move the stats parameters from the dp_peer which are used
in per packet path to txrx_peer
Change-Id: Ieb68b6950740791b37bbd2bfdc4815c3d7bc4834
CRs-Fixed: 3095637
Move the parameters from the dp_peer which are used
in per packet path to txrx_peer and params related
to monitor path to monitor peer.
Initialize txrx_peer and monitor peers.
Change-Id: I0449c67c1cd47deb76bc89b5ddc64174f6694eb0
CRs-Fixed: 3095637
In WIN BE chipsets, replace the REO tid
queue programming in FW via WMI with writing to a
Host managed table shared by HW and SW. REO HW will
pick the tid queue address from the table indexed by
peer id and tid number.
Change-Id: I8107ca5116425538329b11ae3519f02b32573bac
During MLO roaming, first link peer has unmapped REO queue Desc
address due to roaming is in progress, but 2nd link peer still send
stale REO queue Desc address to FW, SMMU fault will be captured if
REO access to this stale REO queue Desc address.
Add roaming in progress and REO queue address check before
sending WMI PEER_REORDER_QUEUE_SETUP_CMDID
Change-Id: Ic868685d98b802fa904ed440cdbb3cef908c6d95
CRs-Fixed: 3101658
Currently is_assoc_link flag in cdp_peer_setup_info just means first
link peer during MLO connection, but usually assoc_link is the
link which initialize MLO association and it will be the primary_link.
this introduce confusion with another flag is_primary_link.
Change it to 'is_first_link' in cdp_peer_setup_info
Change-Id: I8d14da73e6a3bbc39a4a527d6c0aa5667255e995
CRs-Fixed: 3090270
Moving HTT parsing to common file dp_mon.c
Initialize function pointer to stats ind handler for BE
CRs-Fixed: 3071271
Change-Id: I08fb98f8dbed075c3b49baebca399771bfb5077c
In BE architecture, HW provides basic vdev stats support for upto
48 vdevs. For each vdev, there is vdev_stats_id which represents the
id of this vdev on HW. This vdev_stats_id is assigned by host and
is conveyed to HW at the time of REO TID Queue setup for the peer.
Add logic for allocation and deallocation of vdev_stats_id and
convey this id to HW.
Change-Id: If5611bf54d057ccf71c6444b5c79a26eb28df87e
CRs-Fixed: 3067843
DP peer changes required for multi-chip MLO.
This change includes
1) Adding MLO peer to global peer hash at ML context
2) Add ML peer to all partner chips id to objtable
Change-Id: I230a6c1b14484c587b190a9a318fe9ffb1caea11
This force use BA64 ini config is no longer needed, because another
gRxAggregationSize can do the same settings and more flexible.
Change is used to remove this config.
Change-Id: Ie780489849f8b701481a628a9bca2b4112460bd8
CRs-Fixed: 3076982
Take care of the MLO peer bit indication to be
concatenated with peer_id to access the peer map
object.
Change-Id: Ia603a728101e83829a8906d1b847f42389e78ca6
CRs-Fixed: 3039326
Add the handler for processing the htt
peer map/unamp v3 and MLO peer map/unmap msgs.
Change-Id: Ie2ab0b76e7aee566ca3b9637b83fd7a14718ab01
CRs-Fixed: 3039326
wds in Beryllium is managed by hardware.
Make use of hardware managedwds and disable
the corresponding wds handling done in host
for Beryllium.
Change-Id: I39f23cb40c6c5f85ada8ce59c92ff2855bb18da3
PATCH[7/7]:
This patch consists following changes:
-Conditionally compile all monitor destination ring related code
Macro used QCA_MONITOR_PKT_SUPPORT
-Add QCA_ENHANCED_STATS_SUPPORT macro to conditionally compile
enhanced stats support
-Use QCA_MCOPY_SUPPORT and QCA_TX_CAPTURE_SUPPORT macros
to conditionally compile MCOPY and Tx capture features
respectively
-Use QCN_IE macro to conditionally compile BPR
feature
-Use QCA_ADVANCE_MON_FILTER_SUPPORT macro to conditionally
compile advance monitor filter feature
-Fix vdev attach issue for special and smart monitor vap
-Fix status ring initialization issue.
Change-Id: I0deaa28a9a54bf34b0f41e6dd510fdd8d4992db2
CRs-Fixed: 2983780
PATCH[6/7]:
This patch consists following changes:
-Move monitor related pdev variables to struct dp_mon_pdev
-Move monitor relted soc variables to struct dp_mon_soc
-Move cookie to monitor link desc va to monitor file
-Add APIs to access monitor related variables
-Add dummy APIs to build without monitor support.
Change-Id: I032a480b1383d061f984cee3ba6b10ac7a0ff350
CRs-Fixed: 2983781
PATCH[5/7]:
This patch consists following changes:
-Monitor vdev context allocation while vdev attach and free
while vdev delete
-Monitor peer context allocation while peer create and free while
peer delete
-Move monitor vdev timer function to monitor file
-Move monitor reap timer handler function to monitor file
-Move monitor timer related variables to monitor file
-Add timer init/deinit and start/stop in monitor file.
Change-Id: I9c7910671d3678c53ca9ec44a57bc10e892008d9
CRs-Fixed: 2983994
Add CDP reason code support for sending DELBA request,
so protocol layer can make decisions for special cases.
Change-Id: I4e4b2e7f7232a8ab12d4c7838f97908f481dc787
CRs-Fixed: 2983553
When host receives BAR frames with OOR/2K jump in sequence
number it updates REO HW with new starting sequence number
and requests F.W to setup peer reorder queue. But REORDER_QUEUE_SETUP
is already requested to F.W as part of initial add BA in host.
So while handling OOR/2K jump BAR frames don't send
REORDER_QUEUE_SETUP to F.W
Change-Id: Idc3657e901dc792f699b53c45e4ae5133d286891
CRs-Fixed: 2981280
Currently there are no sufficient debug logs during
AST cleanup of peers, to conclude in which context
the AST got freed up, hence adding more debug logs.
Change-Id: I5603d856aed8cc3860a78d24d51cd8b5386d38bb
CRs-Fixed: 2956910
In some RX backpressure cases, we see the HW accessing REO
queue descriptors of a deleted peer(after the queue descriptors
are unmapped/freed), this is leading to SMMU faults. There are
cases where the HW is accessing the stale REO queue descriptors
after ~12seconds after the queue descriptors were freed.
In order to avoid the problem, HW team has suggested to defer
unmapping/free of REO Queue descriptors. Add the logic for the
same.
Change-Id: I5b1fb966dc75b963ccc9d22c40272c8d1d8d6026
CRs-Fixed: 2939223
Register dp_peer_flush_frags API in dp peer ops
for flushing fragments for a particular peer.
Change-Id: Ia179d3160bdc306ec965c465134042c66a0c40a6
CRs-Fixed: 2874366
Logs are printed inside a spinlock which was held for
losing more than 2 seconds.
To fix this, reducing log level so it is not printed
in the console and instead in driver logs.
Change-Id: Ib510ddc1b5bff63db012b45ffa0280eedc356cc6
CRs-Fixed: 2938590
Add iwpriv option 34 to dump the reo rx h/w descs
in DDR for debugging. This cmd will first send cache
flush cmd to REO for all rx tids and invalidate the h/w
cache. Henceforth ensuring that the reo status tlvs and
the DDR values are in sync.
iwpriv wlan0 txrx_stats 34 0
Add fix to ensure bar frame with 2k jump err code is
processed correctly using the REO error code instead of the
REO push reason.
Change-Id: Ia05be668343f3a5d4b3262b8d6a367a50875add5
CRs-Fixed: 2895965
Add sanity checking before removing the ase from soc AST hash table to
avoid potential stability issue if ase is not found in the table.
Change-Id: I97b756cd5bdb052b0ce797cca5d96c6bac8f844e
CRs-fixed: 2912024
In client roaming scenarios, when the ast entry is
updated, make sure the ast entry is updated with
new vdev id.
Change-Id: I0bd5235eeb28909cabe48f577d4477789d7be9e8
In case of pdev attach failure reset pdev reference in
soc->pdev_list to NULL before free to avoid use after
free
Also initialize WDS aging timer only when ast hash is
allocated
Change-Id: I6a406bd94aa46a95d9e5bb970ae83b3dfde29d0a
Some AP disables AMSDU in BA256 mode, this has draw back
with KPI in HE mode, so leave a config field to use 64 BA
forcibly to make high KPI with these types of AP
Change-Id: Ia69ffe118fd5bbda78cfb98126a483fcf305294e
CRs-Fixed: 2828304