summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2016-06-17 18:32:47 +0900
committerTom Rini <trini@konsulko.com>2016-06-24 17:23:12 -0400
commitafedf5488de99925f00ead847e40d7ba0d508f0e (patch)
tree1bdf5082812967cb5b964832c3679eb685da8328 /arch
parenta2cfc8d5935efd445d9f9b258383e2a42f83ef6e (diff)
downloadu-boot-afedf5488de99925f00ead847e40d7ba0d508f0e.tar.gz
u-boot-afedf5488de99925f00ead847e40d7ba0d508f0e.tar.bz2
u-boot-afedf5488de99925f00ead847e40d7ba0d508f0e.zip
arm64: optimize smp_kick_all_cpus
gic_kick_secondary_cpus can directly return to the caller of smp_kick_all_cpus. We do not have to use x29 register here. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: York Sun <york.sun@nxp.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/cpu/armv8/start.S4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
index c1a2f456d5..670e323b61 100644
--- a/arch/arm/cpu/armv8/start.S
+++ b/arch/arm/cpu/armv8/start.S
@@ -258,12 +258,10 @@ ENDPROC(lowlevel_init)
WEAK(smp_kick_all_cpus)
/* Kick secondary cpus up by SGI 0 interrupt */
- mov x29, lr /* Save LR */
#if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
ldr x0, =GICD_BASE
- bl gic_kick_secondary_cpus
+ b gic_kick_secondary_cpus
#endif
- mov lr, x29 /* Restore LR */
ret
ENDPROC(smp_kick_all_cpus)