Lines Matching refs:urb

285 static void pwc_isoc_handler(struct urb *urb)
287 struct pwc_device *pdev = (struct pwc_device *)urb->context;
288 struct device *dmadev = urb->dev->bus->sysdev;
292 trace_pwc_handler_enter(urb, pdev);
294 if (urb->status == -ENOENT || urb->status == -ECONNRESET ||
295 urb->status == -ESHUTDOWN) {
297 urb, urb->status == -ENOENT ? "" : "a");
304 if (urb->status != 0) {
308 switch(urb->status) {
317 urb->status, errmsg);
336 urb->transfer_dma,
337 urb->transfer_buffer_length,
345 for (i = 0; i < urb->number_of_packets; i++) {
346 fst = urb->iso_frame_desc[i].status;
347 flen = urb->iso_frame_desc[i].actual_length;
348 iso_buf = urb->transfer_buffer + urb->iso_frame_desc[i].offset;
387 urb->transfer_dma,
388 urb->transfer_buffer_length,
392 trace_pwc_handler_exit(urb, pdev);
394 i = usb_submit_urb(urb, GFP_ATOMIC);
396 PWC_ERROR("Error (%d) re-submitting urb in pwc_isoc_handler.\n", i);
403 struct urb *urb;
455 urb = usb_alloc_urb(ISO_FRAMES_PER_DESC, GFP_KERNEL);
456 if (urb == NULL) {
460 pdev->urbs[i] = urb;
461 PWC_DEBUG_MEMORY("Allocated URB at 0x%p\n", urb);
463 urb->interval = 1; // devik
464 urb->dev = udev;
465 urb->pipe = usb_rcvisocpipe(udev, pdev->vendpoint);
466 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
467 urb->transfer_buffer_length = ISO_BUFFER_SIZE;
468 urb->transfer_buffer = pwc_alloc_urb_buffer(udev,
469 urb->transfer_buffer_length,
470 &urb->transfer_dma);
471 if (urb->transfer_buffer == NULL) {
472 PWC_ERROR("Failed to allocate urb buffer %d\n", i);
476 urb->complete = pwc_isoc_handler;
477 urb->context = pdev;
478 urb->start_frame = 0;
479 urb->number_of_packets = ISO_FRAMES_PER_DESC;
481 urb->iso_frame_desc[j].offset = j * ISO_MAX_FRAME_SIZE;
482 urb->iso_frame_desc[j].length = pdev->vmax_packet_size;
526 struct urb *urb = pdev->urbs[i];
528 if (urb) {
530 if (urb->transfer_buffer)
531 pwc_free_urb_buffer(urb->dev,
532 urb->transfer_buffer_length,
533 urb->transfer_buffer,
534 urb->transfer_dma);
535 usb_free_urb(urb);