Lines Matching refs:urb
47 * @urb: the urb request to handle
58 static int handle_control_request(struct vudc *udc, struct urb *urb,
155 buf = (char *)urb->transfer_buffer;
156 if (urb->transfer_buffer_length > 0) {
170 if (urb->transfer_buffer_length > 1)
172 urb->actual_length = min_t(u32, 2,
173 urb->transfer_buffer_length);
184 struct urb *urb, struct vep *ep, int limit)
204 host_len = urb->transfer_buffer_length - urb->actual_length;
208 to_host = usb_pipein(urb->pipe);
222 ubuf_pos = urb->transfer_buffer + urb->actual_length;
225 if (urb->pipe & USB_DIR_IN)
230 urb->actual_length += len;
246 urb->status = 0;
250 urb->status = -EOVERFLOW;
252 urb->status = 0;
254 urb->status = 0;
270 if (urb->transfer_buffer_length == urb->actual_length) {
271 if (urb->transfer_flags & URB_ZERO_PACKET &&
275 urb->status = 0;
292 if (urb->status != -EINPROGRESS)
339 struct urb *urb = urb_p->urb;
342 if (urb->unlinked)
348 urb->status = -EPROTO;
364 urb->status = -EPIPE;
373 ret = handle_control_request(udc, urb,
374 (struct usb_ctrlrequest *) urb->setup_packet,
375 (&urb->status));
380 urb->setup_packet);
388 urb->status = -EPIPE;
389 urb->actual_length = 0;
398 urb->status = -EXDEV;
406 limit += urb->transfer_buffer_length;
410 total -= transfer(udc, urb, ep, limit);
412 if (urb->status == -EINPROGRESS)
421 if (!urb->unlinked) {
425 urb->unlinked);