summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/wakeups-t2.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/wakeups-t2.c')
-rw-r--r--arch/arm/mach-tegra/wakeups-t2.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/wakeups-t2.c b/arch/arm/mach-tegra/wakeups-t2.c
index df7f65cfef49..a068fc9d36b0 100644
--- a/arch/arm/mach-tegra/wakeups-t2.c
+++ b/arch/arm/mach-tegra/wakeups-t2.c
@@ -127,18 +127,20 @@ int tegra_gpio_to_wake(int gpio)
return -EINVAL;
}
-int tegra_irq_to_wake(int irq)
+void tegra_irq_to_wake(int irq, int *wak_list, int *wak_size)
{
int i;
- int ret = -EINVAL;
+ *wak_size = 0;
for (i = 0; i < ARRAY_SIZE(tegra_wake_event_irq); i++) {
if (tegra_wake_event_irq[i] == irq) {
pr_info("Wake %d for irq=%d\n", i, irq);
- ret = i;
- goto out;
+ wak_list[*wak_size] = i;
+ *wak_size = *wak_size + 1;
}
}
+ if (*wak_size)
+ goto out;
/* The gpio set_wake code bubbles the set_wake call up to the irq
* set_wake code. This insures that the nested irq set_wake call
@@ -153,11 +155,12 @@ int tegra_irq_to_wake(int irq)
if (tegra_gpio_get_bank_int_nr(tegra_gpio_wakes[last_gpio]) == irq) {
pr_info("gpio bank wake found: wake %d for irq=%d\n", i, irq);
- ret = last_gpio;
+ wak_list[*wak_size] = last_gpio;
+ *wak_size = 1;
}
out:
- return ret;
+ return;
}
int tegra_wake_to_irq(int wake)