Defer mhi resume till M0 ack is notified to host.
This is to ensure no outstanding transfer completion events are
send to host before M0 ack.
Change-Id: Ia10fabc554b1cdef14a0771012b9ffea68851e25
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
When qdss open and close are called back to back at a high rate,
connect_work that gets queued in qdss open can execute after
qdss close. For qdss HW path the connect work that gets scheduled
as part of the next qdss open results in ep config failure as the
ep is already configured during previous connect work. Now before
queuing the request if there is a qdss close it would reset the dbm
ep configuration thus routing this request via software path instead
of dbm path. The subsequent dequeue would lead to a NULL pointer
dereference of completion callback. Fix this by flushing connect_work
as part of qdss close for graceful termination.
Change-Id: I8edf73ea1f87e297297828e6e25c7c14a422ec3a
Signed-off-by: Elson Roy Serrao <eserrao@codeaurora.org>
Use unshifted value to set the clock req override value
and enable fields as the register write function already
shifts the values to the correct position.
Change-Id: I0b5dea0f6f8462363471910ffe93f8f8975e7929
Signed-off-by: Siva Kumar Akkireddi <sivaa@codeaurora.org>
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
During D3hot, we are explicitly blocking L1 state by setting
REQ_EXIT_L1 bit of PM_CTRL register. If we transitioning back to D0
from D3 (without D3cold), REQ_EXIT_L1 bit won't get cleared. And
L1 would get blocked till next D3cold. Clear this explicitly during
D0 to avoid this scenario.
Change-Id: Ib168dee255f29832600ebca14eea1ac2ea393985
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Change the clk_regmap_div_ro ops to clk_regmap_div ops to
allow dynamic configuration of the cdivs. This is required
for cphy configuration where the byte intf clock need to be
the same frequency as its byte clock.
Change-Id: Iddf733697b7287577f690bd5535a60f406b7129a
Signed-off-by: BIVASH KUMAR SINGH <bkumarsi@codeaurora.org>
This mem_lock will cause deadlock when usb close router call back to
usb_notifier. so remove it.
Change-Id: I9530c843702ca605f6935cc0ac6d9649bf204594
Signed-off-by: Yuanfang Zhang <zhangyuanfang@codeaurora.org>
Allow IOSS Shim layer to be dynamically loaded as a kernel module.
Change-Id: Iac293adfb29954b12253b1ee08f64077606091cc
Signed-off-by: Manuel Gomez <gomez@codeaurora.org>
Currently we are not initializing cb_num for secure context.
This is causing problems in the kgsl fault handler path when
there is a pagefault for secure context. Hence initialize cb_num
for secure context.
Change-Id: I35a37193f512f315f443e9f0d92fdae11411bbd2
Signed-off-by: Harshitha Sai Neelati <hsaineel@codeaurora.org>
rpmh_rsc_debug() can race with tcs_tx_done() interrupt handler and
may not see any tcs busy and hence won't do bug_on(). Later it may
go ahead and free() the request which interrupt handler is processing.
Lets always bug_on() upon timeout.
Change-Id: I238a6a3639077850df158cb1f0190656e014bb57
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
Add check for maximum thermal state while setting
current state.
Change-Id: I4ade853d0cda1d8754486dc6dd8f53596fae7a9a
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
This change is to avoid potential race btw stop rx and incoming
SOC RX data in parallel. During suspend path wait_for_transfers_inflight()
logic will check for TX/RX data pending for completion. Check for RX_LEN_IN
status in wait_for_transfers_inflight() and return -EBUSY to avoid race
between stop_rx and SOC RX data.
Change-Id: I28702d3dc11ee4b6d3fe5b4bad9a19099d8cf725
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
L23_READY bit in the PARF_PM_CTRL register is set coming
out of PBL. Clear it once PCIe enumerates. This will avoid
the corner case where L23_READY is sent to the host causing
the link to be disable before the EP PCIe driver has had a
chance to disable the endpoint cleanly.
Change-Id: I2159cf88c4ec5f2b38b7134e42c6a069a9738d6c
Signed-off-by: Gauri Joshi <gaurjosh@codeaurora.org>
Update the TZ version to include the latest diag version
when choosing to use enlarged buffers.
Change-Id: Icd285c171957d0ddf6d4e9980bae33fa7b5eb9ec
Signed-off-by: Gaurav Kashyap <gaurkash@codeaurora.org>
After BCR reset while reconfiguring the SDHC registers
Interrupt Signal Enable Register does not reflect the value
and so it fails initialization of eMMC. As per design constraint
it requires 200us delay after BCR reset.
Change-Id: I99eca34e02a1b2557dca3b3da5a0cbeb32b7aff5
Signed-off-by: Maramaina Naresh <mnaresh@codeaurora.org>
This change updates gpio to pdc mapping for sdxlemur.
Change-Id: I0149b3cc798815693a7999335444419b1d896444
Signed-off-by: Tushar Nimkar <tnimkar@codeaurora.org>
Currently as part of mmc suspend and resume, we are using
different api's to check support for cmd5 (sleep/awake),
which results in suspend sending cmd5 for sleep, while
in resume it's always going for full init instead of sending
cmd5 for awake. Fix this by using same api in both suspend
and resume paths so that partial init functionality is
actually utilized.
Change-Id: Ia84b7790fe00f1f24a63d6dc509646ebcbd4d3ef
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Avoid calling ASSERT from select_window API when it called
from panic handler. As device is already crashed, calling
ASSERT will just add unwanted prints and dump stacks.
Change-Id: If38be6d8e452c49cabfa059b4bf12b2f8a3c60a2
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
PSI accounts stalls for each cgroup separately and aggregates it at each
level of the hierarchy. This causes additional overhead with psi_avgs_work
being called for each cgroup in the hierarchy. psi_avgs_work has been
highly optimized, however on systems with large number of cgroups the
overhead becomes noticeable.
Systems which use PSI only at the system level could avoid this overhead
if PSI can be configured to skip per-cgroup stall accounting.
Add "cgroup_disable=pressure" kernel command-line option to allow
requesting system-wide only pressure stall accounting. When set, it
keeps system-wide accounting under /proc/pressure/ but skips accounting
for individual cgroups and does not expose PSI nodes in cgroup hierarchy.
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/patchwork/patch/1435705
(cherry picked from commit 3958e2d0c34e18c41b60dc01832bd670a59ef70f
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git tj).
Bug: 178872719
Bug: 191734423
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ifc8fbc52f9a1131d7c2668edbb44c525c76c3360
Git-commit: 51d71fb0b369ebb739658bf6555e8a01c6073e98
Git-repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
The ep_disable functions uses pm_runtime_get_sync &
pm_runtime_put_sync_autosuspend to manage the dev & sysdev,
however doing auto suspend in sync context might lead to
errors on runtime framework due to the ASYNC flag not set.
When this happens, the runtime framework triggers
__might_sleep which in turn leads to a kernel panic.
Fix this by performing pm_runtime_put_autosuspend instead
of doing sync. This will set the ASYNC flag and will not go
for might_sleep check.
Change-Id: I9cff7738def5fac94d11e7648efc3602b9fe3ea6
Signed-off-by: Udipto Goswami <ugoswami@codeaurora.org>
Signed-off-by: Rohith Kollalsi <rkollals@codeaurora.org>
Add support for reading ADC channels on a PMIC7 ADC directly from
the ADC_PBS peripheral on that PMIC instead of through PMK8350
ADC peripheral using PBS, for targets where PMK8350 does not run in
master mode.
The conversion request sequence for using ADC_PBS is similar to
the existing one for ADC7, with some differences in register
writes. In addition, SW now performs calibration in place of PBS,
for every conversion, by reading the three calibration channels,
calculating the reference values and entering them in the
calibration registers.
Change-Id: I9e47ed69e75ee2580a37195ea9063f24ffb8aac5
Signed-off-by: Jishnu Prakash <jprakash@codeaurora.org>
Charger detection can be iio based or psy based or ADSP based. In case
of psy based charger detection POWER_SUPPLY_USB_TYPE_CDP enum is
returned, while in case of iio based charger detection
POWER_SUPPLY_TYPE_USB_CDP enum is returned for cdp detection. Current
case is handling only psy based charger detection i.e driving a pulse
on DP for cdp detection is happening only for psy based charger
detection ensuring proper CDP detection, while failure is seen in
case of iio based cdp charger detection. Hence add support to check
appropriate enum for iio based charger detection as well. To add more
info for ADSP based charger detection driving of dp pulse will be
taken care by adsp.
Change-Id: I991a44efb77542b21fbfce14ab98ffad3f102edb
Signed-off-by: Rohith Kollalsi <rkollals@codeaurora.org>
Currently driver is seting UART error code to default only when
BT host calling TIOCFAULT crash ioctl.
This change is to reset UART error code to default during shutdown
so that it will helps in passing correct UART error code from UART driver
from next session.
Change-Id: I2a073634699d54e905ca3970392563f7d8130640
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>