Adapt to latest changes to IPA micro-controller (IPA uC).
For pipe SUSPEND, IPA uC will fail in case the pipe is not empty.
IPA driver needs to insure pipe is empty and then issue a SUSPEND command.
For pipe DISABLE, pipe is already empty on SUSPEND,
IPA driver does not need to do ensure anything before
issuing a DISABLE command.
Change-Id: Icfc4745c666997c63be6e9444bf611fb4cbd1934
CRs-Fixed: 2002190
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
To avoid a race condition between init_completion() and complete()
which will cause a crash use reinit_completion() which is safe.
CRs-Fixed: 1114785
Change-Id: I5b5c9eb6a4dbe406951d71fe5963b3c4e411daa0
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
In case there is pending data submitted to IPA, IPA RM resource should
not be released. The resource release happens only when all packets were
processed by IPA.
CRs-Fixed: 1116262
Change-Id: I19756cbe4f84a5d09853d6066362e4a2c9ae1f73
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Reset the freeze vote after modem SSR to allow IPA clock gating.
Change-Id: Ice78831abc52aed44d640109e1453da7e2af9702
CRs-Fixed: 2002197
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Correct warnings flagged by checkpatch. In particular, modify
the following:
- Add 'const' to the type of a struct of_device_id variable.
- Update the QPNP_COINCELL Kconfig entry and the device tree
documentation to use the name: 'Qualcomm Technologies, Inc.'
Change-Id: Ieb737138dc5dacb01eb840a1861afe14cf14ddc6
Signed-off-by: David Collins <collinsd@codeaurora.org>
Correct warnings flagged by checkpatch. In particular, modify
the following:
- Add 'const' to the type of a struct of_device_id variable.
- Update the QPNP_REVID Kconfig entry to use the name
'Qualcomm Technologies, Inc.'
Change-Id: I36f9f6b63aedbcfe744800887d8629ac1feac804
Signed-off-by: David Collins <collinsd@codeaurora.org>
IPA and GSI firmwares are saved on the file-system as an
ELF file. IPA driver extracts the firmwares and load
them during driver initialization.
This change adds validation steps to each firmware before
loading: load addresses, memory sizes, firmware sizes and
more...
Change-Id: I7d7f66e8e8a9ca0efae08b1e57b25ae4e44cc5bb
CRs-fixed: 1110522
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
In case of device shutdown DMA memory allocation might
fail with GFP_KERNEL flag. This failure might occur
since the calling process received SIGKILL.In order to
avoid that scenario perform the DMA allocation with atomic
flag.
CRs-Fixed: 1116368
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Change-Id: Id4d29d0f4a25f5630911db79c236fb08da752be4
commit 5a00b6c2438460b870a451f14593fc40d3c7edf6 upstream.
The commit 1c6c69525b ("genirq: Reject bogus threaded irq requests")
starts refusing misconfigured interrupt handlers. This makes
intel_mid_powerbtn not working anymore.
Add a mandatory flag to a threaded IRQ request in the driver.
Fixes: 1c6c69525b ("genirq: Reject bogus threaded irq requests")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Add a check to event ring handle.
Change-Id: If835e7e610745aeb82d4d0e363ef833d0f8d857a
CRs-Fixed: 1115476
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Added basic support for CPU boost: when driver calls ops_bus_request
with a high bandwidth requirement, enable the big CPU cluster
and adjust the affinity of the wil6210 interrupt to run on
the first big core. The first big core is selected because
WLAN driver uses the other cores.
Change-Id: Ia752b9a8ca343b56e2839a30a4fdb59231f9a634
CRs-Fixed: 1114406
Signed-off-by: Lior David <liord@codeaurora.org>
Drain WLAN_PROD pipe by sending a QMI to modem only in case
that the pipe is not empty. Also for SSR case, set a timeout
for QMI message response.
Change-Id: Iecd63a929b622d80ad4d4ebf15e8de9251f7d9d3
CRs-Fixed: 1113156
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
New stat param "num_qmb_int_handled" is added to rx_ch_stats
by IPA uC in WDI2.0. This results in a size mismatch and
WDI stats feature is broken. Make a change to update the
new param "num_qmb_int_handled" in rx_ch_stats structure.
Also make a change to read all the rx_ch_stats to avoid
printing stale values.
Change-Id: I5d141f531f1cfdab0bd0056041e22acb26657960
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
Add support to Enable/Disable uc monitor holb feature.
sdm660 does not support uc monitor holb feature.
Make changes to get this param via device tree to
support devices which handle holb monitoring via IPA uC.
sdm660 supports WLAN offload. Make changes to configure
wlan pipes on IPA2.6L needed to support WLAN offload.
Change-Id: I07e099ffb7833e4790dda1fd4864f3f61acb2a45
Acked-by: Mohammed Javid <mjavid@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
When processing an IEOB interrupt, do not process the pending
events in case the channel is in polling mode.
Change-Id: I9b9fbc71ae33fe1bfef837580f9f8e9aa875160d
CRs-Fixed: 1112064
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Make change to pass the iotcl param to reset_stats
instead of NULL to avoid NULL pointer access.
Change-Id: Ie5fe6d3dd530ac2efc0fe670cccd20b9a2fbe968
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
An IPA header or processing context can be added once
and later deleted once from user space.
Multiple deletion may cause invalid state of the headers
software cache.
Change-Id: Ic0b8472b7fd8a76233a007d90c832af726184574
CRs-fixed: 1097714
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
External gcc clock is operating in 2x,
IPA clock to be in sync up with gcc clock,
enable 2x fast clock in IPA.
Change-Id: I47dc00452c7a52c967838ee0c4db6eaf754e5ae6
Acked-by: Mohammed Javid <mjavid@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
Avoid race condition in driver when encoding param by
reading contents from a local copy instead of msg buffer
itself which can be mapped to user space.
Change-Id: I405ca6c7fcb0afa112e0851907b5dca805ac5411
Signed-off-by: Ahmed Sheikh <ahmedsh@codeaurora.org>
Add IPA stats support on AP+STA mode for V2 driver
when CNE queries. Also add metering funtionality
on WIFI interface to stop the data transfer
when quota reached on WIFI-case.
Change-Id: I51a771423e6a35ea0453b978be484d0464bddf14
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
commit e74e259939275a5dd4e0d02845c694f421e249ad upstream.
Without this patch, the Asus X45U wireless card can't be turned
on (hard-blocked), but after a suspend/resume it just starts working.
Following this bug report[1], there are other cases like this one, but
this Asus is the only model that I can test.
[1] https://ubuntuforums.org/showthread.php?t=2181558
Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Add the checking of the input length from userspace so kernel space
will not copy any content outside the input buffer.
Change-Id: I3cef834ed1df836356ba40e6e950a534ec49819d
Signed-off-by: Yan He <yanhe@codeaurora.org>
On WDI-disable, Apps-IPA needs send QMI to inform
Q6-IPA to lift the delay and drain the pending UL
data in IPA to prevent IPA-UC crash.
Change-Id: Idb4d525b46d29b6ae283987c7b8707852ac810d4
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Add ipc logging for ipa driver for different use cases
such that ipa driver can direct messages to ipc logging
buffer which can be found in crashdump.
Allocate ipa_low IPC only when needed,
for data path and other frequent log prints to avoid
performance penalty.
Change-Id: I5350a015b587b6cbcbfdcebe523376a8e50fc06c
Acked-by: Mohammed Javid <mjavid@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
Update the code name from msmfalcon/apqfalcon to sdm660/sda660.
As part of this, update the filename containing "falcon" and
files content containing "falcon".
Change-Id: Iec85862251b9e1b4dcc8bdce8b214ce87c0049bc
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Suspend is set on Q6 pipes in PRE_SHUTDOWN phase of SSR. It was seen that
sometimes the suspend is being removed and is no longer present during the
POST_SHUTDOWN phase. Therefore, set suspend in POST_SHUTDOWN phase again.
Change-Id: Iebbef315a838b40eec939f368e63c4329723d906
CRs-Fixed: 1094908
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
Option added not to bypass SMMU and use
fastmap DMA APIs for 11ad use-cases.
SMMU address range is changed to have the
max possible.
Change-Id: I073ab59cc4ef1b71545a9e77b76d94f09d659aac
CRs-Fixed: 1105323
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>