Gráfico de commits

78 Commits

Autor SHA1 Mensaje Fecha
Uraj Sasan
96654fada3 qcacmn: Disable CE_ATTR_INIT_ON_DEMAND for CE5
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
2020-10-14 05:48:42 -07:00
Uraj Sasan
180f7b20d9 qcacmn: Pktlog dynamic CE config support
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
2020-10-08 10:19:22 -07:00
Sridhar Selvaraj
bf0668f3c0 qcacmn: Reinitialize pci irq ops for qcn9100
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
2020-10-01 19:09:03 -07:00
Yeshwanth Sriram Guntuka
7d4b38f4ad qcacmn: Set the CE2 buffer size to 3200 bytes
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
2020-10-01 16:58:12 -07:00
Karthik Kantamneni
268ab400cd qcacmn: Add support for WMI DIAG events over CE7
Add support for handling firmware WMI DIAG events over CE7.

Change-Id: I3d6c0b08313e816809a65eb77d9728fc4b4488f3
CRs-Fixed: 2787010
2020-09-30 11:10:33 -07:00
Nirav Shah
a24f3db18e qcacmn: Increase CE2 host ring size to 512 for QCN7605
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
2020-09-17 18:34:16 -07:00
Nisha Menon
095453ad08 qcacmn: Increase num of entries in CE2 dest and status rings
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
2020-09-16 02:33:21 -07:00
Pavankumar Nandeshwar
9e00273fe7 qcacmn: HIF layer changes for QCN9100 bringup
Initial changes made for bring up of
QCN9100 in HIF layer

Change-Id: I60c5f7e8d5456e6f2bfda8f99d873a30ca979ada
2020-09-01 01:49:57 -07:00
Jinwei Chen
d5a6680a6f qcacmn: Reduce CE4 source ring entries number
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
2020-08-21 16:59:05 -07:00
Basamma Yakkanahalli
f732e1a0b2 qcacmn: disable CE8 interrupt
Disable CE8 interrupt it is not used between 
host and target communication.

Change-Id: I39439bcdd6adfa3973bcc81eaf43f047839a85aa
2020-08-06 10:38:03 -07:00
Chaoli Zhou
81d4965369 qcacmn: Reduce the ce entries while disable pktlog
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
2020-07-24 07:10:21 -07:00
Balamurugan Mahalingam
8aec8db9ac qcacmn: Avoid configuring mac1 WMI buffers for QCN9000 and IPQ5018
And avoid configuring PKTLOG buffers if REMOVE_PKT_LOG
is defined

Change-Id: I40276f1f1905137cef053f9e552effde05b0240d
CRs-Fixed: 2733547
2020-07-17 21:25:55 -07:00
Basamma Yakkanahalli
b8396604b4 qcacmn: Reduce number of CE to 6 for IPQ5018
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
2020-05-06 03:10:23 -07:00
Nirav Shah
eb3405c26a qcacmn: Disable copy complete interrupt for HTT copy engine
Disable copy complete interrupt for HTT copy engine.

Change-Id: I09510298f873a3bc4ca802a6fed3b7b0e103fd65
CRs-Fixed: 2649845
2020-04-22 14:03:40 -07:00
Nandha Kishore Easwaran
e6ffcdabce qcacmn: Increase CE2 count to 128 for QCN9000
Increase destination CE2 buffer count to 128 for
QCN9000.

Change-Id: I4b497c385e461d093da5fa5ed03e2aa299dfb1f9
2020-03-23 19:57:35 -07:00
Basamma Yakkanahalli
9def5df14a qcacmn: device ID and target type checks for ipq5018 target
Initial changes for ipq5018 compilation.
Added device ID and target type checks for ipq5018 traget.

Change-Id: Ib86a371fbe66749fcb6d114e7a4a9931b684e03d
2020-03-20 23:45:43 -07:00
Chaoli Zhou
2e0fb4fd50 qcacmn: Change copy engine 8 entry numbers
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
2020-03-13 06:47:45 -07:00
Lihua Liu
a2d35b81ac qcacmn: Enable interrupt mode for CE4 of Genoa
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
2020-03-01 19:45:23 -08:00
Venkata Sharath Chandra Manchala
607f32711f qcacmn: Increase the CE2 source entry buffer size
Allocate a buffer of size 4096 bytes for each buffer
posted to CE2 source/destination ring.

Change-Id: I0beb1e4e87c19508917e8564b441819031be2065
CRs-Fixed: 2619899
2020-02-23 22:43:30 -08:00
Chaoli Zhou
09815803eb qcacmn: Change copy engine 5 destination ring entries to 128
Genoa FW use the hardcode 128 for ce5 destination ring
entries, so change host code to follow up with it.

Change-Id: I1b7e70f8244efc3d3ca3dc659fb3d7687828b9c4
2020-02-14 05:48:08 -08:00
Alok Kumar
ffc116e798 qcacmn: HIF changes to support Moselle
Add HIF changes for supporting the newly
added IPCI bus type for Moselle

CRs-Fixed: 2597321
Change-Id: I9097e4622e9d6d561e92f5a21cb279c4d631cfbb
2020-01-18 04:44:35 -08:00
Nandha Kishore Easwaran
ee037a0f89 qcacmn: Reduce number of CE to 6 for QCN9000
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
2019-12-22 22:14:41 -08:00
Nandha Kishore Easwaran
cbf2eb71d3 qcacmn: Enable interrupts for pine
Remove EPPING_CE_FLAGS_POLL from poll flags so that interrupt is
enabled for pine.

Change-Id: I8271ab47e75fbe254e0c5d745f861edbda4b07ce
CRs-fixed: 2507441
2019-11-13 00:56:22 -08:00
Nandha Kishore Easwaran
fb73acb147 qcacmn: CE flag changes for QCN9000
Added change to modify ce flags for Pine.
Also made changes in window enable bit

