Lines Matching refs:cmdinfo
102 struct uas_cmd_info *cmdinfo; in uas_do_work() local
117 cmdinfo = scsi_cmd_priv(cmnd); in uas_do_work()
119 if (!(cmdinfo->state & IS_IN_WORK_LIST)) in uas_do_work()
124 cmdinfo->state &= ~IS_IN_WORK_LIST; in uas_do_work()
145 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_add_work() local
149 cmdinfo->state |= IS_IN_WORK_LIST; in uas_add_work()
155 struct uas_cmd_info *cmdinfo; in uas_zap_pending() local
166 cmdinfo = scsi_cmd_priv(cmnd); in uas_zap_pending()
169 cmdinfo->state &= ~COMMAND_INFLIGHT; in uas_zap_pending()
228 struct uas_cmd_info *cmdinfo; in uas_free_unsubmitted_urbs() local
233 cmdinfo = scsi_cmd_priv(cmnd); in uas_free_unsubmitted_urbs()
235 if (cmdinfo->state & SUBMIT_CMD_URB) in uas_free_unsubmitted_urbs()
236 usb_free_urb(cmdinfo->cmd_urb); in uas_free_unsubmitted_urbs()
239 if (!(cmdinfo->state & DATA_IN_URB_INFLIGHT)) in uas_free_unsubmitted_urbs()
240 usb_free_urb(cmdinfo->data_in_urb); in uas_free_unsubmitted_urbs()
241 if (!(cmdinfo->state & DATA_OUT_URB_INFLIGHT)) in uas_free_unsubmitted_urbs()
242 usb_free_urb(cmdinfo->data_out_urb); in uas_free_unsubmitted_urbs()
247 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_try_complete() local
251 if (cmdinfo->state & (COMMAND_INFLIGHT | in uas_try_complete()
256 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL; in uas_try_complete()
265 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_xfer_data() local
268 cmdinfo->state |= direction | SUBMIT_STATUS_URB; in uas_xfer_data()
306 struct uas_cmd_info *cmdinfo; in uas_stat_cmplt() local
331 cmdinfo = scsi_cmd_priv(cmnd); in uas_stat_cmplt()
333 if (!(cmdinfo->state & COMMAND_INFLIGHT)) { in uas_stat_cmplt()
343 data_in_urb = usb_get_urb(cmdinfo->data_in_urb); in uas_stat_cmplt()
344 data_out_urb = usb_get_urb(cmdinfo->data_out_urb); in uas_stat_cmplt()
346 cmdinfo->state &= ~COMMAND_INFLIGHT; in uas_stat_cmplt()
350 if (!cmdinfo->data_in_urb || in uas_stat_cmplt()
351 (cmdinfo->state & DATA_IN_URB_INFLIGHT)) { in uas_stat_cmplt()
358 if (!cmdinfo->data_out_urb || in uas_stat_cmplt()
359 (cmdinfo->state & DATA_OUT_URB_INFLIGHT)) { in uas_stat_cmplt()
366 cmdinfo->state &= ~COMMAND_INFLIGHT; in uas_stat_cmplt()
370 data_in_urb = usb_get_urb(cmdinfo->data_in_urb); in uas_stat_cmplt()
371 data_out_urb = usb_get_urb(cmdinfo->data_out_urb); in uas_stat_cmplt()
401 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_data_cmplt() local
409 if (cmdinfo->data_in_urb == urb) { in uas_data_cmplt()
410 cmdinfo->state &= ~DATA_IN_URB_INFLIGHT; in uas_data_cmplt()
411 cmdinfo->data_in_urb = NULL; in uas_data_cmplt()
412 } else if (cmdinfo->data_out_urb == urb) { in uas_data_cmplt()
413 cmdinfo->state &= ~DATA_OUT_URB_INFLIGHT; in uas_data_cmplt()
414 cmdinfo->data_out_urb = NULL; in uas_data_cmplt()
421 if (cmdinfo->state & SUBMIT_CMD_URB) { in uas_data_cmplt()
454 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_alloc_data_urb() local
465 urb->stream_id = cmdinfo->uas_tag; in uas_alloc_data_urb()
476 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_alloc_sense_urb() local
490 urb->stream_id = cmdinfo->uas_tag; in uas_alloc_sense_urb()
504 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_alloc_cmd_urb() local
521 iu->tag = cpu_to_be16(cmdinfo->uas_tag); in uas_alloc_cmd_urb()
565 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_submit_urbs() local
569 if (cmdinfo->state & SUBMIT_STATUS_URB) { in uas_submit_urbs()
573 cmdinfo->state &= ~SUBMIT_STATUS_URB; in uas_submit_urbs()
576 if (cmdinfo->state & ALLOC_DATA_IN_URB) { in uas_submit_urbs()
577 cmdinfo->data_in_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC, in uas_submit_urbs()
579 if (!cmdinfo->data_in_urb) in uas_submit_urbs()
581 cmdinfo->state &= ~ALLOC_DATA_IN_URB; in uas_submit_urbs()
584 if (cmdinfo->state & SUBMIT_DATA_IN_URB) { in uas_submit_urbs()
585 usb_anchor_urb(cmdinfo->data_in_urb, &devinfo->data_urbs); in uas_submit_urbs()
586 err = usb_submit_urb(cmdinfo->data_in_urb, GFP_ATOMIC); in uas_submit_urbs()
588 usb_unanchor_urb(cmdinfo->data_in_urb); in uas_submit_urbs()
592 cmdinfo->state &= ~SUBMIT_DATA_IN_URB; in uas_submit_urbs()
593 cmdinfo->state |= DATA_IN_URB_INFLIGHT; in uas_submit_urbs()
596 if (cmdinfo->state & ALLOC_DATA_OUT_URB) { in uas_submit_urbs()
597 cmdinfo->data_out_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC, in uas_submit_urbs()
599 if (!cmdinfo->data_out_urb) in uas_submit_urbs()
601 cmdinfo->state &= ~ALLOC_DATA_OUT_URB; in uas_submit_urbs()
604 if (cmdinfo->state & SUBMIT_DATA_OUT_URB) { in uas_submit_urbs()
605 usb_anchor_urb(cmdinfo->data_out_urb, &devinfo->data_urbs); in uas_submit_urbs()
606 err = usb_submit_urb(cmdinfo->data_out_urb, GFP_ATOMIC); in uas_submit_urbs()
608 usb_unanchor_urb(cmdinfo->data_out_urb); in uas_submit_urbs()
612 cmdinfo->state &= ~SUBMIT_DATA_OUT_URB; in uas_submit_urbs()
613 cmdinfo->state |= DATA_OUT_URB_INFLIGHT; in uas_submit_urbs()
616 if (cmdinfo->state & ALLOC_CMD_URB) { in uas_submit_urbs()
617 cmdinfo->cmd_urb = uas_alloc_cmd_urb(devinfo, GFP_ATOMIC, cmnd); in uas_submit_urbs()
618 if (!cmdinfo->cmd_urb) in uas_submit_urbs()
620 cmdinfo->state &= ~ALLOC_CMD_URB; in uas_submit_urbs()
623 if (cmdinfo->state & SUBMIT_CMD_URB) { in uas_submit_urbs()
624 usb_anchor_urb(cmdinfo->cmd_urb, &devinfo->cmd_urbs); in uas_submit_urbs()
625 err = usb_submit_urb(cmdinfo->cmd_urb, GFP_ATOMIC); in uas_submit_urbs()
627 usb_unanchor_urb(cmdinfo->cmd_urb); in uas_submit_urbs()
631 cmdinfo->cmd_urb = NULL; in uas_submit_urbs()
632 cmdinfo->state &= ~SUBMIT_CMD_URB; in uas_submit_urbs()
633 cmdinfo->state |= COMMAND_INFLIGHT; in uas_submit_urbs()
643 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in uas_queuecommand_lck() local
678 memset(cmdinfo, 0, sizeof(*cmdinfo)); in uas_queuecommand_lck()
679 cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */ in uas_queuecommand_lck()
680 cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB; in uas_queuecommand_lck()
684 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB; in uas_queuecommand_lck()
687 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB; in uas_queuecommand_lck()
690 cmdinfo->state |= ALLOC_DATA_OUT_URB | SUBMIT_DATA_OUT_URB; in uas_queuecommand_lck()
697 cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB); in uas_queuecommand_lck()
706 if (cmdinfo->state & (COMMAND_INFLIGHT | DATA_IN_URB_INFLIGHT | in uas_queuecommand_lck()
716 if (cmdinfo->state & SUBMIT_STATUS_URB) { in uas_queuecommand_lck()
739 struct uas_cmd_info *cmdinfo = scsi_cmd_priv(cmnd); in DEF_SCSI_QCMD() local
750 cmdinfo->state |= COMMAND_ABORTED; in DEF_SCSI_QCMD()
753 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL; in DEF_SCSI_QCMD()
754 if (cmdinfo->state & DATA_IN_URB_INFLIGHT) in DEF_SCSI_QCMD()
755 data_in_urb = usb_get_urb(cmdinfo->data_in_urb); in DEF_SCSI_QCMD()
756 if (cmdinfo->state & DATA_OUT_URB_INFLIGHT) in DEF_SCSI_QCMD()
757 data_out_urb = usb_get_urb(cmdinfo->data_out_urb); in DEF_SCSI_QCMD()