dp_request_rx_hw_stats allocates memory to rx_hw_stats
and dp_rx_hw_stats_cb frees the memory. There can be case
that dp_request_rx_hw_stats is timed out and host
receives event from HW, if pending_tid_stats_cnt is 1
in that case rx_hw_stats will be freed from dp_rx_hw_stats_cb.
In case of race between request timeout and REO event
dp_request_rx_hw_stats will try to access the rx_hw_stats in
request timeout case which can result in use after free issue.
To fix the issue set rx_hw_stats = NULL in event callback
and add NULL check for rx_hw_stats before accessing.
CRs-Fixed: 3618526
Change-Id: I5dec8a1f94d309b5482f766e94fe5fd831a689d3
Make sure that the pre reset done notification is sent
only once during Umac reset.
Change-Id: I1d9e1d8caef49443d25e879086043e815ea087a1
CRs-Fixed: 3594653
Changes to add debug prints and avoid passing negative parameters to a
function.
Change-Id: I8d1a10e0947582c8a307e40f6871e5dad802012a
CRs-Fixed: 3603846
Enable interrupts in monitor mode for wcn6450.
Interrupt configuration related code is moved from dp_main.c file to
dp_rings_main.c file as part of 'Ie58eae34a2da77c2d63870fab74b9d2d9d49c14a'
as Evros does not use dp group interrupts.
Move back the interrupt configuration related code from dp_rings_main.c
to dp_main.c to enable interrupts in monitor mode for wcn6450.
Change-Id: I7a3cbbe905072dad1cf38799ac6ef441281f78f9
CRs-Fixed: 3565734
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
Add change to update monitor destination ring interrupt handling
thresholds from INI.
Change-Id: Ibfced2b809ac2101171e8fe9f58e021a5a1f8ccf
CRs-Fixed: 3569507
Currently in monitor mode, links are released to WBM through the
SW2WBM_RELEASE ring and WBM will feed the links back to RXDMA
through the WBM2RXDMA_LINK_RING.
WCN6450 uses SOFTUMAC architecture where WBM is not present.
Hence the WBM2RXDMA_LINK_RING is repurposed to SW2RXDMA_LINK_RING
where host will directly release the links to RXDMA using this ring.
Change-Id: I110f607e38c4c2ab10eb1bd7b1f5a7bce2f03692
CRs-Fixed: 3493368
Include Umac reset irq line in the mask table only
when it is enabled for 8 msi group to make sure
the legacy devices are not impacted.
Change-Id: If8f6b7f948a7c9f45247e8ff934642f0a532ff0d
CRs-Fixed: 3499500
Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.
Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
Currently number of elements per page info is used from the
soc->link_desc_pages for both wbm idle link ring and monitor
desc ring replenish.
Chipsets uses SOFTUMAC architecture does not have WBM component.
So, there is no memory allocation for wbm idle links and
soc->link_desc_pages will not get initialized which results in
crash during monitor link desc ring replenish.
Fix this issue by using the number of elements per page info
from the soc->link_desc_pages for the wbm idle link ring replenish
and from the monitor_soc->mon_link_desc_pages for the monitor
link desc ring replenish.
Change-Id: Ie75561b8e2dd2c926b971c133e9bb704b5901bf5
CRs-Fixed: 3494948
1. Add ini configuration for enabling round robin flows to
core distribution in FSE
2. Register FSE APIs to CDP FSE ops
Change-Id: Ic61c44eb9bc68a8c1a0116d4e6aa1d54cf489b62
CRs-Fixed: 3505287
-Support to route IGMP packet to correct netdev coming from
legacy and mld sta.
-Support to detect mld model based on ini setting
Change-Id: I10ea5af9a4315642b262c8404d7bebd88ee06ab1
CRs-Fixed: 3467808
update the local ring mask after setting the service running flag
to avoid the concurrent access issues.
Change-Id: I209d22858f8ac7509b5337fdb1ebfe38699790e1
CRs-Fixed: 3461866
When IPA_WDI3_TX_TWO_PIPES is enable and DP_MEMORY_OPT is disable,
compilation issue is seen.
Fix is to correct the syntax.
Change-Id: Ibd23555f1a8a782a937883510b1e56eb20581604
CRs-Fixed: 3471564
CUrrently if IPA offload is enabled in SAP mode
the default Rx routing is to IPA serviced REO rings.
With this change the default raouting is set to
WLAN HOST serviced REO rings.
Change-Id: Ibf9dead063c9d9fbc6b1fd502342ea13456b2473
CRs-Fixed: 3421879
Currently dp_soc_init/deinit API's are called first for
common soc initialization/deinitialization and then architecture
level init/deinit APIs are called from base dp_soc_init/deinit.
But with RHINE architecture dp_soc_init/deinit API's are not common,
so we cannot call these APIs as base. To handle this scenario
routing all the soc level init/deinit from arch ops APIs and
arch ops APIs will take care of calling common soc_init/deinit.
Change-Id: Ibb10d452931630c917088b4d222c7fbd82621f6a
CRs-Fixed: 3404205
Currently we have a 850ms timeout threshold not to
block upper APPs, but this could contribute to some
query timeout. To address this issue, this change
changes the timeout threshold from 850ms to 100ms.
Change-Id: Ibb39609000972d09713a0435b4884454b331fe4f
CRs-Fixed: 3436517
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
Refactor DP rings related code to different files, such that
both hardware UMAC based and Software UMAC based platforms
can use required code effectively.
Change-Id: Ie58eae34a2da77c2d63870fab74b9d2d9d49c14a
CRs-Fixed: 3382905