Lines Matching refs:urbs
858 static void ucan_cleanup_rx_urbs(struct ucan_priv *up, struct urb **urbs) in ucan_cleanup_rx_urbs() argument
863 if (urbs[i]) { in ucan_cleanup_rx_urbs()
864 usb_unanchor_urb(urbs[i]); in ucan_cleanup_rx_urbs()
867 urbs[i]->transfer_buffer, in ucan_cleanup_rx_urbs()
868 urbs[i]->transfer_dma); in ucan_cleanup_rx_urbs()
869 usb_free_urb(urbs[i]); in ucan_cleanup_rx_urbs()
873 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_cleanup_rx_urbs()
877 struct urb **urbs) in ucan_prepare_and_anchor_rx_urbs() argument
881 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_prepare_and_anchor_rx_urbs()
886 urbs[i] = usb_alloc_urb(0, GFP_KERNEL); in ucan_prepare_and_anchor_rx_urbs()
887 if (!urbs[i]) in ucan_prepare_and_anchor_rx_urbs()
892 GFP_KERNEL, &urbs[i]->transfer_dma); in ucan_prepare_and_anchor_rx_urbs()
895 usb_free_urb(urbs[i]); in ucan_prepare_and_anchor_rx_urbs()
896 urbs[i] = NULL; in ucan_prepare_and_anchor_rx_urbs()
900 usb_fill_bulk_urb(urbs[i], up->udev, in ucan_prepare_and_anchor_rx_urbs()
908 urbs[i]->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in ucan_prepare_and_anchor_rx_urbs()
910 usb_anchor_urb(urbs[i], &up->rx_urbs); in ucan_prepare_and_anchor_rx_urbs()
916 ucan_cleanup_rx_urbs(up, urbs); in ucan_prepare_and_anchor_rx_urbs()
925 static int ucan_submit_rx_urbs(struct ucan_priv *up, struct urb **urbs) in ucan_submit_rx_urbs() argument
933 ret = usb_submit_urb(urbs[i], GFP_KERNEL); in ucan_submit_rx_urbs()
944 usb_free_urb(urbs[i]); in ucan_submit_rx_urbs()
945 urbs[i] = NULL; in ucan_submit_rx_urbs()
951 ucan_cleanup_rx_urbs(up, urbs); in ucan_submit_rx_urbs()
964 struct urb *urbs[UCAN_MAX_RX_URBS]; in ucan_open() local
974 ret = ucan_prepare_and_anchor_rx_urbs(up, urbs); in ucan_open()
1010 ret = ucan_submit_rx_urbs(up, urbs); in ucan_open()
1040 ucan_cleanup_rx_urbs(up, urbs); in ucan_open()