Lines Matching refs:urb
22 struct urb urb; member
29 static void musb_host_complete_urb(struct urb *urb) in musb_host_complete_urb() argument
31 urb->dev->status &= ~USB_ST_NOT_PROC; in musb_host_complete_urb()
32 urb->dev->act_len = urb->actual_length; in musb_host_complete_urb()
35 static void construct_urb(struct urb *urb, struct usb_host_endpoint *hep, in construct_urb() argument
43 memset(urb, 0, sizeof(struct urb)); in construct_urb()
46 INIT_LIST_HEAD(&urb->urb_list); in construct_urb()
47 urb->ep = hep; in construct_urb()
48 urb->complete = musb_host_complete_urb; in construct_urb()
49 urb->status = -EINPROGRESS; in construct_urb()
50 urb->dev = dev; in construct_urb()
51 urb->pipe = pipe; in construct_urb()
52 urb->transfer_buffer = buffer; in construct_urb()
53 urb->transfer_dma = (unsigned long)buffer; in construct_urb()
54 urb->transfer_buffer_length = len; in construct_urb()
55 urb->setup_packet = (unsigned char *)setup; in construct_urb()
57 urb->ep->desc.wMaxPacketSize = in construct_urb()
60 urb->ep->desc.bmAttributes = endpoint_type; in construct_urb()
61 urb->ep->desc.bEndpointAddress = in construct_urb()
63 urb->ep->desc.bInterval = interval; in construct_urb()
66 static int submit_urb(struct usb_hcd *hcd, struct urb *urb) in submit_urb() argument
72 ret = musb_urb_enqueue(hcd, urb, 0); in submit_urb()
78 timeout = get_timer(0) + USB_TIMEOUT_MS(urb->pipe); in submit_urb()
83 } while (urb->status == -EINPROGRESS && in submit_urb()
86 if (urb->status == -EINPROGRESS) in submit_urb()
87 musb_urb_dequeue(hcd, urb, -ETIME); in submit_urb()
89 return urb->status; in submit_urb()
96 construct_urb(&host->urb, &host->hep, dev, USB_ENDPOINT_XFER_CONTROL, in _musb_submit_control_msg()
103 return submit_urb(&host->hcd, &host->urb); in _musb_submit_control_msg()
109 construct_urb(&host->urb, &host->hep, dev, USB_ENDPOINT_XFER_BULK, in _musb_submit_bulk_msg()
111 return submit_urb(&host->hcd, &host->urb); in _musb_submit_bulk_msg()
118 construct_urb(&host->urb, &host->hep, dev, USB_ENDPOINT_XFER_INT, pipe, in _musb_submit_int_msg()
120 return submit_urb(&host->hcd, &host->urb); in _musb_submit_int_msg()
144 construct_urb(&queue->urb, &queue->hep, dev, USB_ENDPOINT_XFER_INT, in _musb_create_int_queue()
147 ret = musb_urb_enqueue(&host->hcd, &queue->urb, 0); in _musb_create_int_queue()
161 int index = usb_pipein(queue->urb.pipe) * 16 + in _musb_destroy_int_queue()
162 usb_pipeendpoint(queue->urb.pipe); in _musb_destroy_int_queue()
164 if (queue->urb.status == -EINPROGRESS) in _musb_destroy_int_queue()
165 musb_urb_dequeue(&host->hcd, &queue->urb, -ETIME); in _musb_destroy_int_queue()
175 if (queue->urb.status != -EINPROGRESS) in _musb_poll_int_queue()
180 if (queue->urb.status != -EINPROGRESS) in _musb_poll_int_queue()
181 return queue->urb.transfer_buffer; /* Done */ in _musb_poll_int_queue()