Lines Matching defs:cmdinfo
101 struct uas_cmd_info *cmdinfo;
116 cmdinfo = (void *)&cmnd->SCp;
118 if (!(cmdinfo->state & IS_IN_WORK_LIST))
123 cmdinfo->state &= ~IS_IN_WORK_LIST;
142 static void uas_add_work(struct uas_cmd_info *cmdinfo)
144 struct scsi_pointer *scp = (void *)cmdinfo;
149 cmdinfo->state |= IS_IN_WORK_LIST;
155 struct uas_cmd_info *cmdinfo;
166 cmdinfo = (void *)&cmnd->SCp;
169 cmdinfo->state &= ~COMMAND_INFLIGHT;
204 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
211 prefix, status, cmdinfo->uas_tag,
229 struct uas_cmd_info *cmdinfo;
234 cmdinfo = (void *)&cmnd->SCp;
236 if (cmdinfo->state & SUBMIT_CMD_URB)
237 usb_free_urb(cmdinfo->cmd_urb);
240 if (!(cmdinfo->state & DATA_IN_URB_INFLIGHT))
241 usb_free_urb(cmdinfo->data_in_urb);
242 if (!(cmdinfo->state & DATA_OUT_URB_INFLIGHT))
243 usb_free_urb(cmdinfo->data_out_urb);
248 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
252 if (cmdinfo->state & (COMMAND_INFLIGHT |
257 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
266 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
269 cmdinfo->state |= direction | SUBMIT_STATUS_URB;
272 uas_add_work(cmdinfo);
307 struct uas_cmd_info *cmdinfo;
332 cmdinfo = (void *)&cmnd->SCp;
334 if (!(cmdinfo->state & COMMAND_INFLIGHT)) {
344 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
345 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);
347 cmdinfo->state &= ~COMMAND_INFLIGHT;
351 if (!cmdinfo->data_in_urb ||
352 (cmdinfo->state & DATA_IN_URB_INFLIGHT)) {
359 if (!cmdinfo->data_out_urb ||
360 (cmdinfo->state & DATA_OUT_URB_INFLIGHT)) {
367 cmdinfo->state &= ~COMMAND_INFLIGHT;
371 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
372 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);
397 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
405 if (cmdinfo->data_in_urb == urb) {
406 cmdinfo->state &= ~DATA_IN_URB_INFLIGHT;
407 cmdinfo->data_in_urb = NULL;
408 } else if (cmdinfo->data_out_urb == urb) {
409 cmdinfo->state &= ~DATA_OUT_URB_INFLIGHT;
410 cmdinfo->data_out_urb = NULL;
417 if (cmdinfo->state & SUBMIT_CMD_URB) {
449 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
460 urb->stream_id = cmdinfo->uas_tag;
471 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
485 urb->stream_id = cmdinfo->uas_tag;
499 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
516 iu->tag = cpu_to_be16(cmdinfo->uas_tag);
561 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
566 if (cmdinfo->state & SUBMIT_STATUS_URB) {
570 cmdinfo->state &= ~SUBMIT_STATUS_URB;
573 if (cmdinfo->state & ALLOC_DATA_IN_URB) {
574 cmdinfo->data_in_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC,
576 if (!cmdinfo->data_in_urb)
578 cmdinfo->state &= ~ALLOC_DATA_IN_URB;
581 if (cmdinfo->state & SUBMIT_DATA_IN_URB) {
582 usb_anchor_urb(cmdinfo->data_in_urb, &devinfo->data_urbs);
583 err = usb_submit_urb(cmdinfo->data_in_urb, GFP_ATOMIC);
585 usb_unanchor_urb(cmdinfo->data_in_urb);
589 cmdinfo->state &= ~SUBMIT_DATA_IN_URB;
590 cmdinfo->state |= DATA_IN_URB_INFLIGHT;
593 if (cmdinfo->state & ALLOC_DATA_OUT_URB) {
594 cmdinfo->data_out_urb = uas_alloc_data_urb(devinfo, GFP_ATOMIC,
596 if (!cmdinfo->data_out_urb)
598 cmdinfo->state &= ~ALLOC_DATA_OUT_URB;
601 if (cmdinfo->state & SUBMIT_DATA_OUT_URB) {
602 usb_anchor_urb(cmdinfo->data_out_urb, &devinfo->data_urbs);
603 err = usb_submit_urb(cmdinfo->data_out_urb, GFP_ATOMIC);
605 usb_unanchor_urb(cmdinfo->data_out_urb);
609 cmdinfo->state &= ~SUBMIT_DATA_OUT_URB;
610 cmdinfo->state |= DATA_OUT_URB_INFLIGHT;
613 if (cmdinfo->state & ALLOC_CMD_URB) {
614 cmdinfo->cmd_urb = uas_alloc_cmd_urb(devinfo, GFP_ATOMIC, cmnd);
615 if (!cmdinfo->cmd_urb)
617 cmdinfo->state &= ~ALLOC_CMD_URB;
620 if (cmdinfo->state & SUBMIT_CMD_URB) {
621 usb_anchor_urb(cmdinfo->cmd_urb, &devinfo->cmd_urbs);
622 err = usb_submit_urb(cmdinfo->cmd_urb, GFP_ATOMIC);
624 usb_unanchor_urb(cmdinfo->cmd_urb);
628 cmdinfo->cmd_urb = NULL;
629 cmdinfo->state &= ~SUBMIT_CMD_URB;
630 cmdinfo->state |= COMMAND_INFLIGHT;
641 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
680 memset(cmdinfo, 0, sizeof(*cmdinfo));
681 cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */
682 cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB;
686 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB;
689 cmdinfo->state |= ALLOC_DATA_IN_URB | SUBMIT_DATA_IN_URB;
692 cmdinfo->state |= ALLOC_DATA_OUT_URB | SUBMIT_DATA_OUT_URB;
698 cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB);
713 if (cmdinfo->state & SUBMIT_STATUS_URB) {
717 uas_add_work(cmdinfo);
735 struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
746 cmdinfo->state |= COMMAND_ABORTED;
749 devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
750 if (cmdinfo->state & DATA_IN_URB_INFLIGHT)
751 data_in_urb = usb_get_urb(cmdinfo->data_in_urb);
752 if (cmdinfo->state & DATA_OUT_URB_INFLIGHT)
753 data_out_urb = usb_get_urb(cmdinfo->data_out_urb);