Lines Matching refs:urb

118 static void int_urb_complete(struct urb *urb);
368 #define urb_dev(urb) (&(urb)->dev->dev) argument
370 static inline void handle_regs_int_override(struct urb *urb) in handle_regs_int_override() argument
372 struct zd_usb *usb = urb->context; in handle_regs_int_override()
384 static inline void handle_regs_int(struct urb *urb) in handle_regs_int() argument
386 struct zd_usb *usb = urb->context; in handle_regs_int()
394 int_num = le16_to_cpu(*(__le16 *)(urb->transfer_buffer+2)); in handle_regs_int()
396 struct zd_mac *mac = zd_hw_mac(zd_usb_to_hw(urb->context)); in handle_regs_int()
398 memcpy(&mac->intr_buffer, urb->transfer_buffer, in handle_regs_int()
403 len = urb->actual_length; in handle_regs_int()
404 intr->read_regs.length = urb->actual_length; in handle_regs_int()
408 memcpy(intr->read_regs.buffer, urb->transfer_buffer, len); in handle_regs_int()
432 handle_regs_int_override(urb); in handle_regs_int()
435 static void int_urb_complete(struct urb *urb) in int_urb_complete() argument
442 switch (urb->status) { in int_urb_complete()
451 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in int_urb_complete()
454 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in int_urb_complete()
458 if (urb->actual_length < sizeof(hdr)) { in int_urb_complete()
459 dev_dbg_f(urb_dev(urb), "error: urb %p to small\n", urb); in int_urb_complete()
463 hdr = urb->transfer_buffer; in int_urb_complete()
465 dev_dbg_f(urb_dev(urb), "error: urb %p wrong type\n", urb); in int_urb_complete()
472 usb = urb->context; in int_urb_complete()
475 handle_regs_int_override(urb); in int_urb_complete()
479 handle_regs_int(urb); in int_urb_complete()
482 zd_mac_tx_failed(urb); in int_urb_complete()
485 dev_dbg_f(urb_dev(urb), "error: urb %p unknown id %x\n", urb, in int_urb_complete()
491 r = usb_submit_urb(urb, GFP_ATOMIC); in int_urb_complete()
493 dev_dbg_f(urb_dev(urb), "error: resubmit urb %p err code %d\n", in int_urb_complete()
494 urb, r); in int_urb_complete()
517 struct urb *urb; in usb_int_enabled() local
520 urb = intr->urb; in usb_int_enabled()
522 return urb != NULL; in usb_int_enabled()
530 struct urb *urb; in zd_usb_enable_int() local
534 urb = usb_alloc_urb(0, GFP_KERNEL); in zd_usb_enable_int()
535 if (!urb) { in zd_usb_enable_int()
542 if (intr->urb) { in zd_usb_enable_int()
547 intr->urb = urb; in zd_usb_enable_int()
559 usb_fill_int_urb(urb, udev, usb_rcvintpipe(udev, EP_INT_IN), in zd_usb_enable_int()
563 urb->transfer_dma = intr->buffer_dma; in zd_usb_enable_int()
564 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in zd_usb_enable_int()
566 dev_dbg_f(zd_usb_dev(usb), "submit urb %p\n", intr->urb); in zd_usb_enable_int()
567 r = usb_submit_urb(urb, GFP_KERNEL); in zd_usb_enable_int()
580 intr->urb = NULL; in zd_usb_enable_int()
583 usb_free_urb(urb); in zd_usb_enable_int()
593 struct urb *urb; in zd_usb_disable_int() local
598 urb = intr->urb; in zd_usb_disable_int()
599 if (!urb) { in zd_usb_disable_int()
603 intr->urb = NULL; in zd_usb_disable_int()
609 usb_kill_urb(urb); in zd_usb_disable_int()
610 dev_dbg_f(zd_usb_dev(usb), "urb %p killed\n", urb); in zd_usb_disable_int()
611 usb_free_urb(urb); in zd_usb_disable_int()
661 static void rx_urb_complete(struct urb *urb) in rx_urb_complete() argument
669 switch (urb->status) { in rx_urb_complete()
678 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in rx_urb_complete()
681 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in rx_urb_complete()
685 buffer = urb->transfer_buffer; in rx_urb_complete()
686 length = urb->actual_length; in rx_urb_complete()
687 usb = urb->context; in rx_urb_complete()
694 dev_dbg_f(urb_dev(urb), "*** first fragment ***\n"); in rx_urb_complete()
708 dev_dbg_f(urb_dev(urb), "*** second fragment ***\n"); in rx_urb_complete()
720 r = usb_submit_urb(urb, GFP_ATOMIC); in rx_urb_complete()
722 dev_dbg_f(urb_dev(urb), "urb %p resubmit error %d\n", urb, r); in rx_urb_complete()
725 static struct urb *alloc_rx_urb(struct zd_usb *usb) in alloc_rx_urb()
728 struct urb *urb; in alloc_rx_urb() local
731 urb = usb_alloc_urb(0, GFP_KERNEL); in alloc_rx_urb()
732 if (!urb) in alloc_rx_urb()
735 &urb->transfer_dma); in alloc_rx_urb()
737 usb_free_urb(urb); in alloc_rx_urb()
741 usb_fill_bulk_urb(urb, udev, usb_rcvbulkpipe(udev, EP_DATA_IN), in alloc_rx_urb()
744 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in alloc_rx_urb()
746 return urb; in alloc_rx_urb()
749 static void free_rx_urb(struct urb *urb) in free_rx_urb() argument
751 if (!urb) in free_rx_urb()
753 usb_free_coherent(urb->dev, urb->transfer_buffer_length, in free_rx_urb()
754 urb->transfer_buffer, urb->transfer_dma); in free_rx_urb()
755 usb_free_urb(urb); in free_rx_urb()
762 struct urb **urbs; in __zd_usb_enable_rx()
767 urbs = kcalloc(RX_URBS_COUNT, sizeof(struct urb *), GFP_KERNEL); in __zd_usb_enable_rx()
828 struct urb **urbs; in __zd_usb_disable_rx()
968 static void tx_urb_complete(struct urb *urb) in tx_urb_complete() argument
976 skb = (struct sk_buff *)urb->context; in tx_urb_complete()
985 switch (urb->status) { in tx_urb_complete()
994 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in tx_urb_complete()
997 dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status); in tx_urb_complete()
1002 zd_mac_tx_to_dev(skb, urb->status); in tx_urb_complete()
1003 usb_free_urb(urb); in tx_urb_complete()
1007 usb_anchor_urb(urb, &tx->submitted); in tx_urb_complete()
1008 r = usb_submit_urb(urb, GFP_ATOMIC); in tx_urb_complete()
1010 usb_unanchor_urb(urb); in tx_urb_complete()
1011 dev_dbg_f(urb_dev(urb), "error resubmit urb %p %d\n", urb, r); in tx_urb_complete()
1033 struct urb *urb; in zd_usb_tx() local
1041 urb = usb_alloc_urb(0, GFP_ATOMIC); in zd_usb_tx()
1042 if (!urb) { in zd_usb_tx()
1047 usb_fill_bulk_urb(urb, udev, usb_sndbulkpipe(udev, EP_DATA_OUT), in zd_usb_tx()
1052 usb_anchor_urb(urb, &tx->submitted); in zd_usb_tx()
1054 r = usb_submit_urb(urb, GFP_ATOMIC); in zd_usb_tx()
1056 dev_dbg_f(zd_usb_dev(usb), "error submit urb %p %d\n", urb, r); in zd_usb_tx()
1057 usb_unanchor_urb(urb); in zd_usb_tx()
1064 usb_free_urb(urb); in zd_usb_tx()
1788 static void iowrite16v_urb_complete(struct urb *urb) in iowrite16v_urb_complete() argument
1790 struct zd_usb *usb = urb->context; in iowrite16v_urb_complete()
1792 if (urb->status && !usb->cmd_error) in iowrite16v_urb_complete()
1793 usb->cmd_error = urb->status; in iowrite16v_urb_complete()
1796 urb->actual_length != urb->transfer_buffer_length) in iowrite16v_urb_complete()
1803 struct urb *urb = usb->urb_async_waiting; in zd_submit_waiting_urb() local
1805 if (!urb) in zd_submit_waiting_urb()
1811 urb->transfer_flags |= URB_NO_INTERRUPT; in zd_submit_waiting_urb()
1813 usb_anchor_urb(urb, &usb->submitted_cmds); in zd_submit_waiting_urb()
1814 r = usb_submit_urb(urb, GFP_KERNEL); in zd_submit_waiting_urb()
1816 usb_unanchor_urb(urb); in zd_submit_waiting_urb()
1824 usb_free_urb(urb); in zd_submit_waiting_urb()
1884 struct urb *urb; in zd_usb_iowrite16v_async() local
1910 urb = usb_alloc_urb(0, GFP_KERNEL); in zd_usb_iowrite16v_async()
1911 if (!urb) in zd_usb_iowrite16v_async()
1933 usb_fill_int_urb(urb, udev, usb_sndintpipe(udev, EP_REGS_OUT), in zd_usb_iowrite16v_async()
1937 usb_fill_bulk_urb(urb, udev, usb_sndbulkpipe(udev, EP_REGS_OUT), in zd_usb_iowrite16v_async()
1940 urb->transfer_flags |= URB_FREE_BUFFER; in zd_usb_iowrite16v_async()
1954 usb->urb_async_waiting = urb; in zd_usb_iowrite16v_async()
1957 usb_free_urb(urb); in zd_usb_iowrite16v_async()