1. 27 11月, 2014 1 次提交
    • M
      ARM: tegra: irq: fix buggy usage of irq_data irq field · 9a343b9e
      Marc Zyngier 提交于
      The crazy gic_arch_extn thing that Tegra uses contains multiple
      references to the irq field in struct irq_data, and uses this
      to directly poke hardware register.
      
      But irq is the *virtual* irq number, something that has nothing
      to do with the actual HW irq (stored in the hwirq field). And once
      we put the stacked domain code in action, the whole thing explodes,
      as these two values are *very* different:
      
      root@bacon-fat:~# cat /proc/interrupts
                  CPU0       CPU1
       16:      25801       2075       GIC  29  twd
       17:          0          0       GIC  73  timer0
      112:          0          0      GPIO  58  c8000600.sdhci cd
      123:          0          0      GPIO  69  c8000200.sdhci cd
      279:       1126          0       GIC 122  serial
      281:          0          0       GIC  70  7000c000.i2c
      282:          0          0       GIC 116  7000c400.i2c
      283:          0          0       GIC 124  7000c500.i2c
      284:        300          0       GIC  85  7000d000.i2c
      [...]
      
      Just replacing all instances of irq with hwirq fixes the issue.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      9a343b9e
  2. 17 7月, 2014 1 次提交
  3. 20 7月, 2013 1 次提交
    • J
      ARM: tegra114: Reprogram GIC CPU interface to bypass IRQ on CPU PM entry · 7e8b15db
      Joseph Lo 提交于
      There is a difference between GICv1 and v2 when CPU in power management
      mode (aka CPU power down on Tegra). For GICv1, IRQ/FIQ interrupt lines
      going to CPU are same lines which are also used for wake-interrupt.
      Therefore, we cannot disable the GIC CPU interface if we need to use same
      interrupts for CPU wake purpose. This creates a race condition for CPU
      power off entry. Also, in GICv1, disabling GICv1 CPU interface puts GICv1
      into bypass mode such that incoming legacy IRQ/FIQ are sent to CPU, which
      means disabling GIC CPU interface doesn't really disable IRQ/FIQ to CPU.
      
      GICv2 provides a wake IRQ/FIQ (for wake-event purpose), which are not
      disabled by GIC CPU interface. This is done by adding a bypass override
      capability when the interrupts are disabled at the CPU interface. To
      support this, there are four bits about IRQ/FIQ BypassDisable in CPU
      interface Control Register. When the IRQ/FIQ not being driver by the
      CPU interface, each interrupt output signal can be deasserted rather
      than being driven by the legacy interrupt input.
      
      So the wake-event can be used as wakeup signals to SoC (system power
      controller).
      
      To prevent race conditions and ensure proper interrupt routing on
      Cortex-A15 CPUs when they are power-gated, add a CPU PM notifier
      call-back to reprogram the GIC CPU interface on PM entry. The
      GIC CPU interface will be reset back to its normal state by
      the common GIC CPU PM exit callback when the CPU wakes up.
      
      Based on the work by: Scott Williams <scwilliams@nvidia.com>
      Signed-off-by: NJoseph Lo <josephl@nvidia.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      7e8b15db
  4. 04 4月, 2013 1 次提交
  5. 29 1月, 2013 1 次提交
    • J
      ARM: tegra: add pending SGI checking API · d4b92fb2
      Joseph Lo 提交于
      The "powered-down" CPU idle mode of Tegra cut off the vdd_cpu rail, it
      include the power of GIC. That caused the SGI (Software Generated
      Interrupt) been lost. Because the SGI can't wake up the CPU that in
      the "powered-down" CPU idle mode. We need to check if there is any
      pending SGI when go into "powered-down" CPU idle mode. This is important
      especially when applying the coupled cpuidle framework into "power-down"
      cpuidle dirver. Because the coupled cpuidle framework may have the
      chance that misses IPI_SINGLE_FUNC handling sometimes.
      
      For the PPI or SPI, something like the legacy peripheral interrupt. It
      still can be maintained by Tegra legacy interrupt controller. If there
      is any pending PPI or SPI when CPU in "powered-down" CPU idle mode. The
      CPU can be woken up immediately. So we don't need to take care the same
      situation for PPI or SPI.
      Signed-off-by: NJoseph Lo <josephl@nvidia.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      d4b92fb2
  6. 13 1月, 2013 1 次提交
    • R
      irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h · 520f7bd7
      Rob Herring 提交于
      Now that we have GIC moved to drivers/irqchip and all GIC DT init for
      platforms using irqchip_init, move gic.h and update the remaining
      includes.
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Anton Vorontsov <avorontsov@mvista.com>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Sascha Hauer <kernel@pengutronix.de>
      Cc: David Brown <davidb@codeaurora.org>
      Cc: Daniel Walker <dwalker@fifo99.com>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Magnus Damm <magnus.damm@gmail.com>
      Cc: Viresh Kumar <viresh.linux@gmail.com>
      Cc: Shiraz Hashim <shiraz.hashim@st.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      520f7bd7
  7. 06 11月, 2012 1 次提交
    • S
      ARM: tegra: move iomap.h to mach-tegra · 2be39c07
      Stephen Warren 提交于
      Nothing outside mach-tegra uses this file, so there's no need for it to
      be in <mach/>.
      
      Since uncompress.h and debug-macro.S remain in include/mach, they need
      to include "../../iomap.h" becaue of this change. uncompress.h will soon
      be deleted in later multi-platform/single-zImage patches. debug-macro.S
      will need to continue to include this header using an explicit relative
      path, to avoid duplicating the physical->virtual address mapping that
      iomap.h dictates.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      2be39c07
  8. 07 2月, 2012 1 次提交
  9. 08 12月, 2011 2 次提交
  10. 11 5月, 2011 4 次提交
  11. 29 3月, 2011 2 次提交
  12. 10 2月, 2011 3 次提交
  13. 27 1月, 2011 1 次提交
  14. 14 1月, 2011 1 次提交
  15. 15 12月, 2010 1 次提交
  16. 22 10月, 2010 1 次提交
  17. 06 8月, 2010 2 次提交
  18. 07 8月, 2008 1 次提交
  19. 26 1月, 2008 1 次提交