diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2014-09-01 10:29:11 -0400 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-09-26 03:15:54 -0400 |
commit | c38715fed8f51a8fba4a15f86732ad885f073d78 (patch) | |
tree | 5b9c911da4f71c4d65ef84bd36c1cdb28413ad72 /drivers/mfd | |
parent | dc5193cc4a1e0103fe852acb21c588ea544697c6 (diff) |
mfd: arizona: Propagate irq_wake through to parent IRQ
If one of the internal Arizona IRQs is set as a wake source this needs
to be propogated back to the actual IRQ line that the Arizona device is
attached to.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/arizona-irq.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c index 9133d519b020..5e2f450a6176 100644 --- a/drivers/mfd/arizona-irq.c +++ b/drivers/mfd/arizona-irq.c | |||
@@ -152,10 +152,18 @@ static void arizona_irq_disable(struct irq_data *data) | |||
152 | { | 152 | { |
153 | } | 153 | } |
154 | 154 | ||
155 | static int arizona_irq_set_wake(struct irq_data *data, unsigned int on) | ||
156 | { | ||
157 | struct arizona *arizona = irq_data_get_irq_chip_data(data); | ||
158 | |||
159 | return irq_set_irq_wake(arizona->irq, on); | ||
160 | } | ||
161 | |||
155 | static struct irq_chip arizona_irq_chip = { | 162 | static struct irq_chip arizona_irq_chip = { |
156 | .name = "arizona", | 163 | .name = "arizona", |
157 | .irq_disable = arizona_irq_disable, | 164 | .irq_disable = arizona_irq_disable, |
158 | .irq_enable = arizona_irq_enable, | 165 | .irq_enable = arizona_irq_enable, |
166 | .irq_set_wake = arizona_irq_set_wake, | ||
159 | }; | 167 | }; |
160 | 168 | ||
161 | static int arizona_irq_map(struct irq_domain *h, unsigned int virq, | 169 | static int arizona_irq_map(struct irq_domain *h, unsigned int virq, |