Lines Matching refs:urb

272  * @urb:		URB.
288 struct urb *urb;
422 * @urb: URB.
428 static int octeon_alloc_temp_buffer(struct urb *urb, gfp_t mem_flags)
432 if (urb->num_sgs || urb->sg ||
433 (urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP) ||
434 !(urb->transfer_buffer_length % sizeof(u32)))
437 temp = kmalloc(ALIGN(urb->transfer_buffer_length, sizeof(u32)) +
442 temp->orig_buffer = urb->transfer_buffer;
443 if (usb_urb_dir_out(urb))
444 memcpy(temp->data, urb->transfer_buffer,
445 urb->transfer_buffer_length);
446 urb->transfer_buffer = temp->data;
447 urb->transfer_flags |= URB_ALIGNED_TEMP_BUFFER;
454 * @urb: URB.
458 static void octeon_free_temp_buffer(struct urb *urb)
463 if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER))
466 temp = container_of(urb->transfer_buffer, struct octeon_temp_buffer,
468 if (usb_urb_dir_in(urb)) {
469 if (usb_pipeisoc(urb->pipe))
470 length = urb->transfer_buffer_length;
472 length = urb->actual_length;
474 memcpy(temp->orig_buffer, urb->transfer_buffer, length);
476 urb->transfer_buffer = temp->orig_buffer;
477 urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER;
484 * @urb: URB.
487 static int octeon_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
492 ret = octeon_alloc_temp_buffer(urb, mem_flags);
496 ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags);
498 octeon_free_temp_buffer(urb);
506 * @urb: URB.
508 static void octeon_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
510 usb_hcd_unmap_urb_for_dma(hcd, urb);
511 octeon_free_temp_buffer(urb);
1962 struct urb *urb)
1968 urb->actual_length = bytes_transferred;
1970 urb->actual_length = 0;
1972 urb->hcpriv = NULL;
1977 if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) {
1984 (struct cvmx_usb_iso_packet *)urb->setup_packet;
1986 urb->actual_length = 0;
1987 for (i = 0; i < urb->number_of_packets; i++) {
1989 urb->iso_frame_desc[i].status = 0;
1990 urb->iso_frame_desc[i].actual_length =
1992 urb->actual_length +=
1993 urb->iso_frame_desc[i].actual_length;
1996 i, urb->number_of_packets,
1999 urb->iso_frame_desc[i].status = -EREMOTEIO;
2004 urb->setup_packet = NULL;
2009 urb->status = 0;
2012 if (urb->status == 0)
2013 urb->status = -ENOENT;
2018 urb->status = -EPIPE;
2023 urb->status = -EPIPE;
2028 urb->status = -EREMOTEIO;
2036 urb->status = -EPROTO;
2039 usb_hcd_unlink_urb_from_ep(octeon_to_hcd(usb), urb);
2041 usb_hcd_giveback_urb(octeon_to_hcd(usb), urb, urb->status);
2098 transaction->urb);
2120 * @urb: URB for the callback
2134 struct urb *urb)
2153 transaction->urb = urb;
2181 * @urb: URB.
2188 struct urb *urb)
2191 urb->transfer_dma,
2192 urb->transfer_buffer_length,
2197 urb);
2205 * @urb: URB returned when the callback is called.
2212 struct urb *urb)
2216 urb->transfer_dma,
2217 urb->transfer_buffer_length,
2222 urb);
2230 * @urb: URB.
2237 struct urb *urb)
2239 int buffer_length = urb->transfer_buffer_length;
2240 u64 control_header = urb->setup_dma;
2248 urb->transfer_dma, buffer_length,
2253 urb);
2261 * @urb: URB returned when the callback is called.
2268 struct urb *urb)
2272 packets = (struct cvmx_usb_iso_packet *)urb->setup_packet;
2275 urb->transfer_dma,
2276 urb->transfer_buffer_length,
2278 urb->start_frame,
2279 urb->number_of_packets,
2280 packets, urb);
3068 struct urb *urb,
3077 struct usb_host_endpoint *ep = urb->ep;
3080 urb->status = 0;
3083 rc = usb_hcd_link_urb_to_ep(hcd, urb);
3095 switch (usb_pipetype(urb->pipe)) {
3109 switch (urb->dev->speed) {
3130 struct usb_device *dev = urb->dev;
3151 pipe = cvmx_usb_open_pipe(usb, usb_pipedevice(urb->pipe),
3152 usb_pipeendpoint(urb->pipe), speed,
3156 usb_pipein(urb->pipe) ?
3159 urb->interval,
3164 usb_hcd_unlink_urb_from_ep(hcd, urb);
3174 switch (usb_pipetype(urb->pipe)) {
3177 usb_pipedevice(urb->pipe),
3178 usb_pipeendpoint(urb->pipe));
3183 iso_packet = kmalloc_array(urb->number_of_packets,
3189 for (i = 0; i < urb->number_of_packets; i++) {
3191 urb->iso_frame_desc[i].offset;
3193 urb->iso_frame_desc[i].length;
3201 urb->setup_packet = (char *)iso_packet;
3203 pipe, urb);
3209 urb->setup_packet = NULL;
3216 usb_pipedevice(urb->pipe),
3217 usb_pipeendpoint(urb->pipe));
3218 transaction = cvmx_usb_submit_interrupt(usb, pipe, urb);
3222 usb_pipedevice(urb->pipe),
3223 usb_pipeendpoint(urb->pipe));
3224 transaction = cvmx_usb_submit_control(usb, pipe, urb);
3228 usb_pipedevice(urb->pipe),
3229 usb_pipeendpoint(urb->pipe));
3230 transaction = cvmx_usb_submit_bulk(usb, pipe, urb);
3234 usb_hcd_unlink_urb_from_ep(hcd, urb);
3239 urb->hcpriv = transaction;
3245 struct urb *urb,
3252 if (!urb->dev)
3257 rc = usb_hcd_check_unlink_urb(hcd, urb, status);
3261 urb->status = status;
3262 cvmx_usb_cancel(usb, urb->ep->hcpriv, urb->hcpriv);