diff options
-rw-r--r-- | arch/ia64/sn/kernel/irq.c | 15 | ||||
-rw-r--r-- | include/asm-ia64/sn/shub_mmr.h | 17 |
2 files changed, 19 insertions, 13 deletions
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index b52d32975f2b..0f4e8138658f 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -82,20 +82,9 @@ static void sn_ack_irq(unsigned int irq) | |||
82 | nasid = get_nasid(); | 82 | nasid = get_nasid(); |
83 | event_occurred = | 83 | event_occurred = |
84 | HUB_L((uint64_t *) GLOBAL_MMR_ADDR(nasid, SH_EVENT_OCCURRED)); | 84 | HUB_L((uint64_t *) GLOBAL_MMR_ADDR(nasid, SH_EVENT_OCCURRED)); |
85 | if (event_occurred & SH_EVENT_OCCURRED_UART_INT_MASK) { | 85 | mask = event_occurred & SH_ALL_INT_MASK; |
86 | mask |= (1 << SH_EVENT_OCCURRED_UART_INT_SHFT); | ||
87 | } | ||
88 | if (event_occurred & SH_EVENT_OCCURRED_IPI_INT_MASK) { | ||
89 | mask |= (1 << SH_EVENT_OCCURRED_IPI_INT_SHFT); | ||
90 | } | ||
91 | if (event_occurred & SH_EVENT_OCCURRED_II_INT0_MASK) { | ||
92 | mask |= (1 << SH_EVENT_OCCURRED_II_INT0_SHFT); | ||
93 | } | ||
94 | if (event_occurred & SH_EVENT_OCCURRED_II_INT1_MASK) { | ||
95 | mask |= (1 << SH_EVENT_OCCURRED_II_INT1_SHFT); | ||
96 | } | ||
97 | HUB_S((uint64_t *) GLOBAL_MMR_ADDR(nasid, SH_EVENT_OCCURRED_ALIAS), | 86 | HUB_S((uint64_t *) GLOBAL_MMR_ADDR(nasid, SH_EVENT_OCCURRED_ALIAS), |
98 | mask); | 87 | mask); |
99 | __set_bit(irq, (volatile void *)pda->sn_in_service_ivecs); | 88 | __set_bit(irq, (volatile void *)pda->sn_in_service_ivecs); |
100 | 89 | ||
101 | move_irq(irq); | 90 | move_irq(irq); |
diff --git a/include/asm-ia64/sn/shub_mmr.h b/include/asm-ia64/sn/shub_mmr.h index 5c2fcf13d5ce..6ec37e816a9e 100644 --- a/include/asm-ia64/sn/shub_mmr.h +++ b/include/asm-ia64/sn/shub_mmr.h | |||
@@ -129,6 +129,23 @@ | |||
129 | #define SH_EVENT_OCCURRED_II_INT1_SHFT 30 | 129 | #define SH_EVENT_OCCURRED_II_INT1_SHFT 30 |
130 | #define SH_EVENT_OCCURRED_II_INT1_MASK 0x0000000040000000 | 130 | #define SH_EVENT_OCCURRED_II_INT1_MASK 0x0000000040000000 |
131 | 131 | ||
132 | /* SH2_EVENT_OCCURRED_EXTIO_INT2 */ | ||
133 | /* Description: Pending SHUB 2 EXT IO INT2 */ | ||
134 | #define SH2_EVENT_OCCURRED_EXTIO_INT2_SHFT 33 | ||
135 | #define SH2_EVENT_OCCURRED_EXTIO_INT2_MASK 0x0000000200000000 | ||
136 | |||
137 | /* SH2_EVENT_OCCURRED_EXTIO_INT3 */ | ||
138 | /* Description: Pending SHUB 2 EXT IO INT3 */ | ||
139 | #define SH2_EVENT_OCCURRED_EXTIO_INT3_SHFT 34 | ||
140 | #define SH2_EVENT_OCCURRED_EXTIO_INT3_MASK 0x0000000400000000 | ||
141 | |||
142 | #define SH_ALL_INT_MASK \ | ||
143 | (SH_EVENT_OCCURRED_UART_INT_MASK | SH_EVENT_OCCURRED_IPI_INT_MASK | \ | ||
144 | SH_EVENT_OCCURRED_II_INT0_MASK | SH_EVENT_OCCURRED_II_INT1_MASK | \ | ||
145 | SH_EVENT_OCCURRED_II_INT1_MASK | SH2_EVENT_OCCURRED_EXTIO_INT2_MASK | \ | ||
146 | SH2_EVENT_OCCURRED_EXTIO_INT3_MASK) | ||
147 | |||
148 | |||
132 | /* ==================================================================== */ | 149 | /* ==================================================================== */ |
133 | /* LEDS */ | 150 | /* LEDS */ |
134 | /* ==================================================================== */ | 151 | /* ==================================================================== */ |