Lines Matching refs:urb

91 	struct urb *urb;  member
281 as->urb = usb_alloc_urb(numisoframes, GFP_KERNEL); in alloc_async()
282 if (!as->urb) { in alloc_async()
296 for (i = 0; i < as->urb->num_sgs; i++) { in free_async()
297 if (sg_page(&as->urb->sg[i])) in free_async()
298 kfree(sg_virt(&as->urb->sg[i])); in free_async()
300 kfree(as->urb->sg); in free_async()
301 kfree(as->urb->transfer_buffer); in free_async()
302 kfree(as->urb->setup_packet); in free_async()
303 usb_free_urb(as->urb); in free_async()
401 static void snoop_urb_data(struct urb *urb, unsigned len) in snoop_urb_data() argument
408 if (urb->num_sgs == 0) { in snoop_urb_data()
410 urb->transfer_buffer, len, 1); in snoop_urb_data()
414 for (i = 0; i < urb->num_sgs && len; i++) { in snoop_urb_data()
417 sg_virt(&urb->sg[i]), size, 1); in snoop_urb_data()
422 static int copy_urb_data_to_user(u8 __user *userbuffer, struct urb *urb) in copy_urb_data_to_user() argument
426 if (urb->number_of_packets > 0) /* Isochronous */ in copy_urb_data_to_user()
427 len = urb->transfer_buffer_length; in copy_urb_data_to_user()
429 len = urb->actual_length; in copy_urb_data_to_user()
431 if (urb->num_sgs == 0) { in copy_urb_data_to_user()
432 if (copy_to_user(userbuffer, urb->transfer_buffer, len)) in copy_urb_data_to_user()
437 for (i = 0; i < urb->num_sgs && len; i++) { in copy_urb_data_to_user()
439 if (copy_to_user(userbuffer, sg_virt(&urb->sg[i]), size)) in copy_urb_data_to_user()
455 struct urb *urb; in cancel_bulk_urbs() local
478 urb = as->urb; in cancel_bulk_urbs()
479 usb_get_urb(urb); in cancel_bulk_urbs()
481 usb_unlink_urb(urb); in cancel_bulk_urbs()
482 usb_put_urb(urb); in cancel_bulk_urbs()
489 static void async_completed(struct urb *urb) in async_completed() argument
491 struct async *as = urb->context; in async_completed()
501 as->status = urb->status; in async_completed()
513 snoop(&urb->dev->dev, "urb complete\n"); in async_completed()
514 snoop_urb(urb->dev, as->userurb, urb->pipe, urb->actual_length, in async_completed()
516 if ((urb->transfer_flags & URB_DIR_MASK) == URB_DIR_IN) in async_completed()
517 snoop_urb_data(urb, urb->actual_length); in async_completed()
535 struct urb *urb; in destroy_async() local
543 urb = as->urb; in destroy_async()
544 usb_get_urb(urb); in destroy_async()
548 usb_kill_urb(urb); in destroy_async()
549 usb_put_urb(urb); in destroy_async()
987 ret = usbfs_increase_memory_usage(PAGE_SIZE + sizeof(struct urb) + in proc_control()
1051 usbfs_decrease_memory_usage(PAGE_SIZE + sizeof(struct urb) + in proc_control()
1082 ret = usbfs_increase_memory_usage(len1 + sizeof(struct urb)); in proc_bulk()
1126 usbfs_decrease_memory_usage(len1 + sizeof(struct urb)); in proc_bulk()
1442 u += sizeof(struct async) + sizeof(struct urb) + uurb->buffer_length + in proc_do_submiturb()
1450 as->urb->sg = kmalloc(num_sgs * sizeof(struct scatterlist), in proc_do_submiturb()
1452 if (!as->urb->sg) { in proc_do_submiturb()
1456 as->urb->num_sgs = num_sgs; in proc_do_submiturb()
1457 sg_init_table(as->urb->sg, as->urb->num_sgs); in proc_do_submiturb()
1460 for (i = 0; i < as->urb->num_sgs; i++) { in proc_do_submiturb()
1467 sg_set_buf(&as->urb->sg[i], buf, u); in proc_do_submiturb()
1479 as->urb->transfer_buffer = kmalloc(uurb->buffer_length, in proc_do_submiturb()
1481 if (!as->urb->transfer_buffer) { in proc_do_submiturb()
1487 if (copy_from_user(as->urb->transfer_buffer, in proc_do_submiturb()
1500 memset(as->urb->transfer_buffer, 0, in proc_do_submiturb()
1504 as->urb->dev = ps->dev; in proc_do_submiturb()
1505 as->urb->pipe = (uurb->type << 30) | in proc_do_submiturb()
1524 as->urb->transfer_flags = u; in proc_do_submiturb()
1526 as->urb->transfer_buffer_length = uurb->buffer_length; in proc_do_submiturb()
1527 as->urb->setup_packet = (unsigned char *)dr; in proc_do_submiturb()
1529 as->urb->start_frame = uurb->start_frame; in proc_do_submiturb()
1530 as->urb->number_of_packets = number_of_packets; in proc_do_submiturb()
1531 as->urb->stream_id = stream_id; in proc_do_submiturb()
1534 as->urb->interval = 1 << min(15, ep->desc.bInterval - 1); in proc_do_submiturb()
1536 as->urb->interval = ep->desc.bInterval; in proc_do_submiturb()
1537 as->urb->context = as; in proc_do_submiturb()
1538 as->urb->complete = async_completed; in proc_do_submiturb()
1540 as->urb->iso_frame_desc[u].offset = totlen; in proc_do_submiturb()
1541 as->urb->iso_frame_desc[u].length = isopkt[u].length; in proc_do_submiturb()
1557 snoop_urb(ps->dev, as->userurb, as->urb->pipe, in proc_do_submiturb()
1558 as->urb->transfer_buffer_length, 0, SUBMIT, in proc_do_submiturb()
1561 snoop_urb_data(as->urb, as->urb->transfer_buffer_length); in proc_do_submiturb()
1590 ret = usb_submit_urb(as->urb, GFP_ATOMIC); in proc_do_submiturb()
1593 ret = usb_submit_urb(as->urb, GFP_KERNEL); in proc_do_submiturb()
1599 snoop_urb(ps->dev, as->userurb, as->urb->pipe, in proc_do_submiturb()
1628 struct urb *urb; in proc_unlinkurb() local
1639 urb = as->urb; in proc_unlinkurb()
1640 usb_get_urb(urb); in proc_unlinkurb()
1643 usb_kill_urb(urb); in proc_unlinkurb()
1644 usb_put_urb(urb); in proc_unlinkurb()
1651 struct urb *urb = as->urb; in processcompl() local
1656 if (as->userbuffer && urb->actual_length) { in processcompl()
1657 if (copy_urb_data_to_user(as->userbuffer, urb)) in processcompl()
1662 if (put_user(urb->actual_length, &userurb->actual_length)) in processcompl()
1664 if (put_user(urb->error_count, &userurb->error_count)) in processcompl()
1667 if (usb_endpoint_xfer_isoc(&urb->ep->desc)) { in processcompl()
1668 for (i = 0; i < urb->number_of_packets; i++) { in processcompl()
1669 if (put_user(urb->iso_frame_desc[i].actual_length, in processcompl()
1672 if (put_user(urb->iso_frame_desc[i].status, in processcompl()
1820 struct urb *urb = as->urb; in processcompl_compat() local
1825 if (as->userbuffer && urb->actual_length) { in processcompl_compat()
1826 if (copy_urb_data_to_user(as->userbuffer, urb)) in processcompl_compat()
1831 if (put_user(urb->actual_length, &userurb->actual_length)) in processcompl_compat()
1833 if (put_user(urb->error_count, &userurb->error_count)) in processcompl_compat()
1836 if (usb_endpoint_xfer_isoc(&urb->ep->desc)) { in processcompl_compat()
1837 for (i = 0; i < urb->number_of_packets; i++) { in processcompl_compat()
1838 if (put_user(urb->iso_frame_desc[i].actual_length, in processcompl_compat()
1841 if (put_user(urb->iso_frame_desc[i].status, in processcompl_compat()