Lines Matching refs:urb
65 * @urb: array of urbs for the CPort in messages
70 struct urb *urb[NUM_CPORT_IN_URB];
107 struct urb *cport_out_urb[NUM_CPORT_OUT_URB];
120 struct urb *arpc_urb[NUM_ARPC_IN_URB];
141 static void cport_out_callback(struct urb *urb);
171 static void ap_urb_complete(struct urb *urb)
173 struct usb_ctrlrequest *dr = urb->context;
176 usb_free_urb(urb);
182 struct urb *urb;
187 urb = usb_alloc_urb(0, GFP_ATOMIC);
188 if (!urb)
193 usb_free_urb(urb);
206 usb_fill_control_urb(urb, udev, usb_sndctrlpipe(udev, 0),
209 retval = usb_submit_urb(urb, GFP_ATOMIC);
211 usb_free_urb(urb);
231 struct urb *urb;
236 urb = cport_in->urb[i];
238 ret = usb_submit_urb(urb, GFP_KERNEL);
241 "failed to submit in-urb: %d\n", ret);
250 urb = cport_in->urb[i];
251 usb_kill_urb(urb);
260 struct urb *urb;
264 urb = cport_in->urb[i];
265 usb_kill_urb(urb);
271 struct urb *urb;
276 urb = es2->arpc_urb[i];
278 ret = usb_submit_urb(urb, GFP_KERNEL);
281 "failed to submit arpc in-urb: %d\n", ret);
290 urb = es2->arpc_urb[i];
291 usb_kill_urb(urb);
299 struct urb *urb;
303 urb = es2->arpc_urb[i];
304 usb_kill_urb(urb);
308 static struct urb *next_free_urb(struct es2_ap_dev *es2, gfp_t gfp_mask)
310 struct urb *urb = NULL;
321 urb = es2->cport_out_urb[i];
326 if (urb)
327 return urb;
338 static void free_urb(struct es2_ap_dev *es2, struct urb *urb)
343 * See if this was an urb in our pool, if so mark it "free", otherwise
348 if (urb == es2->cport_out_urb[i]) {
350 urb = NULL;
356 /* If urb is not NULL, then we need to free this urb */
357 usb_free_urb(urb);
397 struct urb *urb;
410 /* Find a free urb */
411 urb = next_free_urb(es2, gfp_mask);
412 if (!urb)
416 message->hcpriv = urb;
424 usb_fill_bulk_urb(urb, udev,
429 urb->transfer_flags |= URB_ZERO_PACKET;
433 retval = usb_submit_urb(urb, gfp_mask);
435 dev_err(&udev->dev, "failed to submit out-urb: %d\n", retval);
441 free_urb(es2, urb);
457 struct urb *urb;
463 urb = message->hcpriv;
465 /* Prevent dynamically allocated urb from being deallocated. */
466 usb_get_urb(urb);
468 /* Prevent pre-allocated urb from being reused. */
470 if (urb == es2->cport_out_urb[i]) {
477 usb_kill_urb(urb);
485 usb_free_urb(urb);
750 static int check_urb_status(struct urb *urb)
752 struct device *dev = &urb->dev->dev;
753 int status = urb->status;
761 __func__, urb->actual_length);
779 struct urb *urb;
787 urb = es2->cport_out_urb[i];
788 usb_kill_urb(urb);
789 usb_free_urb(urb);
801 usb_free_urb(es2->cport_in.urb[i]);
816 static void cport_in_callback(struct urb *urb)
818 struct gb_host_device *hd = urb->context;
819 struct device *dev = &urb->dev->dev;
821 int status = check_urb_status(urb);
829 /* The urb is being unlinked */
833 dev_err(dev, "urb cport in error %d (dropped)\n", status);
837 if (urb->actual_length < sizeof(*header)) {
843 header = urb->transfer_buffer;
847 greybus_data_rcvd(hd, cport_id, urb->transfer_buffer,
848 urb->actual_length);
853 /* put our urb back in the request pool */
854 retval = usb_submit_urb(urb, GFP_ATOMIC);
856 dev_err(dev, "failed to resubmit in-urb: %d\n", retval);
859 static void cport_out_callback(struct urb *urb)
861 struct gb_message *message = urb->context;
864 int status = check_urb_status(urb);
879 free_urb(es2, urb);
1029 static void arpc_in_callback(struct urb *urb)
1031 struct es2_ap_dev *es2 = urb->context;
1032 struct device *dev = &urb->dev->dev;
1033 int status = check_urb_status(urb);
1043 /* The urb is being unlinked */
1047 dev_err(dev, "arpc in-urb error %d (dropped)\n", status);
1051 if (urb->actual_length < sizeof(*resp)) {
1056 resp = urb->transfer_buffer;
1072 /* put our urb back in the request pool */
1073 retval = usb_submit_urb(urb, GFP_ATOMIC);
1075 dev_err(dev, "failed to resubmit arpc in-urb: %d\n", retval);
1344 struct urb *urb;
1347 urb = usb_alloc_urb(0, GFP_KERNEL);
1348 if (!urb) {
1352 es2->cport_in.urb[i] = urb;
1360 usb_fill_bulk_urb(urb, udev,
1370 struct urb *urb;
1373 urb = usb_alloc_urb(0, GFP_KERNEL);
1374 if (!urb) {
1378 es2->arpc_urb[i] = urb;
1386 usb_fill_bulk_urb(urb, udev,
1397 struct urb *urb;
1399 urb = usb_alloc_urb(0, GFP_KERNEL);
1400 if (!urb) {
1405 es2->cport_out_urb[i] = urb;