1
0
Fork 0
alistair23-linux/arch/arm/mach-tegra
Joseph Lo d4b92fb253 ARM: tegra: add pending SGI checking API
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: Joseph Lo <josephl@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-01-28 11:20:38 -07:00
..
include/mach ARM: tegra: remove legacy clock code 2013-01-28 11:19:33 -07:00
Kconfig ARM: tegra: fix Kconfig warnings when !SMP 2013-01-28 10:21:33 -07:00
Makefile ARM: tegra: remove legacy clock code 2013-01-28 11:19:33 -07:00
Makefile.boot ARM: tegra: Add Avionic Design Tamonten Evaluation Carrier support 2012-09-20 09:34:01 -06:00
apbio.c ARM: tegra: Make variables static 2013-01-28 10:21:28 -07:00
apbio.h ARM: tegra: apbio access using dma for tegra20 only 2012-07-06 11:48:56 -06:00
board-dt-tegra20.c ARM: tegra: remove USB address related macros from iomap.h 2013-01-28 11:20:04 -07:00
board-dt-tegra30.c ARM: tegra30: remove auxdata 2013-01-28 11:19:34 -07:00
board-harmony-pcie.c ARM: dt: tegra: harmony: add regulators 2012-09-14 11:31:37 -06:00
board-paz00.c Merge branch 'multiplatform/platform-data' into next/multiplatform 2012-09-22 01:07:21 -07:00
board-paz00.h ARM: tegra: remove board (but not DT) support for Paz00 2012-09-14 11:31:36 -06:00
board.h ARM: tegra: move timer.c to drivers/clocksource/ 2013-01-28 10:21:21 -07:00
common.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
common.h ARM: tegra: moving the clock gating procedure to tegra_cpu_kill 2013-01-28 10:21:48 -07:00
cpu-tegra.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
cpuidle-tegra20.c ARM: tegra: cpuidle: separate cpuidle driver for different chips 2012-11-15 15:09:20 -07:00
cpuidle-tegra30.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
cpuidle.c ARM: tegra: cpuidle: separate cpuidle driver for different chips 2012-11-15 15:09:20 -07:00
cpuidle.h ARM: tegra: cpuidle: separate cpuidle driver for different chips 2012-11-15 15:09:20 -07:00
flowctrl.c ARM: tegra: Make variables static 2013-01-28 10:21:28 -07:00
flowctrl.h ARM: tegra30: flowctrl: add cpu_suspend_exter/exit function 2012-11-15 15:09:21 -07:00
fuse.c ARM: tegra: add function to read chipid 2013-01-28 11:19:06 -07:00
fuse.h ARM: tegra: Tegra30 speedo-based process identification 2012-11-15 14:36:59 -07:00
gpio-names.h [ARM] tegra: add GPIO support 2010-08-05 14:57:02 -07:00
headsmp.S ARM: tegra: make device can run on UP 2013-01-28 11:14:06 -07:00
hotplug.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
io.c ARM: tegra: don't include iomap.h from debug-macro.S 2012-11-16 12:22:17 -07:00
iomap.h ARM: tegra: remove USB address related macros from iomap.h 2013-01-28 11:20:04 -07:00
irammap.h ARM: tegra: decouple uncompress.h and debug-macro.S 2012-11-16 12:22:17 -07:00
irq.c ARM: tegra: add pending SGI checking API 2013-01-28 11:20:38 -07:00
irq.h ARM: tegra: add pending SGI checking API 2013-01-28 11:20:38 -07:00
pcie.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
platsmp.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
pm.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
pm.h ARM: tegra: retain L2 content over CPU suspend/resume 2012-11-15 15:09:22 -07:00
pmc.c ARM: tegra: move iomap.h to mach-tegra 2012-11-05 11:36:06 -07:00
pmc.h ARM: tegra: Add a simple PMC driver 2012-02-06 18:25:01 -08:00
powergate.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
reset-handler.S ARM: tegra: make device can run on UP 2013-01-28 11:14:06 -07:00
reset.c ARM: tegra: make device can run on UP 2013-01-28 11:14:06 -07:00
reset.h ARM: tegra30: cpuidle: add powered-down state for secondary CPUs 2012-11-15 15:09:21 -07:00
sleep-tegra20.S ARM: tegra: update the cache maintenance order for CPU shutdown 2013-01-28 10:21:44 -07:00
sleep-tegra30.S ARM: tegra: update the cache maintenance order for CPU shutdown 2013-01-28 10:21:44 -07:00
sleep.S ARM: tegra: update the cache maintenance order for CPU shutdown 2013-01-28 10:21:44 -07:00
sleep.h ARM: tegra: update the cache maintenance order for CPU shutdown 2013-01-28 10:21:44 -07:00
tegra2_emc.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
tegra2_emc.h ARM: tegra: emc: convert tegra2_emc to a platform driver 2012-02-06 18:24:59 -08:00
tegra20_speedo.c ARM: tegra: Add speedo-based process identification 2012-11-15 14:34:20 -07:00
tegra30_speedo.c ARM: tegra: Tegra30 speedo-based process identification 2012-11-15 14:36:59 -07:00