FW diag drain may got delayed and host may not clear
all the logs in one set. Change is aimed to give more
rounds to try to complete the pending logs before suspend.
Change-Id: I06433a464d96c3c9d96207f6da7a8ea513fcdc9e
CRs-Fixed: 3602039
hif_config_irq_clear_affinity is not defined, while
hif_config_irq_clear_cpu_affinity is defined.
Do not export undefine API.
Export hif_config_irq_clear_cpu_affinity.
Change-Id: I6b66ae687446b1c1eae15683766fd47554156b90
CRs-Fixed: 3606013
Fix panic due to passing a smaller number of arguments to QDF_TRACE API
in hif_print_napi_stats().
Change-Id: I37b9c9ec374f7ab37adc169a7de0829fd1cb60fc
CRs-Fixed: 3602357
This reverts commit I794522751deb9a60e6487e42df48f582a5e01d2e.
Reason for revert: Changes for the fix is implemented as a different FR
Change-Id: I19f6e4362ed406c9906e333c1ee0bfa2fe14677e
CRs-Fixed: 3598130
Add ce_count check to avoid any buffer overflow
of "scn->ce_id_to_state" and "hif_state->pipe_info"
Change-Id: I77f074f631a86cb96badab27e6850e0969331dba
CRs-Fixed: 3589967
FW diag drain may wake up delay reg write WQ, and this
happens after ce tasks completion check. Change is to
make FW diag drain operation before complete check.
Change-Id: I209c88cc5c2d5cb3b3195d1ae08b4c0c29903fa5
CRs-Fixed: 3591738
Set affinity to assign WLAN CE datapath IRQs to perf clusters
based on the INI config.
Change-Id: I63f96bc6b434af2e322ef277096e5547cfa6835a
CRs-Fixed: 3590583
Latest CE event history is helpful to analyze CE reaping
issues when dump is not available. Enhance latest HIF CE
event history to capture last two events, so that during
error situations more data is available to detect CE
reaping issues.
Change-Id: I503ec5c84ff02b967e1ce93954725ffd9866e93c
CRs-Fixed: 3590596
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().
also typecast the macro to unsigned long for CONFIG_SLUB_DEBUG_ON
case where IS_CE_DEBUG_ONLY_FOR_CRIT_CE is of type unsigned int.
Change-Id: I5a717fd45c80b8245522c895c36aaafd46592454
CRs-Fixed: 3591809
Currently enable_rpm is being set in hif_rtpm_start
which is called later in hdd_wlan_start_modules,
this can result in race between hif_rtpm_start
and hif_rtpm_put.
To fix the issue set enable_rpm earlier to avoid
race condition.
Change-Id: Iaa4ffda4eef3050f43ff5ca2bdba555abb8a0b47
CRs-Fixed: 3581962
Currently there is no memory barrier after valid flag read,
which can result in reading q_elem values in random order,
due to which host can read stale entried from the q_elem.
To fix the issue add memory barrier to avoid inconsistent
read for valid flag.
Change-Id: I9431d4f62188def37c2515e376a28f3985733f85
CRs-Fixed: 3577746
Currently on WCN6450 which is based on IPCI, there is a problem
in re-enabling the IRQs while firmware recovery is in progress.
While processing the CE IRQs, if there’s an active recovery
happening in the host (due to FW assert), we are leaving the IRQs
disabled in the kernel.
Fix this by refactoring the code such that hif_irq_disable() is
called only when there is no active recovery.
Change-Id: I4e3ccbb5f820645597feb724ddfe321e7d7d1a5f
CRs-Fixed: 3579429
Currently hal_info and hif_info logs levels are set to
QDF_TRACE_LEVEL_INFO, which results in prints being logged
to dmesg buffer.
To prevent prints logging into dmesg buffer, changes logging
level to QDF_TRACE_LEVEL_INFO_HIGH.
Change-Id: I039c5e7b6b47f1ffda8e32ff44322d1963648c41
CRs-Fixed: 3577831
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