Skip to content

Commit

Permalink
ARM: S5P: add required chained_irq_enter/exit to gpio-int code
Browse files Browse the repository at this point in the history
This patch adds chained IRQ enter/exit functions to gpio interrupt
handler in order to function correctly on primary controllers with
different methods of flow control.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
  • Loading branch information
Marek Szyprowski authored and Kukjin Kim committed Aug 19, 2011
1 parent 70b0e82 commit 3f6065d
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions arch/arm/plat-s5p/irq-gpioint.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
#include <plat/gpio-core.h>
#include <plat/gpio-cfg.h>

#include <asm/mach/irq.h>

#define GPIO_BASE(chip) (((unsigned long)(chip)->base) & 0xFFFFF000u)

#define CON_OFFSET 0x700
Expand Down Expand Up @@ -81,6 +83,9 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc)
int group, pend_offset, mask_offset;
unsigned int pend, mask;

struct irq_chip *chip = irq_get_chip(irq);
chained_irq_enter(chip, desc);

for (group = 0; group < bank->nr_groups; group++) {
struct s3c_gpio_chip *chip = bank->chips[group];
if (!chip)
Expand All @@ -102,6 +107,7 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc)
pend &= ~BIT(offset);
}
}
chained_irq_exit(chip, desc);
}

static __init int s5p_gpioint_add(struct s3c_gpio_chip *chip)
Expand Down

0 comments on commit 3f6065d

Please sign in to comment.