Lines Matching refs:urb

105 static void int_urb_complete(struct urb *urb);
355 #define urb_dev(urb) (&(urb)->dev->dev)
357 static inline void handle_regs_int_override(struct urb *urb)
359 struct zd_usb *usb = urb->context;
372 static inline void handle_regs_int(struct urb *urb)
374 struct zd_usb *usb = urb->context;
382 int_num = le16_to_cpu(*(__le16 *)(urb->transfer_buffer+2));
384 struct zd_mac *mac = zd_hw_mac(zd_usb_to_hw(urb->context));
386 memcpy(&mac->intr_buffer, urb->transfer_buffer,
391 len = urb->actual_length;
392 intr->read_regs.length = urb->actual_length;
396 memcpy(intr->read_regs.buffer, urb->transfer_buffer, len);
421 handle_regs_int_override(urb);
424 static void int_urb_complete(struct urb *urb)
431 switch (urb->status) {
440 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
443 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
447 if (urb->actual_length < sizeof(hdr)) {
448 dev_dbg_f(urb_dev(urb), "error: urb %p to small\n", urb);
452 hdr = urb->transfer_buffer;
454 dev_dbg_f(urb_dev(urb), "error: urb %p wrong type\n", urb);
458 /* USB_INT_ID_RETRY_FAILED triggered by tx-urb submit can override
461 usb = urb->context;
464 handle_regs_int_override(urb);
468 handle_regs_int(urb);
471 zd_mac_tx_failed(urb);
474 dev_dbg_f(urb_dev(urb), "error: urb %p unknown id %x\n", urb,
480 r = usb_submit_urb(urb, GFP_ATOMIC);
482 dev_dbg_f(urb_dev(urb), "error: resubmit urb %p err code %d\n",
483 urb, r);
484 /* TODO: add worker to reset intr->urb */
506 struct urb *urb;
509 urb = intr->urb;
511 return urb != NULL;
519 struct urb *urb;
523 urb = usb_alloc_urb(0, GFP_KERNEL);
524 if (!urb) {
531 if (intr->urb) {
536 intr->urb = urb;
548 usb_fill_int_urb(urb, udev, usb_rcvintpipe(udev, EP_INT_IN),
552 urb->transfer_dma = intr->buffer_dma;
553 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
555 dev_dbg_f(zd_usb_dev(usb), "submit urb %p\n", intr->urb);
556 r = usb_submit_urb(urb, GFP_KERNEL);
559 "Couldn't submit urb. Error number %d\n", r);
569 intr->urb = NULL;
572 usb_free_urb(urb);
582 struct urb *urb;
587 urb = intr->urb;
588 if (!urb) {
592 intr->urb = NULL;
598 usb_kill_urb(urb);
599 dev_dbg_f(zd_usb_dev(usb), "urb %p killed\n", urb);
600 usb_free_urb(urb);
648 static void rx_urb_complete(struct urb *urb)
657 switch (urb->status) {
666 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
669 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
673 buffer = urb->transfer_buffer;
674 length = urb->actual_length;
675 usb = urb->context;
682 dev_dbg_f(urb_dev(urb), "*** first fragment ***\n");
696 dev_dbg_f(urb_dev(urb), "*** second fragment ***\n");
708 r = usb_submit_urb(urb, GFP_ATOMIC);
710 dev_dbg_f(urb_dev(urb), "urb %p resubmit error %d\n", urb, r);
713 static struct urb *alloc_rx_urb(struct zd_usb *usb)
716 struct urb *urb;
719 urb = usb_alloc_urb(0, GFP_KERNEL);
720 if (!urb)
723 &urb->transfer_dma);
725 usb_free_urb(urb);
729 usb_fill_bulk_urb(urb, udev, usb_rcvbulkpipe(udev, EP_DATA_IN),
732 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
734 return urb;
737 static void free_rx_urb(struct urb *urb)
739 if (!urb)
741 usb_free_coherent(urb->dev, urb->transfer_buffer_length,
742 urb->transfer_buffer, urb->transfer_dma);
743 usb_free_urb(urb);
750 struct urb **urbs;
755 urbs = kcalloc(RX_URBS_COUNT, sizeof(struct urb *), GFP_KERNEL);
816 struct urb **urbs;
951 * @urb: a URB
956 static void tx_urb_complete(struct urb *urb)
964 skb = (struct sk_buff *)urb->context;
973 switch (urb->status) {
982 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
985 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
990 zd_mac_tx_to_dev(skb, urb->status);
991 usb_free_urb(urb);
995 usb_anchor_urb(urb, &tx->submitted);
996 r = usb_submit_urb(urb, GFP_ATOMIC);
998 usb_unanchor_urb(urb);
999 dev_dbg_f(urb_dev(urb), "error resubmit urb %p %d\n", urb, r);
1021 struct urb *urb;
1029 urb = usb_alloc_urb(0, GFP_ATOMIC);
1030 if (!urb) {
1035 usb_fill_bulk_urb(urb, udev, usb_sndbulkpipe(udev, EP_DATA_OUT),
1040 usb_anchor_urb(urb, &tx->submitted);
1042 r = usb_submit_urb(urb, GFP_ATOMIC);
1044 dev_dbg_f(zd_usb_dev(usb), "error submit urb %p %d\n", urb, r);
1045 usb_unanchor_urb(urb);
1052 usb_free_urb(urb);
1770 static void iowrite16v_urb_complete(struct urb *urb)
1772 struct zd_usb *usb = urb->context;
1774 if (urb->status && !usb->cmd_error)
1775 usb->cmd_error = urb->status;
1778 urb->actual_length != urb->transfer_buffer_length)
1785 struct urb *urb = usb->urb_async_waiting;
1787 if (!urb)
1793 urb->transfer_flags |= URB_NO_INTERRUPT;
1795 usb_anchor_urb(urb, &usb->submitted_cmds);
1796 r = usb_submit_urb(urb, GFP_KERNEL);
1798 usb_unanchor_urb(urb);
1806 usb_free_urb(urb);
1866 struct urb *urb;
1887 urb = usb_alloc_urb(0, GFP_KERNEL);
1888 if (!urb)
1909 usb_fill_int_urb(urb, udev, usb_sndintpipe(udev, EP_REGS_OUT),
1913 usb_fill_bulk_urb(urb, udev, usb_sndbulkpipe(udev, EP_REGS_OUT),
1916 urb->transfer_flags |= URB_FREE_BUFFER;
1930 usb->urb_async_waiting = urb;
1933 usb_free_urb(urb);