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