Lines Matching refs:urb
211 static struct urb *usbatm_pop_urb(struct usbatm_channel *channel) in usbatm_pop_urb()
213 struct urb *urb; in usbatm_pop_urb() local
221 urb = list_entry(channel->list.next, struct urb, urb_list); in usbatm_pop_urb()
222 list_del(&urb->urb_list); in usbatm_pop_urb()
225 return urb; in usbatm_pop_urb()
228 static int usbatm_submit_urb(struct urb *urb) in usbatm_submit_urb() argument
230 struct usbatm_channel *channel = urb->context; in usbatm_submit_urb()
236 ret = usb_submit_urb(urb, GFP_ATOMIC); in usbatm_submit_urb()
240 __func__, urb, ret); in usbatm_submit_urb()
243 urb->status = -EAGAIN; in usbatm_submit_urb()
247 list_add(&urb->urb_list, &channel->list); in usbatm_submit_urb()
258 static void usbatm_complete(struct urb *urb) in usbatm_complete() argument
260 struct usbatm_channel *channel = urb->context; in usbatm_complete()
262 int status = urb->status; in usbatm_complete()
271 list_add_tail(&urb->urb_list, &channel->list); in usbatm_complete()
283 __func__, urb, status); in usbatm_complete()
532 struct urb *urb; in usbatm_rx_process() local
534 while ((urb = usbatm_pop_urb(&instance->rx_channel))) { in usbatm_rx_process()
536 "%s: processing urb 0x%p", __func__, urb); in usbatm_rx_process()
538 if (usb_pipeisoc(urb->pipe)) { in usbatm_rx_process()
544 for (i = 0; i < urb->number_of_packets; i++) { in usbatm_rx_process()
545 if (!urb->iso_frame_desc[i].status) { in usbatm_rx_process()
546 unsigned int actual_length = urb->iso_frame_desc[i].actual_length; in usbatm_rx_process()
549 merge_start = (unsigned char *)urb->transfer_buffer + urb->iso_frame_desc[i].offset; in usbatm_rx_process()
556 atm_rldbg(instance, "%s: status %d in frame %d!\n", __func__, urb->status, i); in usbatm_rx_process()
567 if (!urb->status) in usbatm_rx_process()
568 usbatm_extract_cells(instance, urb->transfer_buffer, urb->actual_length); in usbatm_rx_process()
572 if (usbatm_submit_urb(urb)) in usbatm_rx_process()
586 struct urb *urb = NULL; in usbatm_tx_process() local
595 if (!urb) { in usbatm_tx_process()
596 urb = usbatm_pop_urb(&instance->tx_channel); in usbatm_tx_process()
597 if (!urb) in usbatm_tx_process()
599 buffer = urb->transfer_buffer; in usbatm_tx_process()
600 bytes_written = (urb->status == -EAGAIN) ? in usbatm_tx_process()
601 urb->transfer_buffer_length : 0; in usbatm_tx_process()
610 __func__, bytes_written, skb, urb); in usbatm_tx_process()
622 urb->transfer_buffer_length = bytes_written; in usbatm_tx_process()
624 if (usbatm_submit_urb(urb)) in usbatm_tx_process()
626 urb = NULL; in usbatm_tx_process()
1034 …instance = kzalloc(sizeof(*instance) + sizeof(struct urb *) * (num_rcv_urbs + num_snd_urbs), GFP_K… in usbatm_usb_probe()
1139 struct urb *urb; in usbatm_usb_probe() local
1142 urb = usb_alloc_urb(iso_packets, GFP_KERNEL); in usbatm_usb_probe()
1143 if (!urb) { in usbatm_usb_probe()
1149 instance->urbs[i] = urb; in usbatm_usb_probe()
1159 usb_fill_bulk_urb(urb, instance->usb_dev, channel->endpoint, in usbatm_usb_probe()
1163 urb->interval = 1; in usbatm_usb_probe()
1164 urb->transfer_flags = URB_ISO_ASAP; in usbatm_usb_probe()
1165 urb->number_of_packets = iso_packets; in usbatm_usb_probe()
1167 urb->iso_frame_desc[j].offset = channel->packet_size * j; in usbatm_usb_probe()
1168 urb->iso_frame_desc[j].length = channel->packet_size; in usbatm_usb_probe()
1174 list_add_tail(&urb->urb_list, &channel->list); in usbatm_usb_probe()
1177 __func__, urb->transfer_buffer, urb->transfer_buffer_length, urb); in usbatm_usb_probe()