Lines Matching refs:urb

21 static void complicated_callback(struct urb *urb);
248 * Each urb's data buffer is dynamically allocated; callers can fill
252 static void simple_callback(struct urb *urb)
254 complete(urb->context);
257 static struct urb *usbtest_alloc_urb(
266 struct urb *urb;
268 urb = usb_alloc_urb(0, GFP_KERNEL);
269 if (!urb)
270 return urb;
273 usb_fill_int_urb(urb, udev, pipe, NULL, bytes, complete_fn,
276 usb_fill_bulk_urb(urb, udev, pipe, NULL, bytes, complete_fn,
279 urb->interval = (udev->speed == USB_SPEED_HIGH)
282 urb->transfer_flags = transfer_flags;
284 urb->transfer_flags |= URB_SHORT_NOT_OK;
287 return urb;
289 if (urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)
290 urb->transfer_buffer = usb_alloc_coherent(udev, bytes + offset,
291 GFP_KERNEL, &urb->transfer_dma);
293 urb->transfer_buffer = kmalloc(bytes + offset, GFP_KERNEL);
295 if (!urb->transfer_buffer) {
296 usb_free_urb(urb);
303 memset(urb->transfer_buffer, GUARD_BYTE, offset);
304 urb->transfer_buffer += offset;
305 if (urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)
306 urb->transfer_dma += offset;
311 memset(urb->transfer_buffer,
312 usb_pipein(urb->pipe) ? GUARD_BYTE : 0,
314 return urb;
317 static struct urb *simple_alloc_urb(
327 static struct urb *complicated_alloc_urb(
358 static void simple_fill_buf(struct urb *urb)
361 u8 *buf = urb->transfer_buffer;
362 unsigned len = urb->transfer_buffer_length;
372 maxpacket = get_maxpacket(urb->dev, urb->pipe);
384 static int check_guard_bytes(struct usbtest_dev *tdev, struct urb *urb)
386 u8 *buf = urb->transfer_buffer;
400 static int simple_check_buf(struct usbtest_dev *tdev, struct urb *urb)
404 u8 *buf = urb->transfer_buffer;
405 unsigned len = urb->actual_length;
406 unsigned maxpacket = get_maxpacket(urb->dev, urb->pipe);
408 int ret = check_guard_bytes(tdev, urb);
439 static void simple_free_urb(struct urb *urb)
441 unsigned long offset = buffer_offset(urb->transfer_buffer);
443 if (urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)
445 urb->dev,
446 urb->transfer_buffer_length + offset,
447 urb->transfer_buffer - offset,
448 urb->transfer_dma - offset);
450 kfree(urb->transfer_buffer - offset);
451 usb_free_urb(urb);
456 struct urb *urb,
463 struct usb_device *udev = urb->dev;
464 int max = urb->transfer_buffer_length;
469 urb->context = &completion;
472 if (usb_pipeout(urb->pipe)) {
473 simple_fill_buf(urb);
474 urb->transfer_flags |= URB_ZERO_PACKET;
476 retval = usb_submit_urb(urb, GFP_KERNEL);
482 usb_kill_urb(urb);
483 retval = (urb->status == -ENOENT ?
484 -ETIMEDOUT : urb->status);
486 retval = urb->status;
489 urb->dev = udev;
490 if (retval == 0 && usb_pipein(urb->pipe))
491 retval = simple_check_buf(tdev, urb);
494 int len = urb->transfer_buffer_length;
500 urb->transfer_buffer_length = len;
505 urb->transfer_buffer_length = max;
1074 struct urb **urb;
1087 static void ctrl_complete(struct urb *urb)
1089 struct ctrl_ctx *ctx = urb->context;
1092 int status = urb->status;
1095 reqp = (struct usb_ctrlrequest *)urb->setup_packet;
1149 urb->actual_length,
1150 urb->transfer_buffer_length);
1158 struct urb *u = ctx->urb[
1162 if (u == urb || !u->dev)
1173 ERROR(ctx->dev, "urb unlink --> %d\n",
1183 status = usb_submit_urb(urb, GFP_ATOMIC);
1188 urb->dev = NULL;
1192 urb->dev = NULL;
1204 struct urb **urb;
1224 urb = kcalloc(param->sglen, sizeof(struct urb *), GFP_KERNEL);
1225 if (!urb)
1230 struct urb *u;
1369 urb[i] = u = simple_alloc_urb(udev, pipe, len, 0);
1386 context.urb = urb;
1389 context.status = usb_submit_urb(urb[i], GFP_ATOMIC);
1391 ERROR(dev, "can't submit urb[%d], status %d\n",
1408 if (!urb[i])
1410 urb[i]->dev = udev;
1411 kfree(urb[i]->setup_packet);
1412 simple_free_urb(urb[i]);
1414 kfree(urb);
1422 static void unlink1_callback(struct urb *urb)
1424 int status = urb->status;
1428 status = usb_submit_urb(urb, GFP_ATOMIC);
1430 urb->status = status;
1431 complete(urb->context);
1437 struct urb *urb;
1442 urb = simple_alloc_urb(testdev_to_usbdev(dev), pipe, size, 0);
1443 if (!urb)
1445 urb->context = &completion;
1446 urb->complete = unlink1_callback;
1448 if (usb_pipeout(urb->pipe)) {
1449 simple_fill_buf(urb);
1450 urb->transfer_flags |= URB_ZERO_PACKET;
1459 retval = usb_submit_urb(urb, GFP_KERNEL);
1471 retval = usb_unlink_urb(urb);
1473 if (retval == 0 && usb_pipein(urb->pipe))
1474 retval = simple_check_buf(dev, urb);
1500 usb_kill_urb(urb);
1503 retval = urb->status;
1504 simple_free_urb(urb);
1531 struct urb **urbs;
1534 static void unlink_queued_callback(struct urb *urb)
1536 int status = urb->status;
1537 struct queued_ctx *ctx = urb->context;
1541 if (urb == ctx->urbs[ctx->num - 4] || urb == ctx->urbs[ctx->num - 2]) {
1575 ctx.urbs = kcalloc(num, sizeof(struct urb *), GFP_KERNEL);
1629 static int verify_not_halted(struct usbtest_dev *tdev, int ep, struct urb *urb)
1635 retval = usb_get_std_status(urb->dev, USB_RECIP_ENDPOINT, ep, &status);
1645 retval = simple_io(tdev, urb, 1, 0, 0, __func__);
1651 static int verify_halted(struct usbtest_dev *tdev, int ep, struct urb *urb)
1657 retval = usb_get_std_status(urb->dev, USB_RECIP_ENDPOINT, ep, &status);
1667 retval = simple_io(tdev, urb, 1, 0, -EPIPE, __func__);
1670 retval = simple_io(tdev, urb, 1, 0, -EPIPE, "verify_still_halted");
1676 static int test_halt(struct usbtest_dev *tdev, int ep, struct urb *urb)
1681 retval = verify_not_halted(tdev, ep, urb);
1686 retval = usb_control_msg(urb->dev, usb_sndctrlpipe(urb->dev, 0),
1694 retval = verify_halted(tdev, ep, urb);
1699 ret = usb_clear_halt(urb->dev, urb->pipe);
1708 retval = usb_clear_halt(urb->dev, urb->pipe);
1713 retval = verify_not_halted(tdev, ep, urb);
1722 static int test_toggle_sync(struct usbtest_dev *tdev, int ep, struct urb *urb)
1727 retval = usb_clear_halt(urb->dev, urb->pipe);
1734 retval = simple_io(tdev, urb, 1, 0, 0, __func__);
1739 retval = usb_clear_halt(urb->dev, urb->pipe);
1746 retval = simple_io(tdev, urb, 1, 0, 0, __func__);
1755 struct urb *urb;
1759 urb = simple_alloc_urb(udev, 0, 1024, 0);
1761 urb = simple_alloc_urb(udev, 0, 512, 0);
1762 if (urb == NULL)
1767 urb->pipe = dev->in_pipe;
1768 retval = test_halt(dev, ep, urb);
1775 urb->pipe = dev->out_pipe;
1776 retval = test_halt(dev, ep, urb);
1779 simple_free_urb(urb);
1787 struct urb *urb;
1796 urb = simple_alloc_urb(udev, 0, 2 * maxp, 0);
1797 if (urb == NULL)
1800 urb->transfer_flags |= URB_ZERO_PACKET;
1803 urb->pipe = dev->out_pipe;
1804 retval = test_toggle_sync(dev, ep, urb);
1806 simple_free_urb(urb);
1926 static void complicated_callback(struct urb *urb)
1928 struct transfer_context *ctx = urb->context;
1934 ctx->packet_count += urb->number_of_packets;
1935 if (urb->error_count > 0)
1936 ctx->errors += urb->error_count;
1937 else if (urb->status != 0)
1938 ctx->errors += (ctx->is_iso ? urb->number_of_packets : 1);
1939 else if (urb->actual_length != urb->transfer_buffer_length)
1941 else if (check_guard_bytes(ctx->dev, urb) != 0)
1944 if (urb->status == 0 && ctx->count > (ctx->pending - 1)
1946 int status = usb_submit_urb(urb, GFP_ATOMIC);
1974 static struct urb *iso_alloc_urb(
1982 struct urb *urb;
1996 urb = usb_alloc_urb(packets, GFP_KERNEL);
1997 if (!urb)
1998 return urb;
1999 urb->dev = udev;
2000 urb->pipe = pipe;
2002 urb->number_of_packets = packets;
2003 urb->transfer_buffer_length = bytes;
2004 urb->transfer_buffer = usb_alloc_coherent(udev, bytes + offset,
2006 &urb->transfer_dma);
2007 if (!urb->transfer_buffer) {
2008 usb_free_urb(urb);
2012 memset(urb->transfer_buffer, GUARD_BYTE, offset);
2013 urb->transfer_buffer += offset;
2014 urb->transfer_dma += offset;
2018 memset(urb->transfer_buffer,
2019 usb_pipein(urb->pipe) ? GUARD_BYTE : 0,
2024 urb->iso_frame_desc[i].length = min((unsigned) bytes, maxp);
2025 bytes -= urb->iso_frame_desc[i].length;
2027 urb->iso_frame_desc[i].offset = maxp * i;
2030 urb->complete = complicated_callback;
2031 /* urb->context = SET BY CALLER */
2032 urb->interval = 1 << (desc->bInterval - 1);
2033 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
2034 return urb;
2046 struct urb **urbs;
2167 struct urb *urb = usbtest_alloc_urb(testdev_to_usbdev(tdev),
2170 if (!urb)
2173 retval = simple_io(tdev, urb, iterations, 0, 0, label);
2174 simple_free_urb(urb);
2184 struct urb *urb;
2217 urb = simple_alloc_urb(udev, dev->out_pipe, param->length, 0);
2218 if (!urb) {
2223 retval = simple_io(dev, urb, param->iterations, 0, 0, "test1");
2224 simple_free_urb(urb);
2232 urb = simple_alloc_urb(udev, dev->in_pipe, param->length, 0);
2233 if (!urb) {
2238 retval = simple_io(dev, urb, param->iterations, 0, 0, "test2");
2239 simple_free_urb(urb);
2247 urb = simple_alloc_urb(udev, dev->out_pipe, param->length, 0);
2248 if (!urb) {
2253 retval = simple_io(dev, urb, param->iterations, param->vary,
2255 simple_free_urb(urb);
2263 urb = simple_alloc_urb(udev, dev->in_pipe, param->length, 0);
2264 if (!urb) {
2269 retval = simple_io(dev, urb, param->iterations, param->vary,
2271 simple_free_urb(urb);
2372 /* simple non-queued unlinks (ring with one urb) */
2571 urb = simple_alloc_urb(udev, dev->out_int_pipe, param->length,
2573 if (!urb) {
2578 retval = simple_io(dev, urb, param->iterations, 0, 0, "test25");
2579 simple_free_urb(urb);
2587 urb = simple_alloc_urb(udev, dev->in_int_pipe, param->length,
2589 if (!urb) {
2594 retval = simple_io(dev, urb, param->iterations, 0, 0, "test26");
2595 simple_free_urb(urb);