With QUP in shared mode, enabling and disabling the
resources in runtime pm will cause failure of
transactions over the QUP that are running on other
execution environment. To avoid the failure
enable/disable gpios and clocks of QUP per transfer.
Also move the clock prepare and unprepare calls
to runtime pm APIs from the transfer API to
reduce the latencies in the transactions.
Change-Id: Ic697cdc544405d86ec7c675922c18c00fec451a6
Signed-off-by: Dilip Kota <dkota@codeaurora.org>
Signed-off-by: Shrey Vijay <shreyv@codeaurora.org>
Add sub-device node to allow mba to be able to load in carveout
memory region for SDM660.
Change-Id: I0e9932a0a779a66b7a3d4b682a60885cb7d799c5
Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org>
This reverts commit 3e47c53624 ("firmware_class: Add an
additional path to fw_path list").
Adding /firmware/images entry in fw_path is introducing selinux
denials as the access was happening under the client process
context. Removing the entry from fw_path structure.
Change-Id: I359f8defe49595a7e53558992080cb94eba42451
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
USB function driver uses usb_gadget_autopm_get() API to increments
USB controller device's PM runtime usage and child count, and also
expects that USB controller is resumed. Late suspend disables USB
controller device's PM runtime functionality by incrementing
disable_depth count and early resume enables it back once system is
resumed. This results into pm_runtime_get_sync() returning -EACCESS
when APPS is power collapsed and it is resuming due to USB bus resume
case. usb_gadget_autopm_get() API is decrementing device's PM runtime
usage count if it receives error value from pm_runtime_get_sync() API.
USB function driver doesn't check return value which results into
continuing USB operation. On next bus suspend, it decrements usage count
although it was not incremented in previous resume case which makes PM
runtime usage count negative. This can cause multiple issues as below:
1. USB bus resume may take more time causing host re-enumerating USB
gadget device
2. Unclock register access on remote wakeup case
3. USB host mode enumeration may fail due to dwc3 device usage count
is negative.
Fix this issue by making usb ipa wq as freezable workqueue which will
make sure that ipa_work_handler() work is executed only after system is
resumed and USB controller device's PM runtime is enabled.
CRs-Fixed: 1075002, 1074383
Change-Id: I300d1a0081fafcbef3c00c63cddd49be54a651e5
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
usb_func_ep_queue() returns -EAGAIN if usb is function suspended and
successfully remote wakeup is performed. This change fixes error
handling with USB GSI function driver to make sure caller knows that
request is actually queued or not from this context. This makes sure
that USB request is queued once USB host has resumed USB bus.
CRs-Fixed: 1033093
Change-Id: I3f3cb1b6b42530bfa93e0d4badacfe651b6bbb4c
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Increment GSI command timeout. This is needed since during Q6 GSI FW
authentication GSI HW is disabled and the response for the HW may be
delayed.
CRs-Fixed:
Change-Id: Ia9ed0f0163abbfd3e242c38a9aea084c1c37e8fd
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>:
Add mutex around qseecom_set_client_mem_param to prevent an
ioctl thread modifying and corrupting data which is being
processed by another ioctl in the other thread
Change-Id: I0cfb8afab4001c2913be693dfe44c761b9568893
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
When pil loading done through user space helper, there is a possibility
that signal could be pending on thread that initiated the pil, which would
lead to pil failure. To avoid this issue, move pil loading for ADSP, SLPI
and CDSP to separate workqueue in respective loader drivers.
Change-Id: Ie60a7eba7c52ac1565ce166d0e367379cce0b03e
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Averaging 10 die temperature samples reduces error caused by
a trim issue.
Change-Id: Ie0b9477c121df92544280b8e322c2205c680f6eb
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
700Khz is not a harmonic of the digital clock and is optimal enough
for all vbus ranges. Running the smb in the non harmonic freq range
is required for correct TDIE adc reporting.
Change-Id: Ib70d64cd72b7408474fd64df287f6404d3749764
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Add placeholders for the KGSL power limit functions if
CONFIG_QCOM_KGSL is not enabled in the kernel config.
Change-Id: Ic0dedbad15b54cd8c3eba1b0649cb23193dbc16c
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Kernel compilation warning is generated due to
these uninitialized variables access. This change
fixes them by initializing the variables.
Change-Id: Ifae04fe5e4d1b9a0c2c399a3c6746c38dea5c4cc
CRs-fixed: 2004062
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
ipa3_get_ep_mapping() is used to map an IPA client to
IPA endpoint index. The index is used as array index.
This change validates that the returned index is
within the valid range.
CRs-fixed: 2012203
Change-Id: I25df8d0c9b60a5290f2457dd2ed77f2c7e78b46f
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
PBS driver triggers the PBS event specified by the client
driver to execute the PBS RAM configuration. Enable it for
sdm660 targets.
Change-Id: I95c70295805d31506c864546b763bef8a5e7b4bf
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Updating min frequency for memlat voting from 787MHz to
1113MHz to avoid intermediate DDR frequency switching on
SDM630 target.
Change-Id: I4a66efcd3301c3662b48b11c11f83a97c6562f31
Signed-off-by: Nikhil Kumar Kansal <nkansal@codeaurora.org>