Lines Matching defs:cmdinfo

101 	struct uas_cmd_info *cmdinfo;
116 cmdinfo = scsi_cmd_priv(cmnd);
118 if (!(cmdinfo->state & IS_IN_WORK_LIST))
123 cmdinfo->state &= ~IS_IN_WORK_LIST;
144 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
148 cmdinfo->state |= IS_IN_WORK_LIST;
154 struct uas_cmd_info *cmdinfo;
165 cmdinfo = scsi_cmd_priv(cmnd);
168 cmdinfo->state &= ~COMMAND_INFLIGHT;
227 struct uas_cmd_info *cmdinfo;
232 cmdinfo = scsi_cmd_priv(cmnd);
234 if (cmdinfo->state & SUBMIT_CMD_URB)
235 usb_free_urb(cmdinfo->cmd_urb);
238 if (!(cmdinfo->state & DATA_IN_URB_INFLIGHT))
239 usb_free_urb(cmdinfo->data_in_urb);
240 if (!(cmdinfo->state & DATA_OUT_URB_INFLIGHT))
241 usb_free_urb(cmdinfo->data_out_urb);
246 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
250 if (cmdinfo->state & (COMMAND_INFLIGHT |
255 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
264 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
267 cmdinfo->state |= direction | SUBMIT_STATUS_URB;
305 struct uas_cmd_info *cmdinfo;
330 cmdinfo = scsi_cmd_priv(cmnd);
332 if (!(cmdinfo->state & COMMAND_INFLIGHT)) {
342 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
343 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);
345 cmdinfo->state &= ~COMMAND_INFLIGHT;
349 if (!cmdinfo->data_in_urb ||
350 (cmdinfo->state & DATA_IN_URB_INFLIGHT)) {
357 if (!cmdinfo->data_out_urb ||
358 (cmdinfo->state & DATA_OUT_URB_INFLIGHT)) {
365 cmdinfo->state &= ~COMMAND_INFLIGHT;
369 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
370 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);
395 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
403 if (cmdinfo->data_in_urb == urb) {
404 cmdinfo->state &= ~DATA_IN_URB_INFLIGHT;
405 cmdinfo->data_in_urb = NULL;
406 } else if (cmdinfo->data_out_urb == urb) {
407 cmdinfo->state &= ~DATA_OUT_URB_INFLIGHT;
408 cmdinfo->data_out_urb = NULL;
415 if (cmdinfo->state & SUBMIT_CMD_URB) {
447 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
458 urb->stream_id = cmdinfo->uas_tag;
469 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
483 urb->stream_id = cmdinfo->uas_tag;
497 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
514 iu->tag = cpu_to_be16(cmdinfo->uas_tag);
559 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
564 if (cmdinfo->state & SUBMIT_STATUS_URB) {
568 cmdinfo->state &= ~SUBMIT_STATUS_URB;
571 if (cmdinfo->state & ALLOC_DATA_IN_URB) {
572 cmdinfo->data_in_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC,
574 if (!cmdinfo->data_in_urb)
576 cmdinfo->state &= ~ALLOC_DATA_IN_URB;
579 if (cmdinfo->state & SUBMIT_DATA_IN_URB) {
580 usb_anchor_urb(cmdinfo->data_in_urb, &devinfo->data_urbs);
581 err = usb_submit_urb(cmdinfo->data_in_urb, GFP_ATOMIC);
583 usb_unanchor_urb(cmdinfo->data_in_urb);
587 cmdinfo->state &= ~SUBMIT_DATA_IN_URB;
588 cmdinfo->state |= DATA_IN_URB_INFLIGHT;
591 if (cmdinfo->state & ALLOC_DATA_OUT_URB) {
592 cmdinfo->data_out_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC,
594 if (!cmdinfo->data_out_urb)
596 cmdinfo->state &= ~ALLOC_DATA_OUT_URB;
599 if (cmdinfo->state & SUBMIT_DATA_OUT_URB) {
600 usb_anchor_urb(cmdinfo->data_out_urb, &devinfo->data_urbs);
601 err = usb_submit_urb(cmdinfo->data_out_urb, GFP_ATOMIC);
603 usb_unanchor_urb(cmdinfo->data_out_urb);
607 cmdinfo->state &= ~SUBMIT_DATA_OUT_URB;
608 cmdinfo->state |= DATA_OUT_URB_INFLIGHT;
611 if (cmdinfo->state & ALLOC_CMD_URB) {
612 cmdinfo->cmd_urb = uas_alloc_cmd_urb(devinfo, GFP_ATOMIC, cmnd);
613 if (!cmdinfo->cmd_urb)
615 cmdinfo->state &= ~ALLOC_CMD_URB;
618 if (cmdinfo->state & SUBMIT_CMD_URB) {
619 usb_anchor_urb(cmdinfo->cmd_urb, &devinfo->cmd_urbs);
620 err = usb_submit_urb(cmdinfo->cmd_urb, GFP_ATOMIC);
622 usb_unanchor_urb(cmdinfo->cmd_urb);
626 cmdinfo->cmd_urb = NULL;
627 cmdinfo->state &= ~SUBMIT_CMD_URB;
628 cmdinfo->state |= COMMAND_INFLIGHT;
638 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
673 memset(cmdinfo, 0, sizeof(*cmdinfo));
674 cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */
675 cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB;
679 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB;
682 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB;
685 cmdinfo->state |= ALLOC_DATA_OUT_URB | SUBMIT_DATA_OUT_URB;
692 cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB);
707 if (cmdinfo->state & SUBMIT_STATUS_URB) {
729 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd);
740 cmdinfo->state |= COMMAND_ABORTED;
743 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
744 if (cmdinfo->state & DATA_IN_URB_INFLIGHT)
745 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
746 if (cmdinfo->state & DATA_OUT_URB_INFLIGHT)
747 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);