Lines Matching refs:hdlctx

262 	if (test_and_set_bit(0, &s->hdlctx.in_hdlc_tx))  in hdlcdrv_transmitter()
265 if (s->hdlctx.numbits >= 16) { in hdlcdrv_transmitter()
266 if (hdlcdrv_hbuf_full(&s->hdlctx.hbuf)) { in hdlcdrv_transmitter()
267 clear_bit(0, &s->hdlctx.in_hdlc_tx); in hdlcdrv_transmitter()
270 hdlcdrv_hbuf_put(&s->hdlctx.hbuf, s->hdlctx.bitbuf); in hdlcdrv_transmitter()
271 s->hdlctx.bitbuf >>= 16; in hdlcdrv_transmitter()
272 s->hdlctx.numbits -= 16; in hdlcdrv_transmitter()
274 switch (s->hdlctx.tx_state) { in hdlcdrv_transmitter()
276 clear_bit(0, &s->hdlctx.in_hdlc_tx); in hdlcdrv_transmitter()
280 if (s->hdlctx.numflags) { in hdlcdrv_transmitter()
281 s->hdlctx.numflags--; in hdlcdrv_transmitter()
282 s->hdlctx.bitbuf |= in hdlcdrv_transmitter()
283 0x7e7e << s->hdlctx.numbits; in hdlcdrv_transmitter()
284 s->hdlctx.numbits += 16; in hdlcdrv_transmitter()
287 if (s->hdlctx.tx_state == 1) { in hdlcdrv_transmitter()
288 clear_bit(0, &s->hdlctx.in_hdlc_tx); in hdlcdrv_transmitter()
295 s->hdlctx.tx_state = 1; in hdlcdrv_transmitter()
296 s->hdlctx.numflags = flgs; in hdlcdrv_transmitter()
303 s->hdlctx.tx_state = 0; in hdlcdrv_transmitter()
304 s->hdlctx.numflags = 1; in hdlcdrv_transmitter()
309 s->hdlctx.buffer, in hdlcdrv_transmitter()
312 s->hdlctx.bp = s->hdlctx.buffer; in hdlcdrv_transmitter()
313 append_crc_ccitt(s->hdlctx.buffer, pkt_len); in hdlcdrv_transmitter()
314 s->hdlctx.len = pkt_len+2; /* the appended CRC */ in hdlcdrv_transmitter()
315 s->hdlctx.tx_state = 2; in hdlcdrv_transmitter()
316 s->hdlctx.bitstream = 0; in hdlcdrv_transmitter()
320 if (!s->hdlctx.len) { in hdlcdrv_transmitter()
321 s->hdlctx.tx_state = 0; in hdlcdrv_transmitter()
322 s->hdlctx.numflags = 1; in hdlcdrv_transmitter()
325 s->hdlctx.len--; in hdlcdrv_transmitter()
326 s->hdlctx.bitbuf |= *s->hdlctx.bp << in hdlcdrv_transmitter()
327 s->hdlctx.numbits; in hdlcdrv_transmitter()
328 s->hdlctx.bitstream >>= 8; in hdlcdrv_transmitter()
329 s->hdlctx.bitstream |= (*s->hdlctx.bp++) << 16; in hdlcdrv_transmitter()
332 mask3 = 0xffffffff >> (31-s->hdlctx.numbits); in hdlcdrv_transmitter()
333 s->hdlctx.numbits += 8; in hdlcdrv_transmitter()
336 if ((s->hdlctx.bitstream & mask1) != mask1) in hdlcdrv_transmitter()
338 s->hdlctx.bitstream &= ~mask2; in hdlcdrv_transmitter()
339 s->hdlctx.bitbuf = in hdlcdrv_transmitter()
340 (s->hdlctx.bitbuf & mask3) | in hdlcdrv_transmitter()
341 ((s->hdlctx.bitbuf & in hdlcdrv_transmitter()
343 s->hdlctx.numbits++; in hdlcdrv_transmitter()
355 s->hdlctx.tx_state = 0; in start_tx()
356 s->hdlctx.numflags = tenms_to_2flags(s, s->ch_params.tx_delay); in start_tx()
357 s->hdlctx.bitbuf = s->hdlctx.bitstream = s->hdlctx.numbits = 0; in start_tx()
359 s->hdlctx.ptt = 1; in start_tx()
367 if (!s || s->magic != HDLCDRV_MAGIC || s->hdlctx.ptt || !s->skb) in hdlcdrv_arbitrate()
374 s->hdlctx.slotcnt = s->ch_params.slottime; in hdlcdrv_arbitrate()
377 if ((--s->hdlctx.slotcnt) > 0) in hdlcdrv_arbitrate()
379 s->hdlctx.slotcnt = s->ch_params.slottime; in hdlcdrv_arbitrate()
449 s->hdlctx.hbuf.rd = s->hdlctx.hbuf.wr = 0; in hdlcdrv_open()
450 s->hdlctx.in_hdlc_tx = 0; in hdlcdrv_open()
451 s->hdlctx.tx_state = 1; in hdlcdrv_open()
452 s->hdlctx.numflags = 0; in hdlcdrv_open()
453 s->hdlctx.bitstream = s->hdlctx.bitbuf = s->hdlctx.numbits = 0; in hdlcdrv_open()
454 s->hdlctx.ptt = 0; in hdlcdrv_open()
455 s->hdlctx.slotcnt = s->ch_params.slottime; in hdlcdrv_open()
456 s->hdlctx.calibrate = 0; in hdlcdrv_open()
524 s->hdlctx.slotcnt = 1; in hdlcdrv_siocdevprivate()
572 s->hdlctx.calibrate = bi.data.calibrate * s->par.bitrate / 16; in hdlcdrv_siocdevprivate()
648 spin_lock_init(&s->hdlctx.hbuf.lock); in hdlcdrv_setup()
649 s->hdlctx.hbuf.rd = s->hdlctx.hbuf.wr = 0; in hdlcdrv_setup()
650 s->hdlctx.in_hdlc_tx = 0; in hdlcdrv_setup()
651 s->hdlctx.tx_state = 1; in hdlcdrv_setup()
652 s->hdlctx.numflags = 0; in hdlcdrv_setup()
653 s->hdlctx.bitstream = s->hdlctx.bitbuf = s->hdlctx.numbits = 0; in hdlcdrv_setup()
654 s->hdlctx.ptt = 0; in hdlcdrv_setup()
655 s->hdlctx.slotcnt = s->ch_params.slottime; in hdlcdrv_setup()
656 s->hdlctx.calibrate = 0; in hdlcdrv_setup()