To avoid any suspend during probe, we increment the device
usage counter before calling ufshcd_async_scan and decrement
before returning from ufshcd_async_scan function.
For the scenarios where ufs device initialisation fails
or if the ufs device is not present, we are decrementing
device usage counter before calling ufshcd_hba_exit.
Hence there is a possiblity that after we disable the clocks
as part of ufshcd_hba_exit call, runtime suspend may get
triggered. As part of runtime suspend, we are accessing
the register causing noc error due to unclocked access.
To fix this, we are removing pm_runtime_put_sync
from ufshcd_add_lus() and adding it in common place
at the end of ufshcd_async_scan so that we hold auto
suspend until async scan completes in both success and
failure case.
Call Stack:
panic+0x17c
panic+0x0
arm64_serror_panic+0x74
do_serror+0x15c
el1_error+0xbc
el1_irq+0xb0
crypto_qti_resume+0x68
ufshcd_crypto_qti_resume+0x18
ufshcd_crypto_resume+0x3c
ufshcd_suspend+0x5b0
ufshcd_runtime_suspend+0x44
ufshcd_pltfrm_runtime_suspend+0x14
pm_generic_runtime_suspend+0x44
__rpm_callback+0x98
rpm_suspend+0x2a4
rpm_idle+0x158
schedule+0x8c
schedule_preempt_disabled+0x24
__mutex_lock+0x358
__mutex_lock_slowpath+0x14
mutex_lock+0x34
clk_unprepare+0x58
__ufshcd_setup_clocks+0x140
ufshcd_hba_exit+0x170
ufshcd_async_scan$d36fba0b664edbd124b5d17d005db4c5+0x118
async_run_entry_fn$8847b5d726ee295ba72a029a76bec2f5+0x60
process_one_work+0x2cc
worker_thread$f31e2447a3fdcb60f4b193f95acd647c+0x278
kthread$bf1537fa370ac32bde5f056194ddafc6+0x16c
ret_from_fork+0x10.
Change-Id: I059de2b0eba642bf1a35c27e8e12d31c6f30a836
Signed-off-by: Nitin Rawat <nitirawa@codeaurora.org>
SW implementation for XO selection option for HSP
in Lahaina/LahainaPro.
Once BT_EN is asserted, pull GPIO201 high and pull it
down to low after 2ms delay to avoid leakage.
Change-Id: Ib9f6ce27a27c26a84975bcbbae1da22dedd4e1ec
Signed-off-by: Mahesh Kumar Sharma <smahesh@codeaurora.org>
Enable devfreq drivers to support memory scaling on sdxlemur.
Change-Id: Ifeb9388562fd3b1f79aa912b08467a9dc41facb7
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
This change enables CONFIG_QCOM_SHOW_RESUME_IRQ for power
analysis.
Change-Id: I5f26a88f06d91fd54118adbcba938bb4e06003e9
Signed-off-by: Tushar Nimkar <tnimkar@codeaurora.org>
For some platforms, remote wakeup capability from system suspend
is not a default requirement.
Keep system wakeup as disabled from dwc3-msm and xhci-plat.
Change-Id: Ic32af43c818f666228db5921e927f66c3554c0f4
Signed-off-by: Harsh Agarwal <harshq@codeaurora.org>
The doorbell is blocked as part of gsi_suspend, but a continuous
resume and suspend calls can cause a race where resume
handling overwrites the blocking of doorbell leading
to the controller accessing IPA doorbell after suspend.
Here are the series of events that is causing the issue.
gsi_resume
queue_work with EVT_RESUME
gsi_suspend
Block the doorbell
queue_work with EVT_SUSPEND
resume_work_handler
xdci_resume
Unblock the doorbell
suspend_work_handler
xdci_suspend
Fix this by ensuring that the doorbell is blocked
before suspend call to IPA as part of suspend handling.
Change-Id: I4d0254c88ed3bec6338d040480b5df2e3f81251e
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
If virtual address is not passed during ramdump collection,
the CMA region gets remapped during ioremap call. By passing
the virtual address in the do_ramdump_elf call, the CMA
doesn't get remapped.
Change-Id: Ice98e7947b977c5edffcbf9f3c5b0d3c6a34ef52
Acked-by: Vishnu Karthik D <vikarthi@qti.qualcomm.com>
Signed-off-by: Jeya R <jeyr@codeaurora.org>
This patch contain changes for supporting new
BT chip moselle.
Change-Id: Ib5aaa4b7dde7accf186593df93bf65e475177f1f
Signed-off-by: priyankar <prigup@codeaurora.org>