Skip to content

Commit

Permalink
soc: qcom: spm: Fix idle on THUMB2 kernels
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Boyd authored and Kevin Hilman committed Jul 1, 2015
1 parent 1a429fc commit 498f09b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/soc/qcom/spm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 498f09b

Please sign in to comment.