Commit cc0f4b0d authored by Kai Germaschewski's avatar Kai Germaschewski

ISDN/HiSax: Move more code into the shared xmit_xpr_d()

Another bit of D-channel busy handling can move as well.
parent 18c91913
...@@ -255,10 +255,6 @@ icc_interrupt(struct IsdnCardState *cs, u_char val) ...@@ -255,10 +255,6 @@ icc_interrupt(struct IsdnCardState *cs, u_char val)
printk(KERN_WARNING "HiSax: ICC XMR\n"); printk(KERN_WARNING "HiSax: ICC XMR\n");
} }
if (exval & 0x40) { /* XDU */ if (exval & 0x40) { /* XDU */
if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
del_timer(&cs->dbusytimer);
if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
sched_d_event(cs, D_CLEARBUSY);
xmit_xdu_d(cs, NULL); xmit_xdu_d(cs, NULL);
} }
if (exval & 0x04) { /* MOS */ if (exval & 0x04) { /* MOS */
......
...@@ -249,10 +249,6 @@ isac_interrupt(struct IsdnCardState *cs, u_char val) ...@@ -249,10 +249,6 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
printk(KERN_WARNING "HiSax: ISAC XMR\n"); printk(KERN_WARNING "HiSax: ISAC XMR\n");
} }
if (exval & 0x40) { /* XDU */ if (exval & 0x40) { /* XDU */
if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
del_timer(&cs->dbusytimer);
if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
sched_d_event(cs, D_CLEARBUSY);
xmit_xdu_d(cs, NULL); xmit_xdu_d(cs, NULL);
} }
if (exval & 0x04) { /* MOS */ if (exval & 0x04) { /* MOS */
......
...@@ -251,6 +251,11 @@ xmit_xdu_d(struct IsdnCardState *cs, void (*reset_xmit)(struct IsdnCardState *cs ...@@ -251,6 +251,11 @@ xmit_xdu_d(struct IsdnCardState *cs, void (*reset_xmit)(struct IsdnCardState *cs
if (cs->debug & L1_DEB_WARN) if (cs->debug & L1_DEB_WARN)
debugl1(cs, "D XDU"); debugl1(cs, "D XDU");
if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
del_timer(&cs->dbusytimer);
if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
sched_d_event(cs, D_CLEARBUSY);
xmit_restart_d(cs); xmit_restart_d(cs);
if (reset_xmit) if (reset_xmit)
reset_xmit(cs); reset_xmit(cs);
......
...@@ -366,10 +366,6 @@ W6692_interrupt(int intno, void *dev_id, struct pt_regs *regs) ...@@ -366,10 +366,6 @@ W6692_interrupt(int intno, void *dev_id, struct pt_regs *regs)
if (cs->debug & L1_DEB_WARN) if (cs->debug & L1_DEB_WARN)
debugl1(cs, "W6692 D_EXIR %02x", exval); debugl1(cs, "W6692 D_EXIR %02x", exval);
if (exval & (W_D_EXI_XDUN | W_D_EXI_XCOL)) { /* Transmit underrun/collision */ if (exval & (W_D_EXI_XDUN | W_D_EXI_XCOL)) { /* Transmit underrun/collision */
if (test_and_clear_bit(FLG_DBUSY_TIMER, &cs->HW_Flags))
del_timer(&cs->dbusytimer);
if (test_and_clear_bit(FLG_L1_DBUSY, &cs->HW_Flags))
sched_d_event(cs, D_CLEARBUSY);
xmit_xdu_d(cs, NULL); xmit_xdu_d(cs, NULL);
} }
if (exval & W_D_EXI_RDOV) { /* RDOV */ if (exval & W_D_EXI_RDOV) { /* RDOV */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment