Thread (43 messages) 43 messages, 5 authors, 2012-01-02

[PATCH 4/9] gpio: pl061: use chained_irq_* functions in irq handler

From: Grant Likely <hidden>
Date: 2011-12-14 21:15:45
Also in: linux-devicetree, lkml

On Wed, Dec 14, 2011 at 8:28 AM, Rob Herring [off-list ref] wrote:
From: Rob Herring <redacted>

Use chained_irq_enter/exit helper functions instead of direct pointer
accesses. This is needed for generic irq chip conversion.

Signed-off-by: Rob Herring <redacted>
Cc: Grant Likely <redacted>
Acked-by: Grant Likely <redacted>
quoted hunk ↗ jump to hunk
Cc: Linus Walleij <redacted>
---
?drivers/gpio/gpio-pl061.c | ? ?6 ++++--
?1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
index 4102f63..0f718f9 100644
--- a/drivers/gpio/gpio-pl061.c
+++ b/drivers/gpio/gpio-pl061.c
@@ -23,6 +23,7 @@
?#include <linux/amba/bus.h>
?#include <linux/amba/pl061.h>
?#include <linux/slab.h>
+#include <asm/mach/irq.h>

?#define GPIODIR 0x400
?#define GPIOIS ?0x404
@@ -211,8 +212,9 @@ static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
? ? ? ?struct list_head *chip_list = irq_get_handler_data(irq);
? ? ? ?struct list_head *ptr;
? ? ? ?struct pl061_gpio *chip;
+ ? ? ? struct irq_chip *irqchip = irq_desc_get_chip(desc);

- ? ? ? desc->irq_data.chip->irq_ack(&desc->irq_data);
+ ? ? ? chained_irq_enter(irqchip, desc);
? ? ? ?list_for_each(ptr, chip_list) {
? ? ? ? ? ? ? ?unsigned long pending;
? ? ? ? ? ? ? ?int offset;
@@ -227,7 +229,7 @@ static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
? ? ? ? ? ? ? ?for_each_set_bit(offset, &pending, PL061_GPIO_NR)
? ? ? ? ? ? ? ? ? ? ? ?generic_handle_irq(pl061_to_irq(&chip->gc, offset));
? ? ? ?}
- ? ? ? desc->irq_data.chip->irq_unmask(&desc->irq_data);
+ ? ? ? chained_irq_exit(irqchip, desc);
?}

?static int pl061_probe(struct amba_device *dev, const struct amba_id *id)
--
1.7.5.4


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help