diff options
Diffstat (limited to 'arch/sh/boards/renesas/systemh/irq.c')
-rw-r--r-- | arch/sh/boards/renesas/systemh/irq.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/sh/boards/renesas/systemh/irq.c b/arch/sh/boards/renesas/systemh/irq.c index 8372d967f601..8d016dae2333 100644 --- a/arch/sh/boards/renesas/systemh/irq.c +++ b/arch/sh/boards/renesas/systemh/irq.c | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <linux/hdreg.h> | 15 | #include <linux/hdreg.h> |
16 | #include <linux/ide.h> | 16 | #include <linux/ide.h> |
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | #include <asm/mach/7751systemh.h> | 18 | #include <asm/systemh7751.h> |
19 | #include <asm/smc37c93x.h> | 19 | #include <asm/smc37c93x.h> |
20 | 20 | ||
21 | /* address of external interrupt mask register | 21 | /* address of external interrupt mask register |
@@ -57,12 +57,9 @@ static void shutdown_systemh_irq(unsigned int irq) | |||
57 | static void disable_systemh_irq(unsigned int irq) | 57 | static void disable_systemh_irq(unsigned int irq) |
58 | { | 58 | { |
59 | if (systemh_irq_mask_register) { | 59 | if (systemh_irq_mask_register) { |
60 | unsigned long flags; | ||
61 | unsigned long val, mask = 0x01 << 1; | 60 | unsigned long val, mask = 0x01 << 1; |
62 | 61 | ||
63 | /* Clear the "irq"th bit in the mask and set it in the request */ | 62 | /* Clear the "irq"th bit in the mask and set it in the request */ |
64 | local_irq_save(flags); | ||
65 | |||
66 | val = ctrl_inl((unsigned long)systemh_irq_mask_register); | 63 | val = ctrl_inl((unsigned long)systemh_irq_mask_register); |
67 | val &= ~mask; | 64 | val &= ~mask; |
68 | ctrl_outl(val, (unsigned long)systemh_irq_mask_register); | 65 | ctrl_outl(val, (unsigned long)systemh_irq_mask_register); |
@@ -70,23 +67,18 @@ static void disable_systemh_irq(unsigned int irq) | |||
70 | val = ctrl_inl((unsigned long)systemh_irq_request_register); | 67 | val = ctrl_inl((unsigned long)systemh_irq_request_register); |
71 | val |= mask; | 68 | val |= mask; |
72 | ctrl_outl(val, (unsigned long)systemh_irq_request_register); | 69 | ctrl_outl(val, (unsigned long)systemh_irq_request_register); |
73 | |||
74 | local_irq_restore(flags); | ||
75 | } | 70 | } |
76 | } | 71 | } |
77 | 72 | ||
78 | static void enable_systemh_irq(unsigned int irq) | 73 | static void enable_systemh_irq(unsigned int irq) |
79 | { | 74 | { |
80 | if (systemh_irq_mask_register) { | 75 | if (systemh_irq_mask_register) { |
81 | unsigned long flags; | ||
82 | unsigned long val, mask = 0x01 << 1; | 76 | unsigned long val, mask = 0x01 << 1; |
83 | 77 | ||
84 | /* Set "irq"th bit in the mask register */ | 78 | /* Set "irq"th bit in the mask register */ |
85 | local_irq_save(flags); | ||
86 | val = ctrl_inl((unsigned long)systemh_irq_mask_register); | 79 | val = ctrl_inl((unsigned long)systemh_irq_mask_register); |
87 | val |= mask; | 80 | val |= mask; |
88 | ctrl_outl(val, (unsigned long)systemh_irq_mask_register); | 81 | ctrl_outl(val, (unsigned long)systemh_irq_mask_register); |
89 | local_irq_restore(flags); | ||
90 | } | 82 | } |
91 | } | 83 | } |
92 | 84 | ||