Disable CE_ATTR_INIT_ON_DEMAND for CE5.
Currenly CE5 is used for other stats apart from pktlog.
When CE5 is configured as on demand its not initialised until pkltog
is enabled, but we still send stats to CE5 causing issue.
Change-Id: I286fcaf5c908028f5f42a0f4f91c810660ee6d11
Add support to dynamically initialize the CE for PKTLOG
and post buffers on demand.
This helps avoid unnecessary initialization of PKTLOG
ring and save the memory in lowmem platforms
Change-Id: Ib02153b3e7205be30b07e4a4763edf3374827328
QCN9100 pci radio is connected to the IPQ5018 through PCI slots
and enumerated by the Q6 radio. From the host driver perspective,
QCN9100 is treated as an AHB device, however the QCN9100 uses
MSI interrupts to notify events
-Reinitialize pci irq ops for hybrid bus type device qcn9100
-Update CE flags of qcn9100 to interrupt mode
-Set disable_wake_irq flag for qcn9100 as wake irq is not used
Change-Id: I8da7f0b48923b9d70e62f4ff181bd47865ea2fe8
Buffers attached to CE2 destination ring are of 4k bytes.
skb allocation for these buffers exceed 1-page allocation
due to addition bytes reserved for alignment, padding and
skb shared info.
Set the CE2 buffer size to 3200 bytes so that the skb memory
fits into a single page.
Change-Id: I97b3fc140376bb107ba23ab581a2dd5aeb833948
CRs-Fixed: 2785267
Increase CE2 host ring size to 512 for QCN7605 to avoid
ring full condition in FW in debug build.
Change-Id: I900611487696e3e83cd7adc72f10cd2cdcb15ead
CRs-Fixed: 2778941
Increase the num of entries in host side from 32 to 64
so FW can post more descriptors to host src ring
without hitting ring full condition. This is to avoid
back pressure issues in FW. The memory increase is
by 32*4K allocations.
This change is applicable to all HSP targets.
Change-Id: Ia973e13b9d9b2b682957ae19fc3f23dd49bef401
CRs-Fixed: 2761953
For lithium based HST/HSP, CE4 is no longer used for data TX,
just few HTT msg for ring configuration, 2048 entries requires
16 * 2048 = 32K ring consistent memory which looks is not necessary,
reduce CE4 ring entries number to 256.
Change-Id: I117ec81cbee3642d640457c37a7ab900ddcae3f5
CRs-Fixed: 2757925
If disable pktlog for hasting/genoa, we need to
mark the ce5/ce7 not used separately to save
some memory. But currently, if set target ce
entries to 0, it has wlan fw crash issue,
so reduce it from 32 to 2 first. Once wlan
fw fix the crash issue, and then change to 0
Change-Id: I7ab11f202fe353737a4104e71fc79ee749b80fc8
Reduce the number of CEs used in IPQ5018 to 6 since it has only
one mac and requires only 6 CEs. CE7 and CE8 are reserved for FW
and not needed to be configured from host.
Change-Id: Ibe262c32d8b3234873391559d939bc198c658c60
Initial changes for ipq5018 compilation.
Added device ID and target type checks for ipq5018 traget.
Change-Id: Ib86a371fbe66749fcb6d114e7a4a9931b684e03d
From Genoa firmware request, in order to improve
the IPA througput, increasing the number of copy
engine 8 entries and other nbytes values.
Change-Id: Ib1ae170c3b3f5af61d03ad8a60bc616b7a58a725
Currently, Genoa CE4 is using interrupt mode. Host will not require
IRQ base on current CE configuration and change below:
"Change-Id: Icabe68298737dc412949484f6d3fdcd8c05910d5", which cause
no IRQ handle of tx completion and source ring full, blocking
TX finally. To unblock TX, correct configuration of CE4.
At the meanwhile, this issue expose another problem that the polling
mode seems doesn't work. Will scope it on another thread.
Change-Id: I31eed8806b939a12503bb4ddd8b9dec85f3c3540
CRs-Fixed: 2602888
Allocate a buffer of size 4096 bytes for each buffer
posted to CE2 source/destination ring.
Change-Id: I0beb1e4e87c19508917e8564b441819031be2065
CRs-Fixed: 2619899
Genoa FW use the hardcode 128 for ce5 destination ring
entries, so change host code to follow up with it.
Change-Id: I1b7e70f8244efc3d3ca3dc659fb3d7687828b9c4
Reduce the number of CEs used in QCN9000 to 6 since it has only
one mac and requires only 6 CEs. CE7 and CE8 are reserved for FW
and not needed to be configured from host
Change-Id: I989ffdb0219e2628bac5536e25c4cb2dbba6b7fb
Remove EPPING_CE_FLAGS_POLL from poll flags so that interrupt is
enabled for pine.
Change-Id: I8271ab47e75fbe254e0c5d745f861edbda4b07ce
CRs-fixed: 2507441
Added change to modify ce flags for Pine.
Also made changes in window enable bit
Change-Id: Id080be53d14450cb6d9376fc810177bce26a2869
CRs-fixed: 2507441
Add device ID change and target type checks for pine.
Also remove memory war added for Hk emulation.
Change-Id: Idf531a48a03202d4fb241a92a1d671ee2b94cfbd
CRs-fixed: 2453899
Increase Source ring size of HTT TX Copy Engine for QCN7605
to avoid packet drop in DBS throughput scenarios.
Change-Id: I3f48579b88034a1eddb53d67ee161bd920ac848a
CRs-Fixed: 2496049
Mark CE5 as unused when pktlog feature is disabled. This provides memory
savings by skip configuration and replenish of the copy engine used for
packet log
Change-Id: I1bdd3355b84f257a2dbfe58a2752824a096b81e8
CRs-Fixed: 2495320
When pktlog feature is disabled then the target CE11 attributes
should be set to CE_ATTR_DISABLE_INTR. Currently, the target ce configs
are attached unconditionally. This leads to incorrect attribute set for
CE11 in case when pktlog feature is disabled and thereby abortion of
HWDTIM in target as target checks host_ie for CE11. Currently host_ie
is not set for CE11, this results in aborting of suspend mode as
target assumes that host is using CE11.
To mitigate this issue, attach the target ce configs based on pktlog
feature. When pktlog feature is disabled then set the host_ie for
CE11 which will indicate to target that host is not using CE11 and
target will not abort HWDTIM mode.
Change-Id: I331d3bd8eda0c2aba9d86fb7601ac2b74c9e2c31
CRs-Fixed: 2459887
Target assert seen due to host was not reaping the buffers. Therefore,
increase the CE2 entries from 32 to 512 for regular profile build.
Change-Id: I6160ecb070bb98dba0d858f2bef3522ad0b60aa3
CRs-Fixed: 2462117
This reverts commit Change-Id: Icb25be0f4ce60112ef6293f39f9dcc57ebc0288c.
CE2 pipe source ring size is configured as 1700 bytes in LM build where
2048 bytes in regular build. WMI msg size is always hard coded in FW to
2048 bytes in both build. WMI/QMI Pipe configuration is not matching.
Revert CE2 pipe configuration to 2k in the LM build temporarily till FW
updates wmi msg size based ring size configuration.
Change-Id: I2b66097ff9aa23c49fa77fa78b865828f244d108
CRs-Fixed: 2457381
CE10 is not used in any endpoint service map. Mark this as unused CE so
that buffer are not enqueued in this CE. This gives a savings of 512
buffers or ~2M
Change-Id: I32f0d332becadb3536a0cb40c4ea88e518f448f6
CRs-Fixed: 2451745
CE1 is used for HTT RX after initial HTC control exchange. Hence
increase it back to 512. This reverts the change
I2b3a58c1d7a914194d842824945d12ae7c9ebb05
Change-Id: Idd7fdcb45f2f8d4188d4e36431b92b6ee443a982
CRs-Fixed: 2450563
Memory optimize for QCS403 platform, 1x1 chip. Reduce CE1 htt data
dest ring buffer from 512 to 256, reduce CE2 wmi dest ring buffer from
128 to 64, reduce CE9 & CE10 desg ring buffer from 512 to 64, disable
CE11 pktlog. Note: this change only affect specific WLAN build config for
extremely saving memory, for debug purose, there is another build
selecting default WLAN config for reference HW.
Change-Id: I868e74b09cdb11df3dccaa3f9e051da55724983d
CRs-Fixed: 2432632
1. Enable CE5 and allow it to service
pktlog messages from the firmware.
2. Register full pktlog callback handlers
for handling sw_events and full tx pktlog.
Change-Id: Ifb70ac0993f2402201f88758845f730cf677b1a0
CRs-Fixed: 2388906
Epping mode is currently borken in qcacld-3.2 codebase.
Fix epping mode for QCN7605 for USB and PCIe interface.
Change-Id: I5ae5ff70b77836cdd6c3d002cf98d4949838b624
CRs-Fixed: 2400180
CE1 is used only during initial endpoint exchange and some control
exchange like cookies. On HK, there is no need to enqueue 512 buffers.
Hence reduce it to 128. This provides a savings of 384 buffers or ~1.5M.
Change-Id: I2b3a58c1d7a914194d842824945d12ae7c9ebb05
CRs-Fixed: 2401025
Current max message size of 2048 will result in a 4K slab allocation due
to padding and shinfo additions. We observed that most of the WMI
allocations are within 1600 and there is no need to set max bu size as
2048. Hence reduce max buf size to 1700 for low memory profile so that
allocation on host result in a 2K skbs.
Change-Id: Icb25be0f4ce60112ef6293f39f9dcc57ebc0288c
CRs-Fixed: 2394768
The CE11 in target CE config array is used, but not allocated.
Fix this by allocating memory for CE11 in the global structure.
Change-Id: I85088f5a832aec037a1e46eed4b72ac4228fde44
CRs-Fixed: 2365435
QCA8074 platform supports DBS(two radio) and DBS_SBS(three radio)
modes. In these cases, same WMI event ring is shared for all the
radios. Increase the WMI event ring size two absorb host delays
due to lower clock platforms. This increase is required even to
support three radios.
Change-Id: I1aa08b8fa879f6ec54c838541a0e4c4e5871b60a
CRs-Fixed: 2378193
The unused CE11 is accessed in ce_construct_shadow_config_srng,
but not allocated.
Fix this by allocating memory for CE11 in the global structure
CRs-Fixed: 2365374
Change-Id: Iefd9129e486891e27f5964eecc1a2d1efc080d06
1. Allocate and Initialize host and target copy engine configuration
for QCA6390 based products.
2. Setup Copy engine service map for QCA6390.
3. Add conditional compilation flag QCA_WIFI_QCA6390 to support
QCA6390 based products.
Change-Id: Ia4dd4d436b8ecae0e9f91faa0c1fe7dbd14f001f
CRs-Fixed: 2259312
Change CE poll timer to wake up CPU so that timer kicks in even though
CPU is in idle state. This is needed so that poll happens in regular
10ms intervals. Also made ce_inited false during wifi down path to
prevent polling during wifi down.
Also made some cleanup in polling implementation to remove global scn
flag to enable polled mode and use attr flag to enable per CE polling.
Change-Id: I1d894c99193cc9902fcf4d6cbfd179c557ec6219
CRs-fixed: 2269599
Changes to compile out fastpath feature cleanly and
also disable unused code when Fastpath is enabled.
Change-Id: If6dc9d5c4d4441d5edded582747c783a10f8c8d4
CRs-Fixed: 2226921
CE6 is used for autonomous HIF_memcpy by FW, but interrupts
are coming to host since there is no separate HW control to
turn off host interrupts. Avoid requesting these interrupts.
Change-Id: I7b09b7c6e39d37e111e6e7a4292f605b3fb602e0