diff options
-rwxr-xr-x | tor2.c | 2 | ||||
-rwxr-xr-x | wct1xxp.c | 7 |
2 files changed, 6 insertions, 3 deletions
@@ -1247,7 +1247,7 @@ static void tor2_intr(int irq, void *dev_id, struct pt_regs *regs) } i = tor->passno & 15; - if ((i >= 10) && (i <= 13)) + if ((i >= 10) && (i <= 13) && !(tor->passno & 0x30)) { j = 0; /* clear this alarm status */ i -= 10; @@ -1020,8 +1020,9 @@ static void __t1xxp_check_alarms(struct t1xxp *wc) __t1_set_reg(wc, 0x0a, 0x40); /* Remote Loop */ wc->span.maintstat = ZT_MAINT_REMOTELOOP; } - } else + } else { wc->loopupcnt = 0; + } /* Same for loopdown code */ if ((!wc->span.mainttimer) && (c & 0x40)) { /* Loop-down code detected */ @@ -1155,7 +1156,9 @@ static void t1xxp_interrupt(int irq, void *dev_id, struct pt_regs *regs) __t1xxp_check_sigbits(wc, x); break; case 4: - __t1xxp_check_alarms(wc); + /* Check alarms 1/4 as frequently */ + if (!(wc->intcount & 0x30)) + __t1xxp_check_alarms(wc); break; } |