Dropped messages to AOP are generally fatal. The general rule of thumb
is to let clients decide whether the dropped message is fatal.
There have been some cases where there are messages sent to AOP as
part of the device shutdown, effectively overwriting the error state.
Add an assert to when QMP detects timeout so the error state on AOP
is preserved.
Change-Id: I5eaf42a76b1298246351ec9d66fe32e7308233bd
Signed-off-by: Jay Jayanna <jayanna@codeaurora.org>
There is a possibility of cx gdsc off timeout when stall on fault
is enabled. smmu fault handler is blocked on device mutex to keep
cx vote and dispatcher trying to turn it off for recovery. To avoid
this race condition, return from fault handler when there is contention
for device mutex.
Change-Id: Ia895152f8cf1ce9bdcfecf256558ba291dabc978
Signed-off-by: gkiranku <gkiranku@codeaurora.org>
Avoid using fastrpc ctx after sending rpmsg since it may get
free during async session. During async fastrpc session there
is race condition where after sending rpmsg the ctx could be
free from async query thread.
Change-Id: I5738163096e429f19bd9b495699a1897083737b3
Signed-off-by: Edgar Flores <edgarf@codeaurora.org>
Change adds kernel_restart to qcom KMI symbol list and updates
the ABI snapshot, as it is used by spss_utils driver.
Change-Id: Iedb73f0aeb092989461078cc403695e24fbe8146
Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Bail out if device returns invalid bhi/bhie offsets.
Change-Id: Ifc92c53a4c1f7c951721cbec0b1d7285cf19cd72
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
It can be used by MHI core to have a sanity check for
bhi and bhie offsets reported by device.
Change-Id: Ibcdef53a4c1f7c951721cbec0b1d7285cf19cd72
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
If mhi_get_exec_env API returns MHI_EE_MAX skip RDDM download.
API returns this value if BHI offset read failed or BHI_EXECENV
register read fails. This indicates the underlying transport is
unresponsive so there is no need to trigger RDDM using SYSERR
or request SOC reset.
Change-Id: I0cc85af84f19b425c94fe8aea987ab03af6de032
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
In case power up failed due to incorrect bhi offset
bhi pointer in mhi controller remains NULL. Later if
MHI controller forces RDDM it checks the execution
environment by accessing the BHI offset. This results
into NULL pointer dereference. Fix this by adding NULL
check for both mhi controller and bhi pointer before
reading the BHI offset.
Change-Id: I93f8918d7d595a77a5c8bcb6fd610f1a2b484fc4
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This change is for general scheduler improvement.
Change-Id: I5e27121c3625d21d0a5abedcda9bcbfc947f5359
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Set the bhi and bhie pointers to NULL as part of clean
up. This makes sure that stale pointers are not accessed
in case the bhi or bhie is failed to initialize during
power up.
Change-Id: Iddbd3a8234ff4d384ab03081479d55faf10d9443
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Collects data from SMEM region when modem crashes
and stores it under /dev to expose to user space.
Change-Id: I6b79a2ea7f7d9d7507e8c44dd1d385a185759ac1
Signed-off-by: Shawn Shin <shshin@codeaurora.org>
Enable RCU NOCB_CPU and FAST_NO_HZ options for the lahaina. These configs
are needed to avoid frequent cpu wake up for processing rcu callbacks.
Whenever LPM governor driver has requested for sleep length
tick_nohz_get_sleep_length tries to find the next event from
tick_nohz_next_event function.
static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
{
...
if (rcu_needs_cpu(basemono, &next_rcu) || arch_needs_cpu() ||
irq_work_needs_cpu() || local_timer_softirq_pending()) {
next_tick = basemono + TICK_NSEC;
} else {
tick_nohz_next_event calls rcu_needs_cpu to find whether future
non-offloaded RCU-related work need to be done by the current CPU
or not. If any non-offloaded future callbacks are present rcu
framework requests the cpu to wake up for every tick period to
process the callbacks.
When CONFIG_FAST_NO_HZ is defined rcu_needs_cpu function checks whether
any callbacks are ready to process or not. If there are no ready
call backs and no non-offloaded callbacks pending for this CPU, RCU
doesn't need the CPU and returns KTIME_MAX for sleep length. Another
important thing is that, if CPU has lazy callbacks or future non-offload
RCU callbacks, rcu framework try to advance those callbacks and allows
the CPU to enter dyntick-idle mode.
RCU_NOCB_CPU config option helps to offload callback invocation from
the set of CPUs to kthread ("rcuox/N") and reduce OS jitter for
aggressive high performance computing workloads.
Change-Id: I47cdd2a3528e3a447a6909bf3f840ee8a3dd4b1e
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Some registers only exist on A660, add logic to capture
these into the snapshot.
Change-Id: I21bef72768cdb9597906ae9996c8988de1a00f7f
Signed-off-by: Urvashi Agrawal <urvaagra@codeaurora.org>
This adds the quirk to increase the hibern8 timeout
on the host.
Change-Id: I716124224d67942e257e17e7482ce9f32b8a5744
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
The thermal zone ops pointer is allocated and initialized during
building thermal zone at early boot. The framework expects this
variable is valid as long as that thermal zone exist. Later if
a sensor is registered to thermal zone and then unregistered the
same due to some reason, it resets this thermal zone ops variable.
It leads to unexpected behaviour whenever thermal framework tries
to use it.
Don't reset thermal zone ops variable during of-thermal sensor
unregister context.
Change-Id: I468cdfe08f4cde3fb1258ca335fe2ee8b457e014
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>