aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/emma
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/emma')
-rw-r--r--arch/mips/emma/markeins/irq.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/mips/emma/markeins/irq.c b/arch/mips/emma/markeins/irq.c
index c2583ecc93cf..263132d7b3a3 100644
--- a/arch/mips/emma/markeins/irq.c
+++ b/arch/mips/emma/markeins/irq.c
@@ -213,8 +213,7 @@ void emma2rh_irq_dispatch(void)
213 emma2rh_in32(EMMA2RH_BHIF_INT_EN_0); 213 emma2rh_in32(EMMA2RH_BHIF_INT_EN_0);
214 214
215#ifdef EMMA2RH_SW_CASCADE 215#ifdef EMMA2RH_SW_CASCADE
216 if (intStatus & 216 if (intStatus & (1UL << EMMA2RH_SW_CASCADE)) {
217 (1 << ((EMMA2RH_SW_CASCADE - EMMA2RH_IRQ_INT0) & (32 - 1)))) {
218 u32 swIntStatus; 217 u32 swIntStatus;
219 swIntStatus = emma2rh_in32(EMMA2RH_BHIF_SW_INT) 218 swIntStatus = emma2rh_in32(EMMA2RH_BHIF_SW_INT)
220 & emma2rh_in32(EMMA2RH_BHIF_SW_INT_EN); 219 & emma2rh_in32(EMMA2RH_BHIF_SW_INT_EN);
@@ -225,6 +224,8 @@ void emma2rh_irq_dispatch(void)
225 } 224 }
226 } 225 }
227 } 226 }
227 /* Skip S/W interrupt */
228 intStatus &= ~(1UL << EMMA2RH_SW_CASCADE);
228#endif 229#endif
229 230
230 for (i = 0, bitmask = 1; i < 32; i++, bitmask <<= 1) { 231 for (i = 0, bitmask = 1; i < 32; i++, bitmask <<= 1) {
@@ -238,8 +239,7 @@ void emma2rh_irq_dispatch(void)
238 emma2rh_in32(EMMA2RH_BHIF_INT_EN_1); 239 emma2rh_in32(EMMA2RH_BHIF_INT_EN_1);
239 240
240#ifdef EMMA2RH_GPIO_CASCADE 241#ifdef EMMA2RH_GPIO_CASCADE
241 if (intStatus & 242 if (intStatus & (1UL << (EMMA2RH_GPIO_CASCADE % 32))) {
242 (1 << ((EMMA2RH_GPIO_CASCADE - EMMA2RH_IRQ_INT0) & (32 - 1)))) {
243 u32 gpioIntStatus; 243 u32 gpioIntStatus;
244 gpioIntStatus = emma2rh_in32(EMMA2RH_GPIO_INT_ST) 244 gpioIntStatus = emma2rh_in32(EMMA2RH_GPIO_INT_ST)
245 & emma2rh_in32(EMMA2RH_GPIO_INT_MASK); 245 & emma2rh_in32(EMMA2RH_GPIO_INT_MASK);
@@ -250,6 +250,8 @@ void emma2rh_irq_dispatch(void)
250 } 250 }
251 } 251 }
252 } 252 }
253 /* Skip GPIO interrupt */
254 intStatus &= ~(1UL << (EMMA2RH_GPIO_CASCADE % 32));
253#endif 255#endif
254 256
255 for (i = 32, bitmask = 1; i < 64; i++, bitmask <<= 1) { 257 for (i = 32, bitmask = 1; i < 64; i++, bitmask <<= 1) {