Lines Matching refs:fifo

813 hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len,  in hfcsusb_rx_frame()  argument
816 struct hfcsusb *hw = fifo->hw; in hfcsusb_rx_frame()
819 int fifon = fifo->fifonum; in hfcsusb_rx_frame()
827 fifo->dch, fifo->bch, fifo->ech); in hfcsusb_rx_frame()
832 if ((!!fifo->dch + !!fifo->bch + !!fifo->ech) != 1) { in hfcsusb_rx_frame()
839 if (fifo->dch) { in hfcsusb_rx_frame()
840 rx_skb = fifo->dch->rx_skb; in hfcsusb_rx_frame()
841 maxlen = fifo->dch->maxlen; in hfcsusb_rx_frame()
844 if (fifo->bch) { in hfcsusb_rx_frame()
845 if (test_bit(FLG_RX_OFF, &fifo->bch->Flags)) { in hfcsusb_rx_frame()
846 fifo->bch->dropcnt += len; in hfcsusb_rx_frame()
850 maxlen = bchannel_get_rxbuf(fifo->bch, len); in hfcsusb_rx_frame()
851 rx_skb = fifo->bch->rx_skb; in hfcsusb_rx_frame()
856 hw->name, fifo->bch->nr, len); in hfcsusb_rx_frame()
860 maxlen = fifo->bch->maxlen; in hfcsusb_rx_frame()
861 hdlc = test_bit(FLG_HDLC, &fifo->bch->Flags); in hfcsusb_rx_frame()
863 if (fifo->ech) { in hfcsusb_rx_frame()
864 rx_skb = fifo->ech->rx_skb; in hfcsusb_rx_frame()
865 maxlen = fifo->ech->maxlen; in hfcsusb_rx_frame()
869 if (fifo->dch || fifo->ech) { in hfcsusb_rx_frame()
873 if (fifo->dch) in hfcsusb_rx_frame()
874 fifo->dch->rx_skb = rx_skb; in hfcsusb_rx_frame()
875 if (fifo->ech) in hfcsusb_rx_frame()
876 fifo->ech->rx_skb = rx_skb; in hfcsusb_rx_frame()
918 if (fifo->dch) in hfcsusb_rx_frame()
919 recv_Dchannel(fifo->dch); in hfcsusb_rx_frame()
920 if (fifo->bch) in hfcsusb_rx_frame()
921 recv_Bchannel(fifo->bch, MISDN_ID_ANY, in hfcsusb_rx_frame()
923 if (fifo->ech) in hfcsusb_rx_frame()
924 recv_Echannel(fifo->ech, in hfcsusb_rx_frame()
943 recv_Bchannel(fifo->bch, MISDN_ID_ANY, false); in hfcsusb_rx_frame()
975 struct usb_fifo *fifo = context_iso_urb->owner_fifo; in rx_iso_complete() local
976 struct hfcsusb *hw = fifo->hw; in rx_iso_complete()
983 fifon = fifo->fifonum; in rx_iso_complete()
987 if (fifo->stop_gracefull) { in rx_iso_complete()
988 fifo->stop_gracefull = 0; in rx_iso_complete()
989 fifo->active = 0; in rx_iso_complete()
1010 if (fifo->active && !status) { in rx_iso_complete()
1012 maxlen = fifo->usb_packet_maxlen; in rx_iso_complete()
1040 if (fifo->last_urblen != maxlen) { in rx_iso_complete()
1053 hfcsusb_rx_frame(fifo, buf + 2, in rx_iso_complete()
1057 hfcsusb_rx_frame(fifo, buf, len, in rx_iso_complete()
1060 fifo->last_urblen = len; in rx_iso_complete()
1071 fill_isoc_urb(urb, fifo->hw->dev, fifo->pipe, in rx_iso_complete()
1073 fifo->usb_packet_maxlen, fifo->intervall, in rx_iso_complete()
1096 struct usb_fifo *fifo = (struct usb_fifo *) urb->context; in rx_int_complete() local
1097 struct hfcsusb *hw = fifo->hw; in rx_int_complete()
1101 if (fifo->stop_gracefull) { in rx_int_complete()
1102 fifo->stop_gracefull = 0; in rx_int_complete()
1103 fifo->active = 0; in rx_int_complete()
1109 fifon = fifo->fifonum; in rx_int_complete()
1110 if ((!fifo->active) || (urb->status)) { in rx_int_complete()
1116 fifo->urb->interval = 0; /* cancel automatic rescheduling */ in rx_int_complete()
1120 buf = fifo->buffer; in rx_int_complete()
1121 maxlen = fifo->usb_packet_maxlen; in rx_int_complete()
1132 if (fifo->last_urblen != fifo->usb_packet_maxlen) { in rx_int_complete()
1145 hfcsusb_rx_frame(fifo, buf + 2, in rx_int_complete()
1149 hfcsusb_rx_frame(fifo, buf, urb->actual_length, in rx_int_complete()
1152 fifo->last_urblen = urb->actual_length; in rx_int_complete()
1167 struct usb_fifo *fifo = context_iso_urb->owner_fifo; in tx_iso_complete() local
1168 struct hfcsusb *hw = fifo->hw; in tx_iso_complete()
1177 if (fifo->stop_gracefull) { in tx_iso_complete()
1178 fifo->stop_gracefull = 0; in tx_iso_complete()
1179 fifo->active = 0; in tx_iso_complete()
1184 if (fifo->dch) { in tx_iso_complete()
1185 tx_skb = fifo->dch->tx_skb; in tx_iso_complete()
1186 tx_idx = &fifo->dch->tx_idx; in tx_iso_complete()
1188 } else if (fifo->bch) { in tx_iso_complete()
1189 tx_skb = fifo->bch->tx_skb; in tx_iso_complete()
1190 tx_idx = &fifo->bch->tx_idx; in tx_iso_complete()
1191 hdlc = test_bit(FLG_HDLC, &fifo->bch->Flags); in tx_iso_complete()
1193 test_bit(FLG_FILLEMPTY, &fifo->bch->Flags)) in tx_iso_complete()
1202 fifon = fifo->fifonum; in tx_iso_complete()
1221 if (fifo->active && !status) { in tx_iso_complete()
1231 fill_isoc_urb(urb, fifo->hw->dev, fifo->pipe, in tx_iso_complete()
1233 fifo->usb_packet_maxlen, fifo->intervall, in tx_iso_complete()
1259 fifo->bit_line -= sink; in tx_iso_complete()
1260 current_len = (0 - fifo->bit_line) / 8; in tx_iso_complete()
1269 fifo->bit_line += current_len * 8; in tx_iso_complete()
1279 fifo->bit_line += 32; in tx_iso_complete()
1287 memset(p, fifo->bch->fill[0], in tx_iso_complete()
1323 fifo->bit_line -= sink; in tx_iso_complete()
1324 if (fifo->bit_line < BITLINE_INF) in tx_iso_complete()
1325 fifo->bit_line = BITLINE_INF; in tx_iso_complete()
1345 if (fifo->dch && get_next_dframe(fifo->dch)) in tx_iso_complete()
1346 tx_skb = fifo->dch->tx_skb; in tx_iso_complete()
1347 else if (fifo->bch && in tx_iso_complete()
1348 get_next_bframe(fifo->bch)) in tx_iso_complete()
1349 tx_skb = fifo->bch->tx_skb; in tx_iso_complete()
1386 start_isoc_chain(struct usb_fifo *fifo, int num_packets_per_urb, in start_isoc_chain() argument
1389 struct hfcsusb *hw = fifo->hw; in start_isoc_chain()
1394 hw->name, __func__, fifo->fifonum); in start_isoc_chain()
1398 if (!(fifo->iso[i].urb)) { in start_isoc_chain()
1399 fifo->iso[i].urb = in start_isoc_chain()
1401 if (!(fifo->iso[i].urb)) { in start_isoc_chain()
1404 hw->name, __func__, fifo->fifonum); in start_isoc_chain()
1406 fifo->iso[i].owner_fifo = (struct usb_fifo *) fifo; in start_isoc_chain()
1407 fifo->iso[i].indx = i; in start_isoc_chain()
1411 (fifo->usb_packet_maxlen * in start_isoc_chain()
1413 fill_isoc_urb(fifo->iso[i].urb, in start_isoc_chain()
1414 fifo->hw->dev, fifo->pipe, in start_isoc_chain()
1415 fifo->iso[i].buffer, in start_isoc_chain()
1417 fifo->usb_packet_maxlen, in start_isoc_chain()
1418 fifo->intervall, complete, in start_isoc_chain()
1419 &fifo->iso[i]); in start_isoc_chain()
1420 memset(fifo->iso[i].buffer, 0, in start_isoc_chain()
1421 sizeof(fifo->iso[i].buffer)); in start_isoc_chain()
1424 fifo->iso[i].urb-> in start_isoc_chain()
1427 fifo->iso[i].urb-> in start_isoc_chain()
1437 fifo->bit_line = BITLINE_INF; in start_isoc_chain()
1439 errcode = usb_submit_urb(fifo->iso[i].urb, GFP_KERNEL); in start_isoc_chain()
1440 fifo->active = (errcode >= 0) ? 1 : 0; in start_isoc_chain()
1441 fifo->stop_gracefull = 0; in start_isoc_chain()
1448 return fifo->active; in start_isoc_chain()
1452 stop_iso_gracefull(struct usb_fifo *fifo) in stop_iso_gracefull() argument
1454 struct hfcsusb *hw = fifo->hw; in stop_iso_gracefull()
1462 hw->name, __func__, fifo->fifonum, i); in stop_iso_gracefull()
1463 fifo->stop_gracefull = 1; in stop_iso_gracefull()
1469 while (fifo->stop_gracefull && timeout--) in stop_iso_gracefull()
1471 if (debug && fifo->stop_gracefull) in stop_iso_gracefull()
1473 hw->name, __func__, fifo->fifonum, i); in stop_iso_gracefull()
1478 stop_int_gracefull(struct usb_fifo *fifo) in stop_int_gracefull() argument
1480 struct hfcsusb *hw = fifo->hw; in stop_int_gracefull()
1487 hw->name, __func__, fifo->fifonum); in stop_int_gracefull()
1488 fifo->stop_gracefull = 1; in stop_int_gracefull()
1492 while (fifo->stop_gracefull && timeout--) in stop_int_gracefull()
1494 if (debug && fifo->stop_gracefull) in stop_int_gracefull()
1496 hw->name, __func__, fifo->fifonum); in stop_int_gracefull()
1501 start_int_fifo(struct usb_fifo *fifo) in start_int_fifo() argument
1503 struct hfcsusb *hw = fifo->hw; in start_int_fifo()
1508 hw->name, __func__, fifo->fifonum); in start_int_fifo()
1510 if (!fifo->urb) { in start_int_fifo()
1511 fifo->urb = usb_alloc_urb(0, GFP_KERNEL); in start_int_fifo()
1512 if (!fifo->urb) in start_int_fifo()
1515 usb_fill_int_urb(fifo->urb, fifo->hw->dev, fifo->pipe, in start_int_fifo()
1516 fifo->buffer, fifo->usb_packet_maxlen, in start_int_fifo()
1517 (usb_complete_t)rx_int_complete, fifo, fifo->intervall); in start_int_fifo()
1518 fifo->active = 1; in start_int_fifo()
1519 fifo->stop_gracefull = 0; in start_int_fifo()
1520 errcode = usb_submit_urb(fifo->urb, GFP_KERNEL); in start_int_fifo()
1524 fifo->active = 0; in start_int_fifo()
1553 struct usb_fifo *fifo; in reset_hfcsusb() local
1580 fifo = hw->fifos; in reset_hfcsusb()
1583 fifo[i].max_size = in reset_hfcsusb()
1585 fifo[i].last_urblen = 0; in reset_hfcsusb()