Lines Matching refs:urb

33  *   0.7: rewrite code that urb->interval is always 1
136 struct urb **ai_urbs;
137 struct urb **ao_urbs;
139 struct urb *pwm_urb;
169 static void usbduxsigma_unlink_urbs(struct urb **urbs, int num_urbs)
202 struct urb *urb)
211 if ((urb->actual_length > 0) && (urb->status != -EXDEV)) {
234 /* if command is still running, resubmit urb */
236 urb->dev = comedi_to_usb_dev(dev);
237 ret = usb_submit_urb(urb, GFP_ATOMIC);
239 dev_err(dev->class_dev, "urb resubmit failed (%d)\n",
249 static void usbduxsigma_ai_urb_complete(struct urb *urb)
251 struct comedi_device *dev = urb->context;
256 /* exit if not running a command, do not resubmit urb */
260 switch (urb->status) {
263 memcpy(devpriv->in_buf, urb->transfer_buffer, SIZEINBUF);
264 usbduxsigma_ai_handle_urb(dev, s, urb);
274 usbduxsigma_ai_handle_urb(dev, s, urb);
287 dev_err(dev->class_dev, "non-zero urb status (%d)\n",
288 urb->status);
295 * operation would unlink the urb.
328 struct urb *urb)
348 datap = urb->transfer_buffer;
366 /* if command is still running, resubmit urb */
368 urb->transfer_buffer_length = SIZEOUTBUF;
369 urb->dev = comedi_to_usb_dev(dev);
370 urb->status = 0;
371 urb->interval = 1; /* (u)frames */
372 urb->number_of_packets = 1;
373 urb->iso_frame_desc[0].offset = 0;
374 urb->iso_frame_desc[0].length = SIZEOUTBUF;
375 urb->iso_frame_desc[0].status = 0;
376 ret = usb_submit_urb(urb, GFP_ATOMIC);
378 dev_err(dev->class_dev, "urb resubmit failed (%d)\n",
388 static void usbduxsigma_ao_urb_complete(struct urb *urb)
390 struct comedi_device *dev = urb->context;
395 /* exit if not running a command, do not resubmit urb */
399 switch (urb->status) {
401 usbduxsigma_ao_handle_urb(dev, s, urb);
414 dev_err(dev->class_dev, "non-zero urb status (%d)\n",
415 urb->status);
422 * operation would unlink the urb.
431 struct urb **urbs, int num_urbs,
435 struct urb *urb;
441 urb = urbs[i];
445 urb->interval = 1;
446 urb->context = dev;
447 urb->dev = usb;
448 urb->status = 0;
449 urb->transfer_flags = URB_ISO_ASAP;
451 ret = usb_submit_urb(urb, GFP_ATOMIC);
1011 static void usbduxsigma_pwm_urb_complete(struct urb *urb)
1013 struct comedi_device *dev = urb->context;
1017 switch (urb->status) {
1034 dev_err(dev->class_dev, "non-zero urb status (%d)\n",
1035 urb->status);
1044 urb->transfer_buffer_length = devpriv->pwm_buf_sz;
1045 urb->dev = comedi_to_usb_dev(dev);
1046 urb->status = 0;
1047 ret = usb_submit_urb(urb, GFP_ATOMIC);
1049 dev_err(dev->class_dev, "urb resubmit failed (%d)\n", ret);
1061 struct urb *urb = devpriv->pwm_urb;
1064 usb_fill_bulk_urb(urb, usb, usb_sndbulkpipe(usb, 4),
1065 urb->transfer_buffer, devpriv->pwm_buf_sz,
1068 return usb_submit_urb(urb, GFP_ATOMIC);
1333 struct urb *urb;
1339 devpriv->ai_urbs = kcalloc(devpriv->n_ai_urbs, sizeof(urb), GFP_KERNEL);
1340 devpriv->ao_urbs = kcalloc(devpriv->n_ao_urbs, sizeof(urb), GFP_KERNEL);
1347 urb = usb_alloc_urb(1, GFP_KERNEL);
1348 if (!urb)
1350 devpriv->ai_urbs[i] = urb;
1351 urb->dev = usb;
1353 /* and ONLY then the urb should be submitted */
1354 urb->context = NULL;
1355 urb->pipe = usb_rcvisocpipe(usb, 6);
1356 urb->transfer_flags = URB_ISO_ASAP;
1357 urb->transfer_buffer = kzalloc(SIZEINBUF, GFP_KERNEL);
1358 if (!urb->transfer_buffer)
1360 urb->complete = usbduxsigma_ai_urb_complete;
1361 urb->number_of_packets = 1;
1362 urb->transfer_buffer_length = SIZEINBUF;
1363 urb->iso_frame_desc[0].offset = 0;
1364 urb->iso_frame_desc[0].length = SIZEINBUF;
1369 urb = usb_alloc_urb(1, GFP_KERNEL);
1370 if (!urb)
1372 devpriv->ao_urbs[i] = urb;
1373 urb->dev = usb;
1375 /* and ONLY then the urb should be submitted */
1376 urb->context = NULL;
1377 urb->pipe = usb_sndisocpipe(usb, 2);
1378 urb->transfer_flags = URB_ISO_ASAP;
1379 urb->transfer_buffer = kzalloc(SIZEOUTBUF, GFP_KERNEL);
1380 if (!urb->transfer_buffer)
1382 urb->complete = usbduxsigma_ao_urb_complete;
1383 urb->number_of_packets = 1;
1384 urb->transfer_buffer_length = SIZEOUTBUF;
1385 urb->iso_frame_desc[0].offset = 0;
1386 urb->iso_frame_desc[0].length = SIZEOUTBUF;
1387 urb->interval = 1; /* (u)frames */
1391 urb = usb_alloc_urb(0, GFP_KERNEL);
1392 if (!urb)
1394 devpriv->pwm_urb = urb;
1396 urb->transfer_buffer = kzalloc(devpriv->pwm_buf_sz,
1398 if (!urb->transfer_buffer)
1408 struct urb *urb;
1411 urb = devpriv->pwm_urb;
1412 if (urb) {
1413 kfree(urb->transfer_buffer);
1414 usb_free_urb(urb);
1418 urb = devpriv->ao_urbs[i];
1419 if (urb) {
1420 kfree(urb->transfer_buffer);
1421 usb_free_urb(urb);
1428 urb = devpriv->ai_urbs[i];
1429 if (urb) {
1430 kfree(urb->transfer_buffer);
1431 usb_free_urb(urb);