1. 29 4月, 2013 1 次提交
  2. 19 4月, 2013 3 次提交
  3. 30 3月, 2013 2 次提交
  4. 12 3月, 2013 6 次提交
    • S
      ARM: tegra: fix ignored return value of regulator_enable · 84b808da
      Stephen Warren 提交于
      This fixes:
      
      arch/arm/mach-tegra/board-harmony-pcie.c: In function ‘harmony_pcie_init’:
      arch/arm/mach-tegra/board-harmony-pcie.c:65:18: warning: ignoring return
          value of ‘regulator_enable’, declared with attribute
          warn_unused_result [-Wunused-result]
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      84b808da
    • J
      ARM: tegra: fix the logical detection of power on sequence of warm boot CPUs · 2be8951e
      Joseph Lo 提交于
      The warm boot sequence of Tegra30 secondary CPUs should wait for the
      power ready then removing the clamps.
      
      This did not fix any known or unknown issue, but nice to have this fix.
      Signed-off-by: NJoseph Lo <josephl@nvidia.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      2be8951e
    • H
      ARM: tegra: Fix unchecked return value · b4c25cc3
      Hiroshi Doyu 提交于
      Check a return value for tegra_powergate_remove_clamping().
      Signed-off-by: NHiroshi Doyu <hdoyu@nvidia.com>
      Signed-off-by: NJoseph Lo <josephl@nvidia.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      b4c25cc3
    • J
      ARM: tegra: don't unlock MMIO access to DBGLAR · b095ae2b
      Joseph Lo 提交于
      There is no need to unlock MMIO access to the DBGLAR all the time. Doing
      so may even cause problems if a SW bug causes writes to that MMIO region.
      
      Cortex-A15 processors do not support the CP14 register write the code
      currently uses to unlock the DBGLAR; the instruction throws an undefined
      instruction exceptions. This prevents tegra_secondary_startup() from
      executing on Tegra114, and hence prevents SMP.
      
      Remove the code that unlocks this access.
      Signed-off-by: NJoseph Lo <josephl@nvidia.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      b095ae2b
    • S
      ARM: tegra: remove save/restore of CPU diag register · 02e75d64
      Stephen Warren 提交于
      Prior to this change, {save,restore}_cpu_arch_register() collaborated to
      maintain the value of the CPU diagnostic register across power cycles.
      This was required to maintain any CPU errata workaround enable bits in
      that register. However, now that the Tegra reset vector code always
      enables all required workarounds, there is no need to save and restore
      the diagnostic register; it is always explicitly programmed in the
      required manner.
      
      Hence, remove the save/restore logic.
      
      This has the advantage that the kernel always directly controls the value
      of this register every boot, rather than relying on a bootloader or other
      kernel code having previously written the correct value into it. This
      makes CPU0 (which was previously saved/restored) and CPUn (which should
      have been set up by the reset vector) be controlled in exactly the same
      way, which is easier to debug/find/...
      
      In particular, when converting Tegra to a multi-platform kernel, the CPU0
      diagnostic register value initially comes from the bootloader. Most Tegra
      bootloaders don't yet enable all required CPU bug workarounds. The
      previous commit updates the kernel to do so on any CPU power cycle.
      However, the save/restore code ends up over-writing the value with the
      old bootloader-driven value instead of the now more-likely-to-be-correct
      kernel value!
      
      Even irrespective of multi-platform conversion, this change limits the
      kernel's exposure to any WARs the bootloader didn't enable for CPU0: on
      the very first LP2 transition (CPU power-saving which power-cycles the
      CPU), the correct value will be enabled.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      02e75d64
    • S
      ARM: tegra: add CPU errata WARs to Tegra reset handler · c34f30e5
      Stephen Warren 提交于
      The CPU cores in Tegra contain some errata. Workarounds must be applied
      for these every time a CPU boots. Implement those workarounds directly
      in the Tegra-specific CPU reset vector.
      
      Many of these workarounds duplicate code in the core ARM kernel.
      
      However, the core ARM kernel cannot enable those workarounds when
      building a multi-platform kernel, since they require writing to secure-
      only registers, and a multi-platform kernel often does not run in secure
      mode, and also cannot generically/architecturally detect whether it is
      running in secure mode, and hence cannot either unconditionally or
      conditionally apply these workarounds.
      
      Instead, the workarounds must be applied in architecture-specific reset
      code, which is able to have more direct knowledge of the secure/normal
      state. On Tegra, we will be able to detect this using a non-architected
      register in the future, although we currently assume the kernel runs only
      in secure mode. Other SoCs may never run the kernel in secure mode, and
      hence always rely on a secure monitor to enable the workarounds, and
      hence never implement them in the kernel.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      c34f30e5
  5. 12 2月, 2013 1 次提交
  6. 10 2月, 2013 3 次提交
  7. 06 2月, 2013 2 次提交
  8. 02 2月, 2013 2 次提交
  9. 30 1月, 2013 2 次提交
  10. 29 1月, 2013 18 次提交