|
@@ -21,19 +21,16 @@ void bonito_irqdispatch(void)
|
|
|
|
|
|
/* workaround the IO dma problem: let cpu looping to allow DMA finish */
|
|
|
int_status = LOONGSON_INTISR;
|
|
|
- if (int_status & (1 << 10)) {
|
|
|
- while (int_status & (1 << 10)) {
|
|
|
- udelay(1);
|
|
|
- int_status = LOONGSON_INTISR;
|
|
|
- }
|
|
|
+ while (int_status & (1 << 10)) {
|
|
|
+ udelay(1);
|
|
|
+ int_status = LOONGSON_INTISR;
|
|
|
}
|
|
|
|
|
|
/* Get pending sources, masked by current enables */
|
|
|
int_status = LOONGSON_INTISR & LOONGSON_INTEN;
|
|
|
|
|
|
- if (int_status != 0) {
|
|
|
+ if (int_status) {
|
|
|
i = __ffs(int_status);
|
|
|
- int_status &= ~(1 << i);
|
|
|
do_IRQ(LOONGSON_IRQ_BASE + i);
|
|
|
}
|
|
|
}
|