Lines Matching refs:urb

1136 	/* Because the urb command could not fully be parsed,
1150 * Check if the first message of the received urb is valid, that is to
1246 * This function looks for the next start of frame in the urb buffer
1292 * @urb: last urb buffer received.
1299 * number of bytes consumed from @urb if successful.
1306 struct urb *urb)
1313 es58x_dev->rx_cmd_buf_len, urb->actual_length);
1314 ret = es58x_copy_to_cmd_buf(es58x_dev, urb->transfer_buffer, cpy_len);
1325 tmp_cmd_buf_len + urb->actual_length);
1327 "Error code: %pe, es58x_dev->rx_cmd_buf_len: %d, urb->actual_length: %u\n",
1329 tmp_cmd_buf_len, urb->actual_length);
1331 es58x_print_hex_dump(urb->transfer_buffer, urb->actual_length);
1332 return urb->actual_length;
1342 * @urb: last urb buffer received.
1344 * The device might send urb in bulk format (i.e. several URB commands
1346 * contained in the urb.
1349 * number of bytes consumed from @urb if successful.
1356 struct urb *urb)
1359 u8 *raw_cmd = urb->transfer_buffer;
1360 s32 raw_cmd_len = urb->actual_length;
1364 ret = es58x_handle_incomplete_cmd(es58x_dev, urb);
1402 * @urb: last urb buffer received.
1407 * Checks urb status, calls read function and resubmits urb read
1410 static void es58x_read_bulk_callback(struct urb *urb)
1412 struct es58x_device *es58x_dev = urb->context;
1416 switch (urb->status) {
1422 __func__, ERR_PTR(urb->status));
1423 es58x_print_hex_dump_debug(urb->transfer_buffer,
1424 urb->transfer_buffer_length);
1429 __func__, ERR_PTR(urb->status));
1435 __func__, ERR_PTR(urb->status));
1440 __func__, ERR_PTR(urb->status));
1445 __func__, ERR_PTR(urb->status));
1449 ret = es58x_split_urb(es58x_dev, urb);
1453 es58x_print_hex_dump_debug(urb->transfer_buffer,
1454 urb->actual_length);
1456 /* Because the urb command could not be parsed,
1464 ret = usb_submit_urb(urb, GFP_ATOMIC);
1471 "Failed resubmitting read bulk urb: %pe\n",
1476 usb_free_coherent(urb->dev, urb->transfer_buffer_length,
1477 urb->transfer_buffer, urb->transfer_dma);
1482 * @urb: urb buffer which was previously submitted.
1487 * Puts the @urb back to the urbs idle anchor and tries to restart the
1490 static void es58x_write_bulk_callback(struct urb *urb)
1492 struct net_device *netdev = urb->context;
1495 switch (urb->status) {
1502 __func__, ERR_PTR(urb->status));
1503 es58x_print_hex_dump(urb->transfer_buffer,
1504 urb->transfer_buffer_length);
1510 __func__, ERR_PTR(urb->status));
1511 usb_free_coherent(urb->dev,
1513 urb->transfer_buffer, urb->transfer_dma);
1519 __func__, ERR_PTR(urb->status));
1523 usb_anchor_urb(urb, &es58x_dev->tx_urbs_idle);
1531 * @urb: URB to be allocated.
1544 static int es58x_alloc_urb(struct es58x_device *es58x_dev, struct urb **urb,
1547 *urb = usb_alloc_urb(0, mem_flags);
1548 if (!*urb) {
1554 mem_flags, &(*urb)->transfer_dma);
1557 usb_free_urb(*urb);
1561 (*urb)->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
1582 static struct urb *es58x_get_tx_urb(struct es58x_device *es58x_dev)
1585 struct urb *urb = usb_get_from_anchor(&es58x_dev->tx_urbs_idle);
1587 if (!urb) {
1592 if (es58x_alloc_urb(es58x_dev, &urb, &buf, tx_buf_len,
1596 usb_fill_bulk_urb(urb, es58x_dev->udev, es58x_dev->tx_pipe,
1599 return urb;
1604 struct urb *tmp = usb_get_from_anchor(&es58x_dev->tx_urbs_idle);
1614 return urb;
1620 * @urb: URB to be sent.
1625 static int es58x_submit_urb(struct es58x_device *es58x_dev, struct urb *urb,
1630 es58x_set_crc(urb->transfer_buffer, urb->transfer_buffer_length);
1631 urb->context = netdev;
1632 usb_anchor_urb(urb, &es58x_dev->tx_urbs_busy);
1633 ret = usb_submit_urb(urb, GFP_ATOMIC);
1635 netdev_err(netdev, "%s: USB send urb failure: %pe\n",
1637 usb_unanchor_urb(urb);
1638 usb_free_coherent(urb->dev,
1640 urb->transfer_buffer, urb->transfer_dma);
1642 usb_free_urb(urb);
1666 struct urb *urb;
1678 urb = es58x_get_tx_urb(es58x_dev);
1679 if (!urb)
1682 urb_cmd = urb->transfer_buffer;
1687 urb->transfer_buffer_length = urb_cmd_len;
1689 return es58x_submit_urb(es58x_dev, urb, netdev);
1705 struct urb *urb;
1711 ret = es58x_alloc_urb(es58x_dev, &urb, &buf, rx_buf_len,
1716 usb_fill_bulk_urb(urb, es58x_dev->udev, es58x_dev->rx_pipe,
1719 usb_anchor_urb(urb, &es58x_dev->rx_urbs);
1721 ret = usb_submit_urb(urb, GFP_KERNEL);
1723 usb_unanchor_urb(urb);
1725 buf, urb->transfer_dma);
1726 usb_free_urb(urb);
1729 usb_free_urb(urb);
1748 struct urb *urb;
1756 while ((urb = usb_get_from_anchor(&es58x_dev->tx_urbs_idle)) != NULL) {
1757 usb_free_coherent(urb->dev, es58x_dev->param->tx_urb_cmd_max_len,
1758 urb->transfer_buffer, urb->transfer_dma);
1759 usb_free_urb(urb);
1851 * es58x_xmit_commit() - Send the bulk urb.