From 2fcb88c541cf98b87a38a0f27b641663aded8802 Mon Sep 17 00:00:00 2001 From: Dave Martin Date: Fri, 28 Jan 2011 17:19:26 +0000 Subject: ARM: omap3: Work around assembler errors in sleep34xx.S In rare cases, gas is unable to fix up references to global symbols in the same object when building for Thumb-2. This patch provides a dirty temporary workaround and shouldn't be merged upstream. The issue affects at least ubuntu/linaro binutils (2.20.51.20100908-0ubuntu2) and binutils upstream. Allegedly, there's a fix in the pipeline. Signed-off-by: Dave Martin --- arch/arm/mach-omap2/sleep34xx.S | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S index 0ed57ab358b..6147088e6bc 100644 --- a/arch/arm/mach-omap2/sleep34xx.S +++ b/arch/arm/mach-omap2/sleep34xx.S @@ -373,9 +373,9 @@ restore_es3: and r4, r4, #0x3 cmp r4, #0x0 @ Check if previous power state of CORE is OFF bne restore - adr r0, es3_sdrc_fix + adr r0, _es3_sdrc_fix ldr r1, sram_base - ldr r2, es3_sdrc_fix_sz + ldr r2, _es3_sdrc_fix_sz mov r2, r2, ror #2 copy_to_sram: ldmia r0!, {r3} @ val = *src @@ -636,6 +636,8 @@ usettbr0: /* This function implements the erratum ID i443 WA, applies to 34xx >= ES3.0 */ .text .align 3 +.type _es3_sdrc_fix, %function +_es3_sdrc_fix: ENTRY(es3_sdrc_fix) ldr r4, sdrc_syscfg @ get config addr ldr r5, [r4] @ get value @@ -679,6 +681,7 @@ sdrc_emr2_1: sdrc_manual_1: .word SDRC_MANUAL_1_P ENDPROC(es3_sdrc_fix) +_es3_sdrc_fix_sz: ENTRY(es3_sdrc_fix_sz) .word . - es3_sdrc_fix -- cgit v1.2.3