diff options
Diffstat (limited to 'drivers/isdn/hardware/mISDN/hfcmulti.c')
-rw-r--r-- | drivers/isdn/hardware/mISDN/hfcmulti.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index ca153de6954e..3a7c26ce12cf 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c | |||
@@ -1945,6 +1945,9 @@ next_frame: | |||
1945 | "%d!=%d\n", __func__, hc->id + 1, temp, z2); | 1945 | "%d!=%d\n", __func__, hc->id + 1, temp, z2); |
1946 | z2 = temp; /* repeat unti Z2 is equal */ | 1946 | z2 = temp; /* repeat unti Z2 is equal */ |
1947 | } | 1947 | } |
1948 | hc->chan[ch].Zfill = z1 - z2; | ||
1949 | if (hc->chan[ch].Zfill < 0) | ||
1950 | hc->chan[ch].Zfill += hc->Zlen; | ||
1948 | Zspace = z2 - z1; | 1951 | Zspace = z2 - z1; |
1949 | if (Zspace <= 0) | 1952 | if (Zspace <= 0) |
1950 | Zspace += hc->Zlen; | 1953 | Zspace += hc->Zlen; |
@@ -2031,6 +2034,7 @@ next_frame: | |||
2031 | 2034 | ||
2032 | /* Have to prep the audio data */ | 2035 | /* Have to prep the audio data */ |
2033 | hc->write_fifo(hc, d, ii - i); | 2036 | hc->write_fifo(hc, d, ii - i); |
2037 | hc->chan[ch].Zfill += ii - i; | ||
2034 | *idxp = ii; | 2038 | *idxp = ii; |
2035 | 2039 | ||
2036 | /* if not all data has been written */ | 2040 | /* if not all data has been written */ |
@@ -2226,7 +2230,7 @@ next_frame: | |||
2226 | if (dch) | 2230 | if (dch) |
2227 | recv_Dchannel(dch); | 2231 | recv_Dchannel(dch); |
2228 | else | 2232 | else |
2229 | recv_Bchannel(bch); | 2233 | recv_Bchannel(bch, MISDN_ID_ANY); |
2230 | *sp = skb; | 2234 | *sp = skb; |
2231 | again++; | 2235 | again++; |
2232 | goto next_frame; | 2236 | goto next_frame; |
@@ -2258,7 +2262,7 @@ next_frame: | |||
2258 | "(z1=%04x, z2=%04x) TRANS\n", | 2262 | "(z1=%04x, z2=%04x) TRANS\n", |
2259 | __func__, hc->id + 1, ch, Zsize, z1, z2); | 2263 | __func__, hc->id + 1, ch, Zsize, z1, z2); |
2260 | /* only bch is transparent */ | 2264 | /* only bch is transparent */ |
2261 | recv_Bchannel(bch); | 2265 | recv_Bchannel(bch, hc->chan[ch].Zfill); |
2262 | *sp = skb; | 2266 | *sp = skb; |
2263 | } | 2267 | } |
2264 | } | 2268 | } |