summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/cpuidle.h
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2013-05-06 22:19:19 +0200
committerStephen Warren <swarren@nvidia.com>2013-08-13 20:07:56 +0200
commitb4f173752a56187bd55752b0474429202f2ab1d3 (patch)
tree64b5936abc2c238f5114b42915ba3958c32890af /arch/arm/mach-tegra/cpuidle.h
parentMAINTAINERS: Add myself as Tegra PCIe maintainer (diff)
downloadlinux-b4f173752a56187bd55752b0474429202f2ab1d3.tar.xz
linux-b4f173752a56187bd55752b0474429202f2ab1d3.zip
ARM: tegra: disable LP2 cpuidle state if PCIe is enabled
Tegra20 HW appears to have a bug such that PCIe device interrupts, whether they are legacy IRQs or MSI, are lost when LP2 is enabled. To work around this, simply disable LP2 if any PCIe devices with interrupts are present. Detect this via the IRQ domain map operation. This is slightly over-conservative; if a device with an interrupt is present but the driver does not actually use them, LP2 will still be disabled. However, this is a reasonable trade-off which enables a simpler workaround. Signed-off-by: Stephen Warren <swarren@nvidia.com> Tested-by: Thierry Reding <treding@nvidia.com> Acked-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.h')
-rw-r--r--arch/arm/mach-tegra/cpuidle.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.h b/arch/arm/mach-tegra/cpuidle.h
index 9ec2c1ab0fa4..c017dab60ffa 100644
--- a/arch/arm/mach-tegra/cpuidle.h
+++ b/arch/arm/mach-tegra/cpuidle.h
@@ -19,6 +19,7 @@
#ifdef CONFIG_CPU_IDLE
int tegra20_cpuidle_init(void);
+void tegra20_cpuidle_pcie_irqs_in_use(void);
int tegra30_cpuidle_init(void);
int tegra114_cpuidle_init(void);
void tegra_cpuidle_init(void);