1. 18 8月, 2014 1 次提交
    • S
      ARM: imx: fix TLB missing of IOMUXC base address during suspend · 59d05b51
      Shawn Guo 提交于
      After the suspend routine running in OCRAM puts DDR into self-refresh,
      it will access IOMUXC block to float DDR IO for power saving.  A TLB
      missing of IOMUXC base address may happen in this case, and triggers an
      access to DDR, and thus hangs the system.
      
      The failure is discovered by running suspend/resume on a Cubox-i board.
      Though the issue is not Cubox-i specific, it can be hit the on the board
      quite easily with the 3.15 or 3.16 kernel.
      
      Fix the issue with a dummy access to IOMUXC block at the beginning of
      suspend routine, so that the address translation can be filled into TLB
      before DDR is put into self-refresh.
      Signed-off-by: NShawn Guo <shawn.guo@freescale.com>
      Cc: <stable@vger.kernel.org>
      Acked-by: NAnson Huang <Anson.Huang@freescale.com>
      59d05b51
  2. 18 7月, 2014 1 次提交
    • R
      ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ · 6ebbf2ce
      Russell King 提交于
      ARMv6 and greater introduced a new instruction ("bx") which can be used
      to return from function calls.  Recent CPUs perform better when the
      "bx lr" instruction is used rather than the "mov pc, lr" instruction,
      and this sequence is strongly recommended to be used by the ARM
      architecture manual (section A.4.1.1).
      
      We provide a new macro "ret" with all its variants for the condition
      code which will resolve to the appropriate instruction.
      
      Rather than doing this piecemeal, and miss some instances, change all
      the "mov pc" instances to use the new macro, with the exception of
      the "movs" instruction and the kprobes code.  This allows us to detect
      the "mov pc, lr" case and fix it up - and also gives us the possibility
      of deploying this for other registers depending on the CPU selection.
      Reported-by: NWill Deacon <will.deacon@arm.com>
      Tested-by: Stephen Warren <swarren@nvidia.com> # Tegra Jetson TK1
      Tested-by: Robert Jarzmik <robert.jarzmik@free.fr> # mioa701_bootresume.S
      Tested-by: Andrew Lunn <andrew@lunn.ch> # Kirkwood
      Tested-by: NShawn Guo <shawn.guo@freescale.com>
      Tested-by: Tony Lindgren <tony@atomide.com> # OMAPs
      Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com> # Armada XP, 375, 385
      Acked-by: Sekhar Nori <nsekhar@ti.com> # DaVinci
      Acked-by: Christoffer Dall <christoffer.dall@linaro.org> # kvm/hyp
      Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> # PXA3xx
      Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> # Xen
      Tested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> # ARMv7M
      Tested-by: Simon Horman <horms+renesas@verge.net.au> # Shmobile
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6ebbf2ce
  3. 30 5月, 2014 1 次提交
  4. 05 3月, 2014 3 次提交