1. 02 7月, 2011 1 次提交
    • R
      ARM: pm: allow suspend finisher to return error codes · 29cb3cd2
      Russell King 提交于
      There are SoCs where attempting to enter a low power state is ignored,
      and the CPU continues executing instructions with all state preserved.
      It is over-complex at that point to disable the MMU just to call the
      resume path.
      
      Instead, allow the suspend finisher to return error codes to abort
      suspend in this circumstance, where the cpu_suspend internals will then
      unwind the saved state on the stack.  Also omit the tlb flush as no
      changes to the page tables will have happened.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      29cb3cd2
  2. 30 6月, 2011 2 次提交
    • R
      ARM: pm: omap3: move saving of the auxiliary control registers to C · cbe26349
      Russell King 提交于
      Move the saving of the auxiliary control registers into C; there's
      no need for this to be in assembly code.  This results in less
      assembly code to deal with in OMAP.
      
      Kevin tested full-chip retention and off on 3430/n900, 3530/Overo and
      3630/Zoom3.
      Tested-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      cbe26349
    • J
      ARM: pm: omap3: run the ASM sleep code from DDR · 46e130d2
      Jean Pihet 提交于
      Most of the ASM sleep code (in arch/arm/mach-omap2/sleep34xx.S)
      is copied to internal SRAM at boot and after wake-up from CORE OFF
      mode.  However only a small part of the code really needs to run from
      internal SRAM.
      
      This fix lets most of the ASM idle code run from the DDR in order to
      minimize the SRAM usage and the overhead in the code copy.
      
      The only pieces of code that are mandatory in SRAM are:
      - the i443 erratum WA,
      - the i581 erratum WA,
      - the security extension code.
      
      SRAM usage:
      - original code:
        . 560 bytes for omap3_sram_configure_core_dpll (used by DVFS),
        . 852 bytes for omap_sram_idle (used by suspend/resume in RETention),
        . 124 bytes for es3_sdrc_fix (used by suspend/resume in OFF mode on ES3.x),
        . 108 bytes for save_secure_ram_context (used on HS parts only).
      
      With this fix the usage for suspend/resume in RETention goes down 288
      bytes, so the gain in SRAM usage for suspend/resume is 564 bytes.
      
      Also fixed the SRAM initialization sequence to avoid an unnecessary
      copy to SRAM at boot time and for readability.
      
      Tested on Beagleboard (ES2.x) in idle with full RET and OFF modes.
      
      Kevin Hilman tested retention and off on 3430/n900, 3530/Overo and
      3630/Zoom3
      Signed-off-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      46e130d2
  3. 24 6月, 2011 27 次提交
  4. 21 6月, 2011 3 次提交
  5. 17 6月, 2011 3 次提交
    • D
      ARM: 6963/1: Thumb-2: Relax relocation requirements for non-function symbols · 9a00318e
      Dave Martin 提交于
      The "Thumb bit" of a symbol is only really meaningful for function
      symbols (STT_FUNC).
      
      However, sometimes a branch is relocated against a non-function
      symbol; for example, PC-relative branches to anonymous assembler
      local symbols are typically fixed up against the start-of-section
      symbol, which is not a function symbol.  Some inline assembler
      generates references of this type, such as fixup code generated by
      macros in <asm/uaccess.h>.
      
      The existing relocation code for R_ARM_THM_CALL/R_ARM_THM_JUMP24
      interprets this case as an error, because the target symbol appears
      to be an ARM symbol; but this is really not the case, since the
      target symbol is just a base in these cases.  The addend defines
      the precise offset to the target location, but since the addend is
      encoded in a non-interworking Thumb branch instruction, there is no
      explicit Thumb bit in the addend.  Because these instructions never
      interwork, the implied Thumb bit in the addend is 1, and the
      destination is Thumb by definition.
      
      This patch removes the extraneous Thumb bit check for non-function
      symbols, enabling modules containing the affected relocation types
      to be loaded.  No modification to the actual relocation code is
      required, since this code does not take bit[0] of the
      location->destination offset into account in any case.
      
      Function symbols are always checked for interworking conflicts, as
      before.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      9a00318e
    • L
      ARM: 6962/1: mach-h720x: fix build error · 343fda59
      Linus Walleij 提交于
      The h7201/h7202 machines did not build since they define
      ARM_DMA_ZONE_OFFSET but do not select ZONE_DMA. Fix it up by
      selecting ZONE_DMA in their Kconfig.
      
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      343fda59
    • M
      ARM: 6959/1: SMP build fix for entry-macro-multi.S · 2bc58a6f
      Magnus Damm 提交于
      The assembly code in entry-macro-multi.S does not build without
      the include asm/assembler.h in the case of CONFIG_SMP=y.
      
      Fixes the rather theoretical SMP build of mach-shmobile/entry-intc.c:
      
      arch/arm/include/asm/entry-macro-multi.S: Assembler messages:
      arch/arm/include/asm/entry-macro-multi.S:20: Error: bad instruction `alt_smp(test_for_ipi r0,r6,r5,lr)'
      arch/arm/include/asm/entry-macro-multi.S:20: Error: bad instruction `alt_up_b(9997f)'
      make[1]: *** [arch/arm/mach-shmobile/entry-intc.o] Error 1
      make: *** [arch/arm/mach-shmobile] Error 2
      make: *** Waiting for unfinished jobs....
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      2bc58a6f
  6. 16 6月, 2011 4 次提交