diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-07-28 11:25:46 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-07-28 11:25:46 -0400 |
commit | 6124a4e430b64d1577438c8648c59e996d02e73e (patch) | |
tree | 49cfafad785d1c9e403a5b0d755298b9af2c260f /arch/arm/plat-samsung/irq-uart.c | |
parent | 8e267f3da5f117d2f1316cf6ddf740f93f1c73aa (diff) | |
parent | 580975d7f48d7d047e22bb0f42adf7557801d8d4 (diff) |
Merge branch 'imx/dt' into next/dt
Diffstat (limited to 'arch/arm/plat-samsung/irq-uart.c')
-rw-r--r-- | arch/arm/plat-samsung/irq-uart.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/irq-uart.c b/arch/arm/plat-samsung/irq-uart.c index 657405c481d..3014c7226bd 100644 --- a/arch/arm/plat-samsung/irq-uart.c +++ b/arch/arm/plat-samsung/irq-uart.c | |||
@@ -19,6 +19,8 @@ | |||
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
21 | 21 | ||
22 | #include <asm/mach/irq.h> | ||
23 | |||
22 | #include <mach/map.h> | 24 | #include <mach/map.h> |
23 | #include <plat/irq-uart.h> | 25 | #include <plat/irq-uart.h> |
24 | #include <plat/regs-serial.h> | 26 | #include <plat/regs-serial.h> |
@@ -30,9 +32,12 @@ | |||
30 | static void s3c_irq_demux_uart(unsigned int irq, struct irq_desc *desc) | 32 | static void s3c_irq_demux_uart(unsigned int irq, struct irq_desc *desc) |
31 | { | 33 | { |
32 | struct s3c_uart_irq *uirq = desc->irq_data.handler_data; | 34 | struct s3c_uart_irq *uirq = desc->irq_data.handler_data; |
35 | struct irq_chip *chip = irq_get_chip(irq); | ||
33 | u32 pend = __raw_readl(uirq->regs + S3C64XX_UINTP); | 36 | u32 pend = __raw_readl(uirq->regs + S3C64XX_UINTP); |
34 | int base = uirq->base_irq; | 37 | int base = uirq->base_irq; |
35 | 38 | ||
39 | chained_irq_enter(chip, desc); | ||
40 | |||
36 | if (pend & (1 << 0)) | 41 | if (pend & (1 << 0)) |
37 | generic_handle_irq(base); | 42 | generic_handle_irq(base); |
38 | if (pend & (1 << 1)) | 43 | if (pend & (1 << 1)) |
@@ -41,6 +46,8 @@ static void s3c_irq_demux_uart(unsigned int irq, struct irq_desc *desc) | |||
41 | generic_handle_irq(base + 2); | 46 | generic_handle_irq(base + 2); |
42 | if (pend & (1 << 3)) | 47 | if (pend & (1 << 3)) |
43 | generic_handle_irq(base + 3); | 48 | generic_handle_irq(base + 3); |
49 | |||
50 | chained_irq_exit(chip, desc); | ||
44 | } | 51 | } |
45 | 52 | ||
46 | static void __init s3c_init_uart_irq(struct s3c_uart_irq *uirq) | 53 | static void __init s3c_init_uart_irq(struct s3c_uart_irq *uirq) |