summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wct1xxp.c4
-rw-r--r--wctdm.c3
-rw-r--r--wctdm24xxp.c4
-rw-r--r--wcte11xp.c4
4 files changed, 9 insertions, 6 deletions
diff --git a/wct1xxp.c b/wct1xxp.c
index 4aecf27..a0a1e95 100644
--- a/wct1xxp.c
+++ b/wct1xxp.c
@@ -1134,8 +1134,6 @@ ZAP_IRQ_HANDLER(t1xxp_interrupt)
int x;
ints = inb(wc->ioaddr + WC_INTSTAT);
- outb(ints, wc->ioaddr + WC_INTSTAT);
-
if (!ints)
#ifdef LINUX26
return IRQ_NONE;
@@ -1143,6 +1141,8 @@ ZAP_IRQ_HANDLER(t1xxp_interrupt)
return;
#endif
+ outb(ints, wc->ioaddr + WC_INTSTAT);
+
if (!wc->intcount) {
if (debug) printk("Got interrupt: 0x%04x\n", ints);
}
diff --git a/wctdm.c b/wctdm.c
index 1e7540a..2e87897 100644
--- a/wctdm.c
+++ b/wctdm.c
@@ -1032,7 +1032,6 @@ ZAP_IRQ_HANDLER(wctdm_interrupt)
int mode;
ints = inb(wc->ioaddr + WC_INTSTAT);
- outb(ints, wc->ioaddr + WC_INTSTAT);
if (!ints)
#ifdef LINUX26
@@ -1041,6 +1040,8 @@ ZAP_IRQ_HANDLER(wctdm_interrupt)
return;
#endif
+ outb(ints, wc->ioaddr + WC_INTSTAT);
+
if (ints & 0x10) {
/* Stop DMA, wait for watchdog */
printk("TDM PCI Master abort\n");
diff --git a/wctdm24xxp.c b/wctdm24xxp.c
index e4e97f7..72418e4 100644
--- a/wctdm24xxp.c
+++ b/wctdm24xxp.c
@@ -1428,7 +1428,6 @@ ZAP_IRQ_HANDLER(wctdm_interrupt)
/* Read and clear interrupts */
ints = wctdm_getctl(wc, 0x0028);
- wctdm_setctl(wc, 0x0028, ints);
if (!ints)
#ifdef LINUX26
@@ -1436,6 +1435,9 @@ ZAP_IRQ_HANDLER(wctdm_interrupt)
#else
return;
#endif
+
+ wctdm_setctl(wc, 0x0028, ints);
+
ints &= wc->intmask;
if (ints & 0x00000041) {
do {
diff --git a/wcte11xp.c b/wcte11xp.c
index 3ac0291..98669a4 100644
--- a/wcte11xp.c
+++ b/wcte11xp.c
@@ -1265,8 +1265,6 @@ ZAP_IRQ_HANDLER(t1xxp_interrupt)
int x;
ints = inb(wc->ioaddr + WC_INTSTAT);
- outb(ints, wc->ioaddr + WC_INTSTAT);
-
if (!ints)
#ifdef LINUX26
return IRQ_NONE;
@@ -1274,6 +1272,8 @@ ZAP_IRQ_HANDLER(t1xxp_interrupt)
return;
#endif
+ outb(ints, wc->ioaddr + WC_INTSTAT);
+
if (!wc->intcount) {
if (debug) printk("Got interrupt: 0x%04x\n", ints);
}