1. 05 7月, 2014 1 次提交
  2. 04 7月, 2014 4 次提交
  3. 01 7月, 2014 3 次提交
    • T
      ARM: mvebu: fix cpuidle implementation to work on big-endian systems · 6509dc74
      Thomas Petazzoni 提交于
      On Marvell Armada XP, when a CPU comes back from deep idle state of
      cpuidle, it restarts its execution at armada_370_xp_cpu_resume(),
      which puts back the CPU into the coherency, and then calls the generic
      cpu_resume() function.
      
      While this works on little-endian configurations, it doesn't work on
      big-endian configurations because the CPU restarts in little-endian,
      and therefore must be switched back to big-endian to operate
      properly. To achieve this, a 'setend be' instruction must be executed
      in big-endian configurations. However, the ARM_BE8() macro that is
      used to implement nice compile-time conditional for ARM LE vs. ARM BE8
      is not easily usable in inline assembly.
      
      Therefore, this patch moves the armada_370_xp_cpu_resume() C function,
      which was anyway just a block of inline assembly, into a proper
      pmsu_ll.S file, and adds the appropriate ARM_BE8(setend be)
      instruction.
      
      Without this patch, an Armada XP big endian configuration with cpuidle
      enabled fails to boot, as it hangs as soon as one of the CPU hits the
      deep idle state.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Link: https://lkml.kernel.org/r/1404130165-3593-1-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: NJason Cooper <jason@lakedaemon.net>
      6509dc74
    • T
      ARM: mvebu: update L2/PCIe deadlock workaround after L2CC cleanup · 01178890
      Thomas Petazzoni 提交于
      Commit 497a9230 ("ARM: mvebu:
      implement L2/PCIe deadlock workaround") introduced some logic in
      coherency.c to adjust the PL310 cache controller Device Tree node of
      Armada 375 and Armada 38x platform to include the 'arm,io-coherent'
      property if the system is running with hardware I/O coherency enabled.
      
      However, with the L2CC driver cleanup done by Russell King, the
      initialization of the L2CC driver has been moved earlier, and is now
      part of the init_IRQ() ARM function in
      arch/arm/kernel/irq.c. Therefore, calling coherency_init() in
      ->init_time() is now too late, as the Device Tree property gets added
      too late (after the L2CC driver has been initialized).
      
      In order to fix this, this commit removes the ->init_time() callback
      use in board-v7.c and replaces it with an ->init_irq() callback. We
      therefore no longer use the default ->init_irq() callback, but we now
      use the default ->init_time() callback.
      
      In this newly introduced ->init_irq() callback, we call irqchip_init()
      which is the default behavior when ->init_irq() isn't defined, and
      then do the initialization related to the coherency: SCU, coherency
      fabric, and mvebu-mbus (which is needed to start secondary CPUs).
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Link: https://lkml.kernel.org/r/1402585772-10405-4-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: NJason Cooper <jason@lakedaemon.net>
      01178890
    • T
      ARM: mvebu: move Armada 375 external abort logic as a quirk · 752ef800
      Thomas Petazzoni 提交于
      In preparation to a small re-organization of the initialization
      sequence in board-v7.c, this commit moves the registration of the
      custom external abort handler on Armada 375 later in the boot
      sequence, and makes it more similar to the other quirks that we
      already have. There is indeed no need to register this abort handler
      particularly early, it simply needs to be registered before switching
      to userspace.
      
      In addition to this, this commit makes the registration of the custom
      abort handler conditional on Armada 375 Z1, because Armada 375 A0 and
      later iterations are not affected by the issue.
      
      This commit was tested on both Armada 375 Z1 and Armada 375 A0
      platforms.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Link: https://lkml.kernel.org/r/1402585772-10405-3-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: NJason Cooper <jason@lakedaemon.net>
      752ef800
  4. 30 6月, 2014 1 次提交
  5. 29 6月, 2014 6 次提交
  6. 27 6月, 2014 1 次提交
    • O
      ARM: bcm: Fix bcm and multi_v7 defconfigs · bfda90cb
      Olof Johansson 提交于
      BCM (Kona/capri platform) has regressed in two ways on this release. First,
      bcm_defconfig no longer selected the appropriate MMC driver options due to
      changes in dependencies. Secondly, the new MFD and regulator drivers were not
      enabled on multi_v7_defconfig, so that caused the system to fail probing MMC
      there.
      
      Fix by enabling the new options as needed.
      
      Cc: Matt Porter <matt.porter@linaro.org>
      Cc: Christian Daudt <bcm@fixthebug.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      bfda90cb
  7. 26 6月, 2014 24 次提交