diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2015-06-02 12:12:58 -0700 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-07-01 12:16:30 -0700 |
commit | 498f09bce4dc0a2803df7fc25befbdb249074b85 (patch) | |
tree | d78831507c3554a9504c67292dd7c2a361538b34 | |
parent | 1a429fcebf365ba8f8e9cdf7a365a7ae3fe87650 (diff) | |
download | linux-498f09bce4dc0a2803df7fc25befbdb249074b85.tar.gz linux-498f09bce4dc0a2803df7fc25befbdb249074b85.tar.bz2 linux-498f09bce4dc0a2803df7fc25befbdb249074b85.zip |
soc: qcom: spm: Fix idle on THUMB2 kernels
The ifc6410 firmware always enters the kernel in ARM state from
deep idle. Use the cpu_resume_arm() wrapper instead of
cpu_resume() to property switch into the THUMB2 state when we
wake up from idle.
This fixes a problem reported by Kevin Hilman on next-20150601
where the ifc6410 fails to boot a THUMB2 kernel because the
platform's firmware always enters the kernel in ARM mode from
deep idle states.
Reported-by: Kevin Hilman <khilman@linaro.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Lina Iyer <lina.iyer@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
-rw-r--r-- | drivers/soc/qcom/spm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/soc/qcom/spm.c b/drivers/soc/qcom/spm.c index b562af816c0a..b04b05a0904e 100644 --- a/drivers/soc/qcom/spm.c +++ b/drivers/soc/qcom/spm.c @@ -260,7 +260,7 @@ static int __init qcom_cpuidle_init(struct device_node *cpu_node, int cpu) /* We have atleast one power down mode */ cpumask_clear(&mask); cpumask_set_cpu(cpu, &mask); - qcom_scm_set_warm_boot_addr(cpu_resume, &mask); + qcom_scm_set_warm_boot_addr(cpu_resume_arm, &mask); } per_cpu(qcom_idle_ops, cpu) = fns; |