The kernel-doc script identified a large number of kernel-doc issues
in the hif/src folder, so fix them.
Change-Id: Ia944c6c9f1bcb6a8f5f0ff07ca0afa7bf3a40ad0
CRs-Fixed: 3375493
The kernel-doc script identified a large number of kernel-doc issues
in the hif/inc folder, so fix them.
Change-Id: Idb9a748c71ab71122b74ac9d2665ead474c649ff
CRs-Fixed: 3375492
Add changes to move ioremap of PMM SCRATCH register outside
interrupt context, as ioremap in interrupt context in not valid.
Change-Id: I0fa645c55e10a5241011a1f4ffdccdca48c50d29
CRs-Fixed: 3371194
Currently the HIF code directly calls Linux NAPI APIs. However, the
QDF has abstractions for these. Furthermore, the QDF implementation
properly handles NAPI API changes introduced in Linux Kernel versions
5.19 through 6.1. Therefore, modify HIF to use the QDF NAPI APIs so
that the version-specific changes are only needed in QDF.
Change-Id: Ibc6c69c9add8d2829ac34dcdcf8b2b262f7304b7
CRs-Fixed: 3364162
The HIF latency log is outputted to kernel message buffer, which
slows down the efficiency and may introduce process stuck. Change
is aimed to use info high log level to let the log output to
driver log.
Change-Id: I0be4a3f904484305e6c11127f82bb1ea77b33cd9
CRs-Fixed: 3342422
Observed NAPI of REO2SW1 hard to complete caused by slow CPU/schedule
on REO2SW1, hence IRQ of REO2SW1 keep disabled during the polling which
impact other MSI as well in single MSI case, until hit REO2TCL timeout
and crash.
The fix is complete the dp rx NAPI poll and re-enable the irq if the
irq disabled for long time.
Change-Id: I5e70d9646b78307ab0c35e2ac0d6e3647804c476
CRs-Fixed: 3332143
Modify existing API used to fetch direct link destination
buffers to also get destination buffer size.
Change-Id: I6c220fe9bbb216f1c0db2e1e38da2ce8314fe47b
CRs-Fixed: 3347321
Add support to record last busy events on RX CEs,
this helps to check how frequent CEs are marking busy.
Add support to display last busy history and runtimepm stats.
Change-Id: I856ce54a2f1c6b26722d27623343fc0a2c202c6f
CRs-Fixed: 3337902
Add void keyword to function definitions for
ce_service_srng() and target_if_get_ctx().
Change-Id: I4d74600da82a9f13285a496a2136589b698da017
CRs-Fixed: 3336700
Store ini config delay value and current delay value in RTPM
context
Export API to update delay and get current delay in ms for RTPM
timeout.
Export API to restore delay to default value.
Change-Id: I53e9e17d983c2cc6fe317159c8c46d792e56c04e
CRs-Fixed: 3332132
Add separate CE host, target, and service map config
tables for Direct Link use case on Kiwi.
Change-Id: I84c1af09da401ab739905b96c85417f907b36743
CRs-Fixed: 3335330
The MSI address and data information for Direct Link
copy engines will be available once the WiFi driver
on LPASS is initialized. Add support to configure the
IPCC address and data values into Direct Link copy
engines at runtime.
Change-Id: I5e7dff90c2f1ff764462c235deb5795ed019a16b
CRs-Fixed: 3316679
Some platform would like to disable wake IRQ, so add INI to disable
wake IRQ.
Wake IRQ can't share the same IRQ with the copy engines. In one MSI
mode, we don't know whether wake IRQ is triggered or not in wake IRQ
handler. known issue CR 2055359.
Disable wake IRQ for one MSI mode. If you want to support wake IRQ.
Please allocate at least 2 MSI vector. The first is for wake IRQ while
the others share the second vector.
Change-Id: Id9e54e287f146ff64d94669bbc44dc0a724d9480
CRs-Fixed: 3290867
MSI vector number is defined in platform driver, so use platform
driver API to check whether it is in one MSI mode or not.
In case of one MSI vector, interrupt migration needs to be disabled.
This is because when interrupt migration happens, the MSI data may
change. However, MSI data is already programmed to rings during initial
phase and there is no way to know that MSI data is changed during run
time and reprogram again.
If it is in one MSI mode, disable interrupt migration by adding IRQ
flag IRQF_NOBALANCING.
Change-Id: I54579dfe1e658c1a2c395be93875d013d6e6affd
CRs-Fixed: 3290829
Reduce CE0 source and destination ring sizes for XPAN
usecases to reduce memory footprint based on the
frequency of transactions between LPASS and FW.
Change-Id: I65076a2720fa72d10327981994763dc4ac295ab3
CRs-Fixed: 3319659
CE2 ring gets full pretty quickly as target side entries
count is 32, host side config is 64.
Increasing target's pipe entry to 64 as well.
Change-Id: Idbcb3675af0b39fc9741ae68d7ec3f1ad5e67bf1
CRs-Fixed: 3322383
Indexing array after checking 'ce_id' for boundary
condition to avoid array out of bound.
Change-Id: Iffa776021dbd70bc135152ad06cb9488a74c335f
CRs-Fixed: 3328146
Capture return code of pld_force_wake_request_sync and
print it in case of failure.
Change-Id: Idd5058f4e884f28436a3928caf7350ac9446fabd
CRs-Fixed: 3317698
In kernel 5.18, pci-dma-compat.h is removed and so instead of
calling pci_set_dma_mask and pci_set_consistent_dma_mask, call
dma_set_mask and dma_set_coherent_mask.
Change-Id: I997fc8ec957d19aa8d51c304541ce699b835c1dd
CRs-Fixed: 3298244
In kernel 5.17, PDE_DATA() is replaced with pde_data(). Make
matching change in ath_procfs.c and linux_ac.c files.
Change-Id: Ia198545322146d4adde9330c19b43f5c2ed0dfa2
CRs-Fixed: 3298062
In kernel 5.17, complete_and_exit is replaced with
kthread_complete_and_exit. So if kernel version is >= 5.17,
then use kthread_complete_and_exit.
Change-Id: I4e9a98373197eba4931a8dafe77040448ffb40eb
CRs-Fixed: 3297481
Currently fw diag drain API is not under feature flag
as we only need to drain the ring in case when diag
events are received on CE7, which in other cases is
resulting in unnecessary error logs being printed.
To fix the issue move fw diag drain api under feature
check.
Change-Id: I7d040fbd1218c5c8ed9a8b2bae58af2f098fee80
CRs-Fixed: 3296285
Fix race condition in dispatch interrupt when CE0 interrupt is called
from irq context in one core while it is called from user context in
ring full condition. This case has to be handled using locks since
calling paralelly from multiple contextx is leading to interrupt
getting disabled and tasklet not getting scheduled. This is leading
to interrupt being in disabled state. Also change th diff_time variable
signed integer to handle a case where taklet is scheduled just after
the workaround kicks in leading to diff_time becoming negative.
Change-Id: I3894ef90ca48f23404bc9529c4b1623841698293
CRs-Fixed: 3297372
Currently RTPM refcount is not released if force
wake fails. This leads to mismatch in number of
RTPM get and put during RTPM de-init.
Fix this refcount release if force wake fails.
Change-Id: Ia6d2b4541347615afe46c79ae76114009f7805ad
CRs-Fixed: 3289451
1. Changes to support cmem write for AHB devices.
2. Interrupt enablement issue - Incorrect CE address was given which is
fixed.
3. dp_soc_init failure - dev_base_addr of Miami was NULL, which is
fixed.
4. Missing interrupt error logs - Added dummy entires for missing
interrupt in DTS and changes to support shared IRQ in wifi-drivers
Change-Id: I00e7666b2b978c35b5ccec5da21bf442ed0a7998
CRs-Fixed: 3268936
Currently HMT, HSP_KAILUA, HSP_WAIPIO, NETRANI_HL, NETRANI_MSL
device ids are not present in host driver code.
To address this issue add these device ids in qwlan_hw_list array.
Change-Id: I6ab7399545204e1df6ada836b7ab092fab064b38
CRs-Fixed: 3271889
Limit error logging when ce id does not match to tasklet_entry's ce
id. And dump all tasklet entries info to get more clue in the next
cycle.
Change-Id: Idcd9cb6ff45ef8e05fcea33cad48fa464e4f9a1e
CRs-Fixed: 3284277
Hif and tgt if layer changes to handle Umac post reset
and post reset complete events from firmware.
Change-Id: I08bbd90741708fe76b2db0371ccfda7bfe7b0b2d
CRs-Fixed: 3267222
Throughput based RTPM logic of ring access may fail and
lead to NOC error in some corner cases. Change is aimed
to add additional link states check to prevent invalid SRNG
access.
Change-Id: I7e7edbadfd21b4857efa4faff0ada6d94d682f2c
CRs-Fixed: 3256702
Add provision to call sync prevent suspend which will wait for
system to resume and increment usage_count before returning.
Change-Id: I855e3fc2660dc7f3f78bb70f8eef6228cbef96d3
CRs-Fixed: 3253335
Added new file specific to qcn9224 v1 defs. Use qcn9224defs.c for v2.
Added changes specific to soc version check.
Change-Id: I5b6aedbb8aba2de847e0f4d47212a25b36bfa7c8
CRs-Fixed: 3243676
BIT() is unsigned long int, and is being printed using
an incorrect format specifier. This leads to a compilation
failure.
Fix the format specifier for macro which uses BIT().
Change-Id: I42a71c3c4a388285809ad17dc62a50bf2df13a5f
CRs-Fixed: 3249816
Add support to log latest CE descriptor history which helps
to identify CE scheduling/reaping delays when full debug
history dump is not available.
Change-Id: I44a5c86a3e1dd4861bfd2e77b3f772d5d53bcedf
CRs-Fixed: 3225155
If there is no resourse to send packet via HTC, then check if interrupts
are not processed from that CE for last 3 seconds. If so, schedule a
tasklet to reap available entries. Also if Queue has reached 1024 entries
within 3 seconds, then also schedule tasklet.
This change is added because there is a case where intermittently
completion interrupts are not received from CE3 and hence adding
this WAR in host to come out of this issue scenario.
Change-Id: I126cd5e678517127659237308f8f6b1313f8f422
CRs-Fixed: 3234943