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>
Unregister glink notification handle after SSR as otherwise it results
in the link up notification to be skipped resulting in incorrectly
completing the port open notification.
Change-Id: I668de44163a702faade1f170a74f66fb5a0c5571
Signed-off-by: Sathish Ambley <sathishambley@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>