Currently host is programming IDX_UPD_EN for all the CE
channels even though which are not used by host.
Fix this by programming CE ctrl register which are
used by host.
Change-Id: Ic0c133d87c688257ef2047bcb177228e25369aed
CRs-Fixed: 3575870
Function hif_cleanup_static_buf_to_target() has multiple
implementations, with one chosen by conditional compilation. The
version where CONFIG_BYPASS_QMI is defined and QCN7605_SUPPORT is not
defined has a typo (snc instead of scn), so fix it.
Change-Id: Ifbfee8cb53e987216b46507e336bf3aa3de7bf6c
CRs-Fixed: 3500203
For ipci interface platforms, currently RTPM resume is
requested from CE interrupt handler even when suspend
is in progress. But ideally we should request resume
only RTPM state is in suspended, since as part of suspend
sequence also we will get CE WOW events and this should
not trigger resume.
Fix this by requesting resume from CE interrupt handler
only when driver state is suspended.
Change-Id: I450d6c48809afae26fe863184766ab5141d25691
CRs-Fixed: 3554857
In current case when RRI on DDR feature is enabled then host
programs CE control register, but there is chance of F.W also
programming the CE control register around same time this leads
to race and chance of either host/F.W value getting over written.
So to avoid this while programming the CE control register for
RRI on DDR enablement, update it with F.W programming value also
i.e DMA length. So if incase register value over written due to
race proper value will be updated to register either by host/F.W.
Change-Id: I2560c74726b21128d1cd50805d987fda1b2a1230
CRs-Fixed: 3561689
Current code doesn't have hif_event_desc_history in ssr driver dump.
Fix this by adding hif_event_desc_history and hif_event_hist_max to
the ssr driver dump regions.
And add more parameters for parsing hif_ce_desc_history_buff.
Change-Id: I02cbfc7b9ea0c53d31ad351377d4644f1ad189d1
CRs-Fixed: 3469140
Currently, the size of target to host CE pipe for HTT RX communication
for WCN6750 is 512. The data that we receive on this pipe is not very
frequent and hence 512 entries are not needed.
Reduce the size of the HTT RX ring for WCN6750. This will also bring
down the memory requirement for this ring considerably.
Change-Id: I690fa34c76b1b683a1518964088bc7540ca751a4
CRs-Fixed: 3554428
Currently, WBUFF is being used only for WMI TX buffers.
Add HIF CE RX buffers support to WBUFF in an effort to re-use
the copy engine RX buffers instead of freeing/allocating buffers
for every CE RX transaction. This fixes the problem of CE RX
memory fragmentation.
Change-Id: Id9c043a5c5d0882a7994fa03cd8c335555d46b8d
CRs-Fixed: 3534539
SOC ID is missing for WCN6750_V2 and as a result correct
string for chip is not sent to CNE. This leads to the
issue in Wifi calls.
Add the SOC ID for WCN6750_V2.
CRs-Fixed: 3552566
Change-Id: I80d19742f6ffa1c5b03f1f2576c6e4c0c4a1c1db
Current HAL delayed reg write is tied to SRNG notions, hence
implement delayed reg write logic in HIF since WCN6450 does
not use SRNG interface.
New feature flag FEATURE_HIF_DELAYED_REG_WRITE is introduced
to disable/enable this support.
Change-Id: Id7087ad53cd5879cf49ee0e84dd727de61137541
CRs-Fixed: 3519702
Regarding to the platform suspend, generally the hif_bus_suspend() will
disable the CE irqs, however the irq is shared in the single MSI case,
so the MHI irq is disabled as well which cause no MHI ring event notified
in the following pci bus suspend.
The fix is to bypass hif apps irqs handle for single MSI case during
suspend-resume stage.
Change-Id: I4f9068900e85fe57c2a82d841846b3fff6da0696
CRs-Fixed: 3549884
When one of the enabled CE tasklet is executed, it will
check latency of all the others which are enabled, it's
redundant. Add a new API to check latency for a single
tasklet.
Add API to record sched time for a tasklet, which will
check the enablement of detection before recording the
time.
Change-Id: I515ca27fc2e97231397573b4903c001d29326bd2
CRs-Fixed: 3514285
This change initializes some uninitialized local
variable to avoid arbitrary values in some cases.
Change-Id: I906528514c41132ead23433a8a91374b4309c543
CRs-Fixed: 3545869
Currently RTPM refcount is not released if force
wake release fails. This leads to mismatch in number of
RTPM get and put during RTPM de-init.
Fix this refcount release if force wake release fails.
Change-Id: I4334de57e00139c0d30d37d7e19a399760400a50
CRs-Fixed: 3544981
Remove alignment of 4 bytes when allocating memory for Copy
engines. Copy engine buffer size is 2048 which is already
aligned to 4 bytes. This 4 byte alignment addition results in
64 bytes extra memory allocation for each skb since SKB_DATA_ALIGN
rounds it off to nearest 64.
Change-Id: Ib680547d2bcfe57b6eadda5301677d68e4a931a4
CRs-Fixed: 3533492
Add missing rtpm_put() for the corresponding rtpm_get() during
tx ring write index update.
Also, add counter to capture flush count per CE.
Change-Id: Ieeee944b63d574f62d61f0557637cbf8f3b653cd
CRs-Fixed: 3536425
During init time initialize current and requested IRQ affinity
value to silver core
Change-Id: I87ee99732bf1b07be42b93013299d0b8a0c36c97
CRs-Fixed: 3528886
Allocate a separate CE for diag only when enable macro is set
WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE is used for indicating if
diag works on a separate CE. This flag is disabled on 256M platforms.
Change-Id: Ic4862478ece2eaf3d7b92d776f25420107c051f3
CRs-Fixed: 3533485
When the memory allocation is fail for shadow_base_unaligned in
ce_init(), the ce_hdl will also be NULL. So we need to check if
ce_hdl is null or not before use it.
Change-Id: I88bb7323b3f171a17e07cbc6168b6f26412803f6
CRs-Fixed: 3531693
Recently wlan host might configure irq affinity for CE/DP,
but these irq affinity hint has not been cleared before they
are freed, kernel will raise warning.
Clear the irq affinity hint before freeing irq.
Change-Id: I17d0d6aee45572685fb2ed69112e9b6b4c9b303a
CRs-Fixed: 3528315
Change the default log level for shadow register
configuration print, which use error level is not
proper since they are not critical/fatal cases.
Change-Id: I899a8acea228a86356d6d380844a3c6ebf43f3e5
CRs-Fixed: 3519727
Increase the CE1 ring size, which is used for htt
events to 1280 entries from current 512 entries
for Waikiki
Change-Id: I794522751deb9a60e6487e42df48f582a5e01d2e
CRs-Fixed: 3511251
The IOVA for the buffers that are attached to the direct
link receive copy engine need to be contiguous for optimal
memory mapping on ADSP.
Fix is to use multi pages prealloc when posting buffers
for direct link receive buffer.
Change-Id: Ieb253bd3c1b6550e4c1c63cd587993891ac817f2
CRs-Fixed: 3502633
Add changes to affinie away IRQ from the CPU taken
by audio driver during Pro audio use case.
Change-Id: I881c42e9f951fbf965be6d6a71994fd97791ee48
CRs-Fixed: 3502637
Currently for WCN6750, RX buffers for CE5 (used for PKTLOG) are
allocated although PKTLOG code is not compiled into the driver.
This leads to wastage of memory. If allocations are done
conditionally, then a memory of 2MB will be saved when PKTLOG
feature is not compiled.
Change-Id: Id6c43cd0a1d15d3553e1e37910b067ef705b15f6
CRs-Fixed: 3506469
Add support for NAPI schedule latency and poll time histogram stats
for WCN6450.
Change-Id: If982ebe4e3cfa80f47c6d2fe9d4cb9dfa318481d
CRs-Fixed: 3485287
Extend the feature to detect tasklet latency for all CEs.
And also introduce a build flag
DETECTION_LATENCY_TASKLET_MASK to control the enablement
of each, set bit-X to enable detection for CE-X, the
default value is 0x84(BIT(2) | BIT(7)).
Change-Id: I2874d1d50fc5febbf028ebb48ba64e11977c8c34
CRs-Fixed: 3474314
The number of perf CPU clusters can vary across
different targets. Currently only the second CPU
cluster is considered as the perf cluster, whereas
there can be more than 1 perf clusters.
Fix this perf cluster derivation for interrupt
affinity.
Change-Id: Ie4407064ac5124fc050715fd75400ca516c9c6b8
CRs-Fixed: 3498024
Logging macros already takes care of adding function name.
Hence, delete the occurrence of __func__.
Change-Id: I44ef5d7f030eba16decb9611f16001c6e9d42b3b
CRs-Fixed: 3492505
Enable/disable copy complete interrupt in HOST IE register and
clearing the interrupt status in HOST IS register is not required
for WCN6450 as it uses MSI and batch count/intr timer.
Change-Id: I2285651a75d01546498831e91705a989f7f60fd5
CRs-Fixed: 3470364
Increase the CE2 buffer size to 3520 bytes to support large
management frame receive.
Since CE2 & CE3 shares common EP in Fw because of which any changes
in buffer size in CE2 need to have similar changes on CE3 as well.
So to accommodate change increase CE3 buffer size.
Change-Id: Ibf01111e9bde65c29ae5a1a8e8e167fcfc64c02c
CRs-Fixed: 3471668
1. Check Tx halt during umac reset and avoid halt if set already.
2. Perform SRNG disable only in case of umac reset
Change-Id: Id364a6460a64e83002b5c96e08031ad2a0bc8fd7
CRs-Fixed: 3459427
As IPA has moved out of the kernel, ipa_uc_reg_rdyCB
interface call from WLAN is not needed anymore
as ipa_wdi_init_per_inst() initialization call will
handle this. This change will add support to retain
this call only for legacy devices.
Change-Id: Icb479562e091d388e03ef5a38b3e95d4dbf06271
CRs-Fixed: 3459071
Inorder to keep the PCIe link up during
optional wifi dp transfer the
hif_force_wake_request() is called during
filter addition. This increments the rtpm_get counter.
Now if Wifi is disconnected before releasing the
filters, the corresponding hif_force_wake_release()
call is not made. This causes a mismatch in RTPM GET and
PUT calls and triggers an assert during hdd_wlan_stop_modules().
This change adds a cleanup call to release the force wake
and reduce the rtpm_put counter to prevent the assert.
Change-Id: Idd778275a015922376cf7eb0a7c3d92e75881fe8
CRs-Fixed: 3441186
ppe2tcl and Umac reset interrupts need dedicated irq lines.
Hence, group some of the existing dp groups togeather
to share MSI lines to make space for ppe2tcl and Umac reset
dedicated irqs.
Change-Id: I5181caeaeb4d0107b62e7ac812c2f829fd8215a2
CRs-Fixed: 3423553