|
@@ -3018,8 +3018,10 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
|
|
|
HFC_outb(hc, A_CON_HDLC, 0x20 | V_HDLC_TRP | V_IFF);
|
|
|
HFC_outb(hc, A_SUBCH_CFG, 0);
|
|
|
HFC_outb(hc, A_IRQ_MSK, 0);
|
|
|
- HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
- HFC_wait(hc);
|
|
|
+ if (hc->chan[ch].protocol != protocol) {
|
|
|
+ HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
+ HFC_wait(hc);
|
|
|
+ }
|
|
|
HFC_outb(hc, R_SLOT, ((((ch / 4) * 8) +
|
|
|
((ch % 4) * 4) + 1) << 1) | 1);
|
|
|
HFC_outb(hc, A_SL_CFG, 0x80 | 0x20 | (ch << 1) | 1);
|
|
@@ -3039,8 +3041,10 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
|
|
|
HFC_outb(hc, A_CON_HDLC, 0x20 | V_HDLC_TRP | V_IFF);
|
|
|
HFC_outb(hc, A_SUBCH_CFG, 0);
|
|
|
HFC_outb(hc, A_IRQ_MSK, 0);
|
|
|
- HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
- HFC_wait(hc);
|
|
|
+ if (hc->chan[ch].protocol != protocol) {
|
|
|
+ HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
+ HFC_wait(hc);
|
|
|
+ }
|
|
|
/* tx silence */
|
|
|
HFC_outb_nodebug(hc, A_FIFO_DATA0_NOINC, hc->silence);
|
|
|
HFC_outb(hc, R_SLOT, (((ch / 4) * 8) +
|
|
@@ -3059,8 +3063,10 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
|
|
|
V_HDLC_TRP | V_IFF);
|
|
|
HFC_outb(hc, A_SUBCH_CFG, 0);
|
|
|
HFC_outb(hc, A_IRQ_MSK, 0);
|
|
|
- HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
- HFC_wait(hc);
|
|
|
+ if (hc->chan[ch].protocol != protocol) {
|
|
|
+ HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
+ HFC_wait(hc);
|
|
|
+ }
|
|
|
/* tx silence */
|
|
|
HFC_outb_nodebug(hc, A_FIFO_DATA0_NOINC, hc->silence);
|
|
|
/* enable RX fifo */
|
|
@@ -3075,8 +3081,10 @@ mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx,
|
|
|
V_HDLC_TRP);
|
|
|
HFC_outb(hc, A_SUBCH_CFG, 0);
|
|
|
HFC_outb(hc, A_IRQ_MSK, 0);
|
|
|
- HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
- HFC_wait(hc);
|
|
|
+ if (hc->chan[ch].protocol != protocol) {
|
|
|
+ HFC_outb(hc, R_INC_RES_FIFO, V_RES_F);
|
|
|
+ HFC_wait(hc);
|
|
|
+ }
|
|
|
}
|
|
|
if (hc->ctype != HFC_TYPE_E1) {
|
|
|
hc->hw.a_st_ctrl0[hc->chan[ch].port] |=
|