1. 02 Jul, 2011 1 commit
    • Russell King's avatar
      ARM: pm: allow suspend finisher to return error codes · 29cb3cd2
      Russell King authored
      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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      29cb3cd2
  2. 30 Jun, 2011 1 commit
  3. 29 Jun, 2011 1 commit
    • Jean Pihet's avatar
      ARM: pm: omap3: run the ASM sleep code from DDR · 46e130d2
      Jean Pihet authored
      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: default avatarJean Pihet <j-pihet@ti.com>
      Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
      Tested-by: default avatarKevin Hilman <khilman@ti.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      46e130d2
  4. 24 Jun, 2011 27 commits
  5. 21 Jun, 2011 3 commits
  6. 17 Jun, 2011 4 commits
    • Dave Martin's avatar
      ARM: 6963/1: Thumb-2: Relax relocation requirements for non-function symbols · 9a00318e
      Dave Martin authored
      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: default avatarDave Martin <dave.martin@linaro.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      9a00318e
    • Linus Walleij's avatar
      ARM: 6962/1: mach-h720x: fix build error · 343fda59
      Linus Walleij authored
      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: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      343fda59
    • Magnus Damm's avatar
      ARM: 6959/1: SMP build fix for entry-macro-multi.S · 2bc58a6f
      Magnus Damm authored
      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: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      2bc58a6f
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · eb96c925
      Linus Torvalds authored
      * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
        drm/radeon/kms: use helper functions for fence read/write
        drm/radeon/kms: set DP link config properly for DP bridges
        drm/radeon/kms/atom: AdjustPixelClock fixes for DP bridges
        drm/radeon/kms: fix handling of DP to LVDS bridges
        drm/radeon/kms: issue blank/unblank commands for ext encoders
        drm/radeon/kms: fix support for DDC on dp bridges
        drm/radeon/kms: add support for load detection on dp bridges
        drm/radeon/kms: add missing external encoder action
        drm/radeon/kms: rework atombios_get_encoder_mode()
        drm/radeon/kms: fix num crtcs for Cedar and Caicos
        Revert "drm/i915: Enable GMBUS for post-gen2 chipsets"
        drivers/gpu/drm: use printk_ratelimited instead of printk_ratelimit
        drm/radeon: workaround a hw bug on some radeon chipsets with all-0 EDIDs.
        drm: make debug levels match in edid failure code.
        drm/radeon/kms: clear wb memory by default
        drm/radeon/kms: be more pedantic about the g5 quirk (v2)
        drm/radeon/kms: signed fix for evergreen thermal
        drm: populate irq_by_busid-member for pci
      eb96c925
  7. 16 Jun, 2011 3 commits