summaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/entry.S
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2012-03-29 15:57:18 -0400
committerChris Metcalf <cmetcalf@tilera.com>2012-04-02 12:13:29 -0400
commit8c92ba6c327ee5089dec1e92eaa82927bee63d6d (patch)
tree0604093dfc61953b629a0b0889b6549dc1797d6c /arch/tile/kernel/entry.S
parentbfffe79bc29a9c4c817d5f51590961220e26db1a (diff)
downloadlinux-8c92ba6c327ee5089dec1e92eaa82927bee63d6d.tar.gz
linux-8c92ba6c327ee5089dec1e92eaa82927bee63d6d.tar.xz
linux-8c92ba6c327ee5089dec1e92eaa82927bee63d6d.zip
arch/tile: add "nop" after "nap" to help GX idle power draw
This avoids the hardware istream prefetcher doing unnecessary work. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/kernel/entry.S')
-rw-r--r--arch/tile/kernel/entry.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/tile/kernel/entry.S b/arch/tile/kernel/entry.S
index 431e9ae60488..ec91568df880 100644
--- a/arch/tile/kernel/entry.S
+++ b/arch/tile/kernel/entry.S
@@ -85,6 +85,7 @@ STD_ENTRY(cpu_idle_on_new_stack)
/* Loop forever on a nap during SMP boot. */
STD_ENTRY(smp_nap)
nap
+ nop /* avoid provoking the icache prefetch with a jump */
j smp_nap /* we are not architecturally guaranteed not to exit nap */
jrp lr /* clue in the backtracer */
STD_ENDPROC(smp_nap)
@@ -105,5 +106,6 @@ STD_ENTRY(_cpu_idle)
.global _cpu_idle_nap
_cpu_idle_nap:
nap
+ nop /* avoid provoking the icache prefetch with a jump */
jrp lr
STD_ENDPROC(_cpu_idle)