Lines Matching refs:uurb
1286 static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb, in proc_do_submiturb() argument
1300 if (uurb->flags & ~(USBDEVFS_URB_ISO_ASAP | in proc_do_submiturb()
1307 if (uurb->buffer_length > 0 && !uurb->buffer) in proc_do_submiturb()
1309 if (!(uurb->type == USBDEVFS_URB_TYPE_CONTROL && in proc_do_submiturb()
1310 (uurb->endpoint & ~USB_ENDPOINT_DIR_MASK) == 0)) { in proc_do_submiturb()
1311 ifnum = findintfep(ps->dev, uurb->endpoint); in proc_do_submiturb()
1318 ep = ep_to_host_endpoint(ps->dev, uurb->endpoint); in proc_do_submiturb()
1321 is_in = (uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0; in proc_do_submiturb()
1324 switch (uurb->type) { in proc_do_submiturb()
1329 if (uurb->buffer_length < 8) in proc_do_submiturb()
1334 if (copy_from_user(dr, uurb->buffer, 8)) { in proc_do_submiturb()
1338 if (uurb->buffer_length < (le16_to_cpup(&dr->wLength) + 8)) { in proc_do_submiturb()
1346 uurb->buffer_length = le16_to_cpup(&dr->wLength); in proc_do_submiturb()
1347 uurb->buffer += 8; in proc_do_submiturb()
1348 if ((dr->bRequestType & USB_DIR_IN) && uurb->buffer_length) { in proc_do_submiturb()
1350 uurb->endpoint |= USB_DIR_IN; in proc_do_submiturb()
1353 uurb->endpoint &= ~USB_DIR_IN; in proc_do_submiturb()
1372 uurb->type = USBDEVFS_URB_TYPE_INTERRUPT; in proc_do_submiturb()
1375 num_sgs = DIV_ROUND_UP(uurb->buffer_length, USB_SG_SIZE); in proc_do_submiturb()
1379 stream_id = uurb->stream_id; in proc_do_submiturb()
1390 if (uurb->number_of_packets < 1 || in proc_do_submiturb()
1391 uurb->number_of_packets > 128) in proc_do_submiturb()
1395 number_of_packets = uurb->number_of_packets; in proc_do_submiturb()
1419 uurb->buffer_length = totlen; in proc_do_submiturb()
1426 if (uurb->buffer_length >= USBFS_XFER_MAX) { in proc_do_submiturb()
1430 if (uurb->buffer_length > 0 && in proc_do_submiturb()
1432 uurb->buffer, uurb->buffer_length)) { in proc_do_submiturb()
1442 u += sizeof(struct async) + sizeof(struct urb) + uurb->buffer_length + in proc_do_submiturb()
1459 totlen = uurb->buffer_length; in proc_do_submiturb()
1470 if (copy_from_user(buf, uurb->buffer, u)) { in proc_do_submiturb()
1474 uurb->buffer += u; in proc_do_submiturb()
1478 } else if (uurb->buffer_length > 0) { in proc_do_submiturb()
1479 as->urb->transfer_buffer = kmalloc(uurb->buffer_length, in proc_do_submiturb()
1488 uurb->buffer, in proc_do_submiturb()
1489 uurb->buffer_length)) { in proc_do_submiturb()
1493 } else if (uurb->type == USBDEVFS_URB_TYPE_ISO) { in proc_do_submiturb()
1501 uurb->buffer_length); in proc_do_submiturb()
1505 as->urb->pipe = (uurb->type << 30) | in proc_do_submiturb()
1506 __create_pipe(ps->dev, uurb->endpoint & 0xf) | in proc_do_submiturb()
1507 (uurb->endpoint & USB_DIR_IN); in proc_do_submiturb()
1514 if (uurb->flags & USBDEVFS_URB_ISO_ASAP) in proc_do_submiturb()
1516 if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK && is_in) in proc_do_submiturb()
1518 if (uurb->flags & USBDEVFS_URB_NO_FSBR) in proc_do_submiturb()
1520 if (uurb->flags & USBDEVFS_URB_ZERO_PACKET) in proc_do_submiturb()
1522 if (uurb->flags & USBDEVFS_URB_NO_INTERRUPT) in proc_do_submiturb()
1526 as->urb->transfer_buffer_length = uurb->buffer_length; in proc_do_submiturb()
1529 as->urb->start_frame = uurb->start_frame; in proc_do_submiturb()
1532 if (uurb->type == USBDEVFS_URB_TYPE_ISO || in proc_do_submiturb()
1548 if (is_in && uurb->buffer_length > 0) in proc_do_submiturb()
1549 as->userbuffer = uurb->buffer; in proc_do_submiturb()
1552 as->signr = uurb->signr; in proc_do_submiturb()
1579 if (uurb->flags & USBDEVFS_URB_BULK_CONTINUATION) in proc_do_submiturb()
1616 struct usbdevfs_urb uurb; in proc_submiturb() local
1618 if (copy_from_user(&uurb, arg, sizeof(uurb))) in proc_submiturb()
1621 return proc_do_submiturb(ps, &uurb, in proc_submiturb()
1780 struct usbdevfs_urb32 __user *uurb) in get_urb32() argument
1783 if (!access_ok(VERIFY_READ, uurb, sizeof(*uurb)) || in get_urb32()
1784 __get_user(kurb->type, &uurb->type) || in get_urb32()
1785 __get_user(kurb->endpoint, &uurb->endpoint) || in get_urb32()
1786 __get_user(kurb->status, &uurb->status) || in get_urb32()
1787 __get_user(kurb->flags, &uurb->flags) || in get_urb32()
1788 __get_user(kurb->buffer_length, &uurb->buffer_length) || in get_urb32()
1789 __get_user(kurb->actual_length, &uurb->actual_length) || in get_urb32()
1790 __get_user(kurb->start_frame, &uurb->start_frame) || in get_urb32()
1791 __get_user(kurb->number_of_packets, &uurb->number_of_packets) || in get_urb32()
1792 __get_user(kurb->error_count, &uurb->error_count) || in get_urb32()
1793 __get_user(kurb->signr, &uurb->signr)) in get_urb32()
1796 if (__get_user(uptr, &uurb->buffer)) in get_urb32()
1799 if (__get_user(uptr, &uurb->usercontext)) in get_urb32()
1808 struct usbdevfs_urb uurb; in proc_submiturb_compat() local
1810 if (get_urb32(&uurb, (struct usbdevfs_urb32 __user *)arg)) in proc_submiturb_compat()
1813 return proc_do_submiturb(ps, &uurb, in proc_submiturb_compat()