Lines Matching refs:hdlcrx
119 while (s->hdlcrx.rx_state && num >= 8) {
120 if (s->hdlcrx.len >= sizeof(s->hdlcrx.buffer)) {
121 s->hdlcrx.rx_state = 0;
124 *s->hdlcrx.bp++ = bits >> (32-num);
125 s->hdlcrx.len++;
138 if (s->hdlcrx.len < 4)
140 if (!check_crc_ccitt(s->hdlcrx.buffer, s->hdlcrx.len))
142 pkt_len = s->hdlcrx.len - 2 + 1; /* KISS kludge */
150 memcpy(cp, s->hdlcrx.buffer, pkt_len - 1);
163 if (test_and_set_bit(0, &s->hdlcrx.in_hdlc_rx))
166 while (!hdlcdrv_hbuf_empty(&s->hdlcrx.hbuf)) {
167 word = hdlcdrv_hbuf_get(&s->hdlcrx.hbuf);
172 s->hdlcrx.bitstream >>= 16;
173 s->hdlcrx.bitstream |= word << 16;
174 s->hdlcrx.bitbuf >>= 16;
175 s->hdlcrx.bitbuf |= word << 16;
176 s->hdlcrx.numbits += 16;
182 if ((s->hdlcrx.bitstream & mask1) == mask1)
183 s->hdlcrx.rx_state = 0; /* abort received */
184 else if ((s->hdlcrx.bitstream & mask2) == mask3) {
186 if (s->hdlcrx.rx_state) {
187 hdlc_rx_add_bytes(s, s->hdlcrx.bitbuf
189 s->hdlcrx.numbits
193 s->hdlcrx.len = 0;
194 s->hdlcrx.bp = s->hdlcrx.buffer;
195 s->hdlcrx.rx_state = 1;
196 s->hdlcrx.numbits = i;
197 } else if ((s->hdlcrx.bitstream & mask4) == mask5) {
199 s->hdlcrx.numbits--;
200 s->hdlcrx.bitbuf = (s->hdlcrx.bitbuf & (~mask6)) |
201 ((s->hdlcrx.bitbuf & mask6) << 1);
204 s->hdlcrx.numbits -= hdlc_rx_add_bytes(s, s->hdlcrx.bitbuf,
205 s->hdlcrx.numbits);
207 clear_bit(0, &s->hdlcrx.in_hdlc_rx);
373 if (s->hdlcrx.dcd) {
445 s->hdlcrx.hbuf.rd = s->hdlcrx.hbuf.wr = 0;
446 s->hdlcrx.in_hdlc_rx = 0;
447 s->hdlcrx.rx_state = 0;
551 bi.data.cs.dcd = s->hdlcrx.dcd;
561 bi.data.ocs.dcd = s->hdlcrx.dcd;
643 spin_lock_init(&s->hdlcrx.hbuf.lock);
644 s->hdlcrx.hbuf.rd = s->hdlcrx.hbuf.wr = 0;
645 s->hdlcrx.in_hdlc_rx = 0;
646 s->hdlcrx.rx_state = 0;