mirror of https://github.com/hak5/openwrt.git
28 lines
681 B
Diff
28 lines
681 B
Diff
--- a/arch/mips/ath79/irq.c
|
|
+++ b/arch/mips/ath79/irq.c
|
|
@@ -69,15 +69,21 @@ static void qca953x_ip2_irq_dispatch(str
|
|
u32 status;
|
|
|
|
status = ath79_reset_rr(QCA953X_RESET_REG_PCIE_WMAC_INT_STATUS);
|
|
+ status &= QCA953X_PCIE_WMAC_INT_PCIE_ALL | QCA953X_PCIE_WMAC_INT_WMAC_ALL;
|
|
+
|
|
+ if (status == 0) {
|
|
+ spurious_interrupt();
|
|
+ return;
|
|
+ }
|
|
|
|
if (status & QCA953X_PCIE_WMAC_INT_PCIE_ALL) {
|
|
ath79_ddr_wb_flush(3);
|
|
generic_handle_irq(ATH79_IP2_IRQ(0));
|
|
- } else if (status & QCA953X_PCIE_WMAC_INT_WMAC_ALL) {
|
|
+ }
|
|
+
|
|
+ if (status & QCA953X_PCIE_WMAC_INT_WMAC_ALL) {
|
|
ath79_ddr_wb_flush(4);
|
|
generic_handle_irq(ATH79_IP2_IRQ(1));
|
|
- } else {
|
|
- spurious_interrupt();
|
|
}
|
|
}
|
|
|