Lines Matching refs:urb

70 	struct urb *cmd_urb;
71 struct urb *data_in_urb;
72 struct urb *data_out_urb;
176 static void uas_sense(struct urb *urb, struct scsi_cmnd *cmnd)
178 struct sense_iu *sense_iu = urb->transfer_buffer;
181 if (urb->actual_length > 16) {
183 if (len + 16 != urb->actual_length) {
184 int newlen = min(len + 16, urb->actual_length) - 16;
187 sdev_printk(KERN_INFO, sdev, "%s: urb length %d "
190 urb->actual_length, len, newlen);
261 static void uas_xfer_data(struct urb *urb, struct scsi_cmnd *cmnd,
297 static void uas_stat_cmplt(struct urb *urb)
299 struct iu *iu = urb->transfer_buffer;
300 struct Scsi_Host *shost = urb->context;
302 struct urb *data_in_urb = NULL;
303 struct urb *data_out_urb = NULL;
308 int status = urb->status;
318 dev_err(&urb->dev->dev, "stat urb: status %d\n", status);
324 dev_err(&urb->dev->dev,
325 "stat urb: no pending cmd for uas-tag %d\n", idx + 1);
339 uas_sense(urb, cmnd);
354 uas_xfer_data(urb, cmnd, SUBMIT_DATA_IN_URB);
362 uas_xfer_data(urb, cmnd, SUBMIT_DATA_OUT_URB);
378 usb_free_urb(urb);
392 static void uas_data_cmplt(struct urb *urb)
394 struct scsi_cmnd *cmnd = urb->context;
399 int status = urb->status;
403 if (cmdinfo->data_in_urb == urb) {
406 } else if (cmdinfo->data_out_urb == urb) {
414 /* Data urbs should not complete before the cmd urb is submitted */
426 scsi_set_resid(cmnd, sdb->length - urb->actual_length);
430 usb_free_urb(urb);
434 static void uas_cmd_cmplt(struct urb *urb)
436 if (urb->status)
437 dev_err(&urb->dev->dev, "cmd cmplt err %d\n", urb->status);
439 usb_free_urb(urb);
442 static struct urb *uas_alloc_data_urb(struct uas_dev_info *devinfo, gfp_t gfp,
448 struct urb *urb = usb_alloc_urb(0, gfp);
453 if (!urb)
455 usb_fill_bulk_urb(urb, udev, pipe, NULL, sdb->length,
458 urb->stream_id = cmdinfo->uas_tag;
459 urb->num_sgs = udev->bus->sg_tablesize ? sdb->table.nents : 0;
460 urb->sg = sdb->table.sgl;
462 return urb;
465 static struct urb *uas_alloc_sense_urb(struct uas_dev_info *devinfo, gfp_t gfp,
470 struct urb *urb = usb_alloc_urb(0, gfp);
473 if (!urb)
480 usb_fill_bulk_urb(urb, udev, devinfo->status_pipe, iu, sizeof(*iu),
483 urb->stream_id = cmdinfo->uas_tag;
484 urb->transfer_flags |= URB_FREE_BUFFER;
486 return urb;
488 usb_free_urb(urb);
492 static struct urb *uas_alloc_cmd_urb(struct uas_dev_info *devinfo, gfp_t gfp,
498 struct urb *urb = usb_alloc_urb(0, gfp);
502 if (!urb)
520 usb_fill_bulk_urb(urb, udev, devinfo->cmd_pipe, iu, sizeof(*iu) + len,
522 urb->transfer_flags |= URB_FREE_BUFFER;
524 return urb;
526 usb_free_urb(urb);
539 struct urb *urb;
542 urb = uas_alloc_sense_urb(devinfo, gfp, cmnd);
543 if (!urb)
545 usb_anchor_urb(urb, &devinfo->sense_urbs);
546 err = usb_submit_urb(urb, gfp);
548 usb_unanchor_urb(urb);
550 usb_free_urb(urb);
729 struct urb *data_in_urb = NULL;
730 struct urb *data_out_urb = NULL;