Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within wlan_cfg replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: I45c4869708d81fd484a5b05196d274cc648f8e7b
CRs-Fixed: 2418260
For low mem config, use user configured max tx descriptors to limit the
allocation of software tx descriptors.
Use dp_txrx_pflow_update_pdev_params function to print stats and to update
pdev param.
Change-Id: I8fa6f0bb8841de68e8dc205ffcb0fde264f1b0e0
CRs-Fixed: 2414452
In datapath, some of the messages get printed everytime when packet
is received or sent. This situation ends up in excessive logging which
leads to stability issue.
In order to fix the situation, provide knob through INI to control
excessive logging and create new macro for logging the message which
comes under per packet path.
Change-Id: I2af5f9bf39540f952138aa8308401a387fe62bf1
CRs-Fixed: 2376998
check for max_ast entries supported by FW and add the
entry on host accordingly.
Change-Id: Ief70ba631bb41d50c79d3673e3eea0c45b0c1e19
CRs-Fixed: 2355947
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
Eanable monitor mode low water mark interrupt.The monitor
mode processing is stuck in the monitor mode buffer ring full
if monitor mode low water mark interrupt is not enabled.This
is because there is no packet come in when monitor buffer
ring is full and hence there is no ppdu end interrupt.The
monitor is not processing the monitor ring and buffer ring
full condition is not remoevd.
Change-Id: I28b3a4b408db62873c17512d20e63c9844e8d4ea
Add support to handle Tx completion processing and Rx processing into
different NAPI threads/contexts for Lithium DP
Change-Id: I4f5c6ef3ce969ce457e26cf3e8305df1ae782f09
Add iwpriv <interface> txrx_stats 29 and
iwpriv <interface> txrx_stats 30 to print wlan_cfg
parameters for both soc and pdev.
Change-Id: I666fe4fa999e82e92ea2961ab662e3e629b58bc7
CRs-Fixed: 2331949
Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
status ring
3. Msdu link descriptors are now returned to WBM descriptor
release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.
Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300
- Support to pass IPA enabled(disabled) flag from ini to DP layer
- Use ioremap call to translate tx_comp_doorbell_paddr obtained from
calling ipa_setup api to tx_comp_doorbell_vaddr. This is needed to
write the initial value of HP at the doorbell address.
- Change REO_DST_RING_SIZE and WLAN_CFG_TX_RING_SIZE to 1023
for napier/hastings if IPA is enabled. This is needed because,
ipa_setup API can handle only 16-bit values for the size param(bytes)
of the ring.
- Disable hash based flow steering for SAP peers in case IPA is enabled
and set default reo_dest_ring_4 as default RX ring. Since IPA will be
reaping RX packets from reo_dest_ring_4 only, flow steering is not
needed for SAP peers.
- Unmap pre-allocated TX buffers for IPA in the TX completion ring.
- Donot execute IPA functionality if IPA is disabled from ini.
Change-Id: I6855bfe293a457ccc0abd1ad5567f5c95232a9d2
CRs-Fixed: 2183519
Add the basic infra for legacy DP CFG items and the APIs to be used from
other components.
Change-Id: Iec1718f0a93fcb91061892b96ae6ae88174df9ee
CRs-Fixed: 2328481
Introduce INI parameters to fetch feature related values based on target
type and add CDP interface to get dp INI parameters to control path
Change-Id: Id6a3f409106eb7dc01b08a3f1ec00dbe7efc359f
1. Disable host processing of REO2SW4 when IPA is enabled.
2. Change buffer memory location provide to IPA TX transfer
ring from consistent to non-consistent memory.
Change-Id: Ibb62d9faf5dc9adb5ee8a2e113d10a2912269cbd
CRs-Fixed: 2315889
For MCL, only keep one interrupt in host2rxdma ring mask definition,
which is used for host2fw RX refill ring low threshold reporting.
remove the left unnecessary ones to avoid invalid access
to uninitialized RX Desc pool.
Change-Id: I0d353eb68493573383b2ccd0cb36e98cd4a7a95d
CRs-fixed: 2317464
Remove SW WAR in rawmode for qca8074v2 target. Added flag in
vdev structure which will be filled during vdev attach time.
Based on the flag war is applied.
Change-Id: Id91d6359b0a575b1f2b1222e56ac93a0e08a3c73
CRs-Fixed: 2296584
The current Lithium DP configuration items are hard
code and cannot be configured for different values
without rebuilding the driver
Add the INI configurability option for the Lithium
DP config parameters
Change-Id: I30012903ccb0654bdff706beff80655313aca289
CRs-Fixed: 2246404
Initialize MAC1 along with MAC0. 2.4GHz monitor mode operates on
MAC1 so initialize MAC1 and reap both MAC0 and MAC1.
Change-Id: Id281def37d460b224f5f571893266f193846fd0c
CRs-Fixed: 2176848
Avoid monitor procees starvation by moving monitor interrupts to
a separate interrupt group. Currently these are part of regular
data ring interrupts, and are not being handled sometimes with
DBDC peak throughput, causing ring stall assertion failure in target.
Change-Id: I51d72187c68922de582be0a9da8e191e0e3c7bcf
Add tid to the defrag waitlist & timeout if further fragments are not
received.
Change-Id: Iff2d2c23fe796cf70bcc6aa43ab02a308a33ee9f
CRs-Fixed: 2174750
Enable or disable TCP\UCP checksum offload for TX according
to the flag in wlan cfg module, which is determined by INI
(MCL) or initialization setting(WIN).
CRs-Fixed: 2155236
Change-Id: I0e30fc062a000c2d9c47674fe80da59a2ac0de51
Replenish buffers in RXDMA refill ring based on low threshold
interrupts in addition to regular Rx processing. Also increased
RXDMA refill ring size to 4096.
Change-Id: If1f4592c815fe2404c4952a96b721cb6d4fdfcd0
Provide an API to accept the config parameters
from the upper layer and store them in wlan_cfg_ctx.
Enable/Disable the datapath features based on these
parameters.
Change-Id: Icbdc835a51a6fea87c06174e9fc63d5d007aec1d
CRs-Fixed: 2097229
Provide an API to accept the config parameters
from the upper layer and store them in wlan_cfg_ctx.
Enable/Disable the datapath features based on these
parameters.
Change-Id: I9336cac686bfb875cea242685a122ec98acdf8c2
CRs-Fixed: 2097229
earlier we configured only REO_R0_DESTINATION_RING_CTRL_IX_2
and REO_R0_DESTINATION_RING_CTRL_IX_3, but we now configure
REO_R0_DESTINATION_RING_CTRL_IX_0 and
REO_R0_DESTINATION_RING_CTRL_IX_1. Also added module param for
rx hash steering.
Change-Id: I690aa395bc19e49df3687be2e70eaaad4994003e
Set tx completion masks for WBM2SW1/2 to zero for MCL.
This is to prevent accessing of tx completions rings whose
contexts are shared with REO rings.
Change-Id: Id1b8a98495668225ced71141f00d9f2094f37cd2
CRs-Fixed: 2106708
Enable all 3 HW Transmit rings by default to be able to tie each ring to
a CPU core for transmit datapath
Change-Id: I6f1dd011e1289f8ee603a81e373629c79af0fd3f
CRs-Fixed: 2103112
Add support for hash based steering in RX path, also
considered cases where a particular radio or both radios
are handled by NSS offload.
CRs-Fixed: 2092357
Change-Id: Ib0e88c28eecd7bfdb52c7337d4485ac41371be68
assign msi vectors to srng rings based on the ext_group they will be
serviced in.
provide support for ext_groups in hif_pci.
Change-Id: If313fdb43b939871c0d73dea9a05f757427b5b16
CRs-Fixed: 2051911
NSS requires the ring size to be power of 2.
The tx comp ring size is reduced to 4096
when nss is enabled.
Change-Id: Ied70faefdfe68eb2b7929ff6af4bed5a9e75068e
Adds support for flow control on convergence branch.
Allocate Tx descriptors dynamically when vdev comes up.
Tx queue is paused and unpaused internally in host based on the
stop and start thresholds.
Changes are added under compilation flag QCA_LL_TX_FLOW_CONTROL_V2.
Change-Id: I0ccb80b0099f39efad52ccd7d47f2709fdee2a93
CRs-Fixed: 2040457
Current data-path interrupt registration/handling assumes PDEV indices to be
in same order as HW MAC IDs, which is not always true. Fixed this by adding
wlan_cfg api to set and get pdev index to mac id mapping.
Change-Id: Iec8e9f4a02cd618a3b244cfd6fc7ead1e7d993c3
CRs-Fixed: 2063673
Currently interrupt mitigation values are configured for per-packet interrupts.
Change this for core DP rings (REO Destination and WBM Tx Completions) to reduce
CPU overhead of interrupt processing
Change-Id: I7bf0f6e78c52b5678ad3c8cc4d829444e410fad3
CRs-Fixed: 2064113
Current Tx Descriptor pool size is tuned for emulation; Increase the pool size
to 16K to ensure peak performance in DL for TCP and UDP.
Change-Id: Ifc253d01a8f2b083a8ca4239611f1209726d7af5
CRs-Fixed: 2004658
The irq entry for rx_err, rx_wdm_release, and reo_status
gets assigned for more than one context and this causes
double free irq during driver unload time. Fix the same
Change-Id: I197ee285e6eba5909dec3fa37677c13efce4765a
CRs-fixed: 2063981
Currently max_peer value is hardcoded with DP wlan_cfg. This change adds
a generic interface to obtain a configuration parameter from OL_IF and
store in DP
Change-Id: Id437ab3bcd02fb1cbcbe8b56d55d19780af87066
CRs-Fixed: 2004658
WLAN_LRO_ENABLE is checked for 1 in enabled case. So change macro
WLAN_LRO_ENABLE to 1 enable LRO
Change-Id: Ic1be57596633a5998c7a1db6c0d611ea3c5867cf
CRs-Fixed: 2042812
Changes include
1. nss_cfg parameter to dp_soc.
2. nss_enabled field for pdev.
3. cdp api to enabled nss offload config.
4. skip rx ring configuration when nss enabled.
5. skip timter /interrupt configuration if
nss is enabled.
6. peer map/unmap event hander.
Change-Id: Ic4a919b6b7e846e18cb15ebcb94f8736a751ecb5