Commit Graph

7 Commits

Author SHA1 Message Date
Stephen Boyd
c2a77187de msm: scm: Mark scm_call_atomic*() return value as signed
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>
2011-12-12 13:53:16 -08:00
Abhijeet Dharmapurikar
9259fef5a7 msm: restart: call secure code to disable arbiter
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>
2011-10-04 17:14:10 -07:00
Rohit Vaswani
ece229ddc1 msm: scm: Provide empty stubs for scm functions
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>
2011-10-04 17:13:48 -07:00
Saravana Kannan
988feaf8de msm: scm: Add API to query for service/command availability.
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
2011-10-03 16:19:10 -07:00
Stephen Boyd
e2016608c6 msm: scm-io: Replace open-coded register call with SCM atomic
Instead of open-coding the SCM register calling convention, use
the SCM atomic apis.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2011-10-03 10:26:54 -07:00
Stephen Boyd
551cd96450 msm: scm: Add atomic SCM APIs
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>
2011-10-03 10:26:54 -07:00
Bryan Huntsman
3f2bc4d6eb Initial Contribution
msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142

Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
2011-10-03 09:57:10 -07:00