Change-Id: Id080be53d14450cb6d9376fc810177bce26a2869
CRs-fixed: 2507441
2019-11-05 16:18:38 -08:00
Mohit Khanna
973308ae13 qcacmn: Add HIF changes to support qca6490
HIF changes to support qca6490 WLAN chipset.

Change-Id: I4b1be1770a2daf0a0db6f65f579831e3fcb10e79
CRs-Fixed: 2522133
2019-10-17 15:13:20 -07:00
Nandha Kishore Easwaran
5d3475b985 qcacmn: Initial changes for pine
Add device ID change and target type checks for pine.
Also remove memory war added for Hk emulation.

Change-Id: Idf531a48a03202d4fb241a92a1d671ee2b94cfbd
CRs-fixed: 2453899
2019-08-11 02:11:41 -07:00
Nirav Shah
69fd90a11c qcacmn: Increase Source ring size of HTT TX Copy Engine for QCN7605
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
2019-08-02 05:00:25 -07:00
Kiran Venkatappa
a516abcc57 qcacmn: Mark CE5 as unused when pkt log is disabled
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
2019-07-26 09:27:12 -07:00
Surabhi Vishnoi
b30b9176a2 qcacmn: Add target ce configs based on pktlog feature for Adrastea
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
2019-07-12 02:05:28 -07:00
Shashikala Prabhu
5d8eb1544a qcacmn: Increase the number of entries in CE2 ring from 32 to 512
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
2019-06-14 10:21:13 -07:00
Shashikala Prabhu
f7b7f5e929 Revert "qcacmn: Reduce WMI max message size on low mem profile"
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
2019-06-14 10:21:07 -07:00
Kiran Venkatappa
0df30dd0a0 qcacmn: Mark CE10 as unused for qca8074
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
2019-05-21 13:14:35 -07:00
Kiran Venkatappa
110d691272 qcacmn: Increase CE1 buffers to 512 for qca8074
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
2019-05-16 05:57:37 -07:00
hangtian
c572f5f517 qcacmn: Memory optimize for QCS403 platform
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
2019-04-25 21:54:04 -07:00
Nirav Shah
a9366e3e96 qcacmn: Update copy engine configuration for QCN7605
Update copy engine configuration for QCN7605 to
reduce memory utilization in FW.

Change-Id: Icb387d72eb9cbab55cd665e7400dd1bf2f1201af
CRs-Fixed: 2371184
2019-04-19 06:12:59 -07:00
Akshay Kosigi
181b2f52e6 qcacmn: Clean up HIF module to remove CONFIG_WIN macros
Replace CONFIG_WIN macro definitions with feature based macros
for HIF module.

Change-Id: I31a3ef0f70d19f838e2dff0db345e765a0aeb84e
CRs-Fixed: 2407222
2019-03-14 19:27:51 -07:00
Venkata Sharath Chandra Manchala
cad74add80 qcacmn: Add support for full pktlog
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
2019-02-21 23:25:30 -08:00
Nirav Shah
3e6e04bc0c qcacmn: Fix epping mode for QCN7605
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
2019-02-21 01:46:35 -08:00
Kiran Venkatappa
c5de90ee5d qcacmn: Reduce CE1 buffers to 128 for qca8074
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
2019-02-20 05:02:32 -08:00
Kiran Venkatappa
e9f72e08e2 qcacmn: Reduce WMI max message size on low mem profile
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
2019-02-15 10:34:02 -08:00
Debasis Das
a5e316fb7e qcacmn: Fix array out-of-bounds in target CE config array
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
2019-01-19 03:17:01 -08:00
Kiran Venkatappa
cb001d8dd4 qcacmn: Increase WMI event ring size for qca8074
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
2019-01-16 12:57:09 -08:00
Vinay Adella
77d43a89b9 qcacmn: Fix array out-of-bounds in the during CE config
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
2018-12-19 09:32:25 -08:00
Venkata Sharath Chandra Manchala
79860aa182 qcacmn: Enable QCA6390
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
2018-08-08 12:53:51 -07:00
Nandha Kishore Easwaran
7cdaae2be8 qcacmn: Cleanup CE poll implementation
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
2018-08-01 12:32:00 -07:00
Nirav Shah
4c8b78a44c qcacmn: Add support for QCN7605(Genoa)
1. Copy engine assignment changes for Genoa.
2. Add support for QCN7605 device type.

Change-Id: I5cf6b765a51608c27f2ef2e6d3bf45b64875dd6c
CRs-Fixed: 2265278
2018-07-06 03:19:17 -07:00
Jeff Johnson
5fb2e3d5f1 qcacmn: hif: Remove legacy markings
Per current guidance remove legacy markings.

Change-Id: I5d1411d241cfed4f50759960d18e9220f6c0da39
CRs-Fixed: 2230684
2018-05-18 02:17:27 -07:00
Nirav Shah
77250fa1d7 qcacmn: Changes to compile out fastpath feature
Changes to compile out fastpath feature cleanly and
also disable unused code when Fastpath is enabled.

Change-Id: If6dc9d5c4d4441d5edded582747c783a10f8c8d4
CRs-Fixed: 2226921
2018-05-16 08:36:16 -07:00
Karunakar Dasineni
9ff1ef9798 qcacmn: Disable CE6 interrupts for Hawkeye
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
2018-04-04 04:02:11 -07:00
Nirav Shah
0d0cce8057 qcacmn: Featurize EPPING Feature
Featurize EPPING Feature to compile
out in mission mode.

Change-Id: Iecbab88961034a5e5d2ab73b5b577e52cdb17873
CRs-Fixed: 2198847
2018-03-07 03:55:50 -08:00