scm_call_atomic*() can return a negative 32 bit value indicating
an error. Change the function signature to indicate that this is
possible.
Change-Id: I633bb521410f9a07495ec5e73e3a8b0e9adb7af1
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
The other masters in the MSM could be accessing the pmic while
pmic has raised the reset interrupt. This might cause pmic
lockups.
Disable the pmic arbiter by calling secure code when we handle
the reset interrupt from pmic. This will disable all the ssbi
transactions to the pmic avoiding a possible lockup.
Also since we wont be lowering ps_hold for pmic initiated startups
piggy back on lower_pshold to return from the power off function
so that we can call in the secure manager as the last step.
Additionally, since we will be busy looping until the pmic resets
us, pet the watchdog.
CRs-Fixed: 306410
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Instead of making other code dependent on #ifdef
CONFIG_MSM_SCM, add empty stubs for the scm functions
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
The atomic SCM APIs are useful for commands that are guaranteed
by the secure side to be uninterruptable, atomic and SMP safe.
The calling convention use registers for passing parameters and
return values between the secure and non-secure side. Support
this interface with scm_call_atomic[1-2]() functions
corresponding to the number of arguments passed.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>