Lines Matching refs:srb

98 	struct scsi_cmd	*srb;			/* current srb */  member
534 static int usb_stor_BBB_comdat(struct scsi_cmd *srb, struct us_data *us) in usb_stor_BBB_comdat() argument
542 dir_in = US_DIRECTION(srb->cmd[0]); in usb_stor_BBB_comdat()
546 dir_in, srb->lun, srb->cmdlen, srb->cmd, srb->datalen, in usb_stor_BBB_comdat()
547 srb->pdata); in usb_stor_BBB_comdat()
548 if (srb->cmdlen) { in usb_stor_BBB_comdat()
549 for (result = 0; result < srb->cmdlen; result++) in usb_stor_BBB_comdat()
550 printf("cmd[%d] %#x ", result, srb->cmd[result]); in usb_stor_BBB_comdat()
555 if (!(srb->cmdlen <= CBWCDBLENGTH)) { in usb_stor_BBB_comdat()
565 cbw->dCBWDataTransferLength = cpu_to_le32(srb->datalen); in usb_stor_BBB_comdat()
567 cbw->bCBWLUN = srb->lun; in usb_stor_BBB_comdat()
568 cbw->bCDBLength = srb->cmdlen; in usb_stor_BBB_comdat()
572 memcpy(cbw->CBWCDB, srb->cmd, srb->cmdlen); in usb_stor_BBB_comdat()
583 static int usb_stor_CB_comdat(struct scsi_cmd *srb, struct us_data *us) in usb_stor_CB_comdat() argument
591 dir_in = US_DIRECTION(srb->cmd[0]); in usb_stor_CB_comdat()
601 usb_show_srb(srb); in usb_stor_CB_comdat()
609 srb->cmd, srb->cmdlen, in usb_stor_CB_comdat()
624 " Stat = %lX\n", srb->cmd[0], in usb_stor_CB_comdat()
632 dir_in ? "IN" : "OUT", srb->datalen); in usb_stor_CB_comdat()
633 if (srb->datalen) { in usb_stor_CB_comdat()
634 result = us_one_transfer(us, pipe, (char *)srb->pdata, in usb_stor_CB_comdat()
635 srb->datalen); in usb_stor_CB_comdat()
652 static int usb_stor_CBI_get_status(struct scsi_cmd *srb, struct us_data *us) in usb_stor_CBI_get_status() argument
675 if (srb->cmd[0] == SCSI_REQ_SENSE || in usb_stor_CBI_get_status()
676 srb->cmd[0] == SCSI_INQUIRY) in usb_stor_CBI_get_status()
707 static int usb_stor_BBB_transport(struct scsi_cmd *srb, struct us_data *us) in usb_stor_BBB_transport() argument
719 dir_in = US_DIRECTION(srb->cmd[0]); in usb_stor_BBB_transport()
723 result = usb_stor_BBB_comdat(srb, us); in usb_stor_BBB_transport()
737 if (srb->datalen == 0) in usb_stor_BBB_transport()
745 result = usb_bulk_msg(us->pusb_dev, pipe, srb->pdata, srb->datalen, in usb_stor_BBB_transport()
765 printf("pdata[%d] %#x ", index, srb->pdata[index]); in usb_stor_BBB_transport()
800 if (pipe == 0 && srb->datalen != 0 && srb->datalen - data_actlen != 0) in usb_stor_BBB_transport()
801 pipe = srb->datalen - data_actlen; in usb_stor_BBB_transport()
818 } else if (data_actlen > srb->datalen) { in usb_stor_BBB_transport()
820 data_actlen, srb->datalen); in usb_stor_BBB_transport()
830 static int usb_stor_CB_transport(struct scsi_cmd *srb, struct us_data *us) in usb_stor_CB_transport() argument
843 result = usb_stor_CB_comdat(srb, us); in usb_stor_CB_transport()
848 status = usb_stor_CBI_get_status(srb, us); in usb_stor_CB_transport()
854 srb->sense_buf[12] = (unsigned char)(us->ip_data >> 8); in usb_stor_CB_transport()
855 srb->sense_buf[13] = (unsigned char)(us->ip_data & 0xff); in usb_stor_CB_transport()
872 ((srb->cmd[0] == SCSI_REQ_SENSE) || in usb_stor_CB_transport()
873 (srb->cmd[0] == SCSI_INQUIRY))) { in usb_stor_CB_transport()
881 psrb->cmd[1] = srb->lun << 5; in usb_stor_CB_transport()
884 psrb->pdata = &srb->sense_buf[0]; in usb_stor_CB_transport()
899 srb->sense_buf[0], srb->sense_buf[2], in usb_stor_CB_transport()
900 srb->sense_buf[12], srb->sense_buf[13]); in usb_stor_CB_transport()
902 if ((srb->sense_buf[2] == 0) && in usb_stor_CB_transport()
903 (srb->sense_buf[12] == 0) && in usb_stor_CB_transport()
904 (srb->sense_buf[13] == 0)) { in usb_stor_CB_transport()
910 switch (srb->sense_buf[2]) { in usb_stor_CB_transport()
919 " 0x%02X (NOT READY)\n", srb->cmd[0], in usb_stor_CB_transport()
920 srb->sense_buf[0], srb->sense_buf[2], in usb_stor_CB_transport()
921 srb->sense_buf[12], srb->sense_buf[13]); in usb_stor_CB_transport()
931 " 0x%02X\n", srb->cmd[0], srb->sense_buf[0], in usb_stor_CB_transport()
932 srb->sense_buf[2], srb->sense_buf[12], in usb_stor_CB_transport()
933 srb->sense_buf[13]); in usb_stor_CB_transport()
976 static int usb_inquiry(struct scsi_cmd *srb, struct us_data *ss) in usb_inquiry() argument
981 memset(&srb->cmd[0], 0, 12); in usb_inquiry()
982 srb->cmd[0] = SCSI_INQUIRY; in usb_inquiry()
983 srb->cmd[1] = srb->lun << 5; in usb_inquiry()
984 srb->cmd[4] = 36; in usb_inquiry()
985 srb->datalen = 36; in usb_inquiry()
986 srb->cmdlen = 12; in usb_inquiry()
987 i = ss->transport(srb, ss); in usb_inquiry()
1000 static int usb_request_sense(struct scsi_cmd *srb, struct us_data *ss) in usb_request_sense() argument
1004 ptr = (char *)srb->pdata; in usb_request_sense()
1005 memset(&srb->cmd[0], 0, 12); in usb_request_sense()
1006 srb->cmd[0] = SCSI_REQ_SENSE; in usb_request_sense()
1007 srb->cmd[1] = srb->lun << 5; in usb_request_sense()
1008 srb->cmd[4] = 18; in usb_request_sense()
1009 srb->datalen = 18; in usb_request_sense()
1010 srb->pdata = &srb->sense_buf[0]; in usb_request_sense()
1011 srb->cmdlen = 12; in usb_request_sense()
1012 ss->transport(srb, ss); in usb_request_sense()
1014 srb->sense_buf[2], srb->sense_buf[12], in usb_request_sense()
1015 srb->sense_buf[13]); in usb_request_sense()
1016 srb->pdata = (uchar *)ptr; in usb_request_sense()
1020 static int usb_test_unit_ready(struct scsi_cmd *srb, struct us_data *ss) in usb_test_unit_ready() argument
1025 memset(&srb->cmd[0], 0, 12); in usb_test_unit_ready()
1026 srb->cmd[0] = SCSI_TST_U_RDY; in usb_test_unit_ready()
1027 srb->cmd[1] = srb->lun << 5; in usb_test_unit_ready()
1028 srb->datalen = 0; in usb_test_unit_ready()
1029 srb->cmdlen = 12; in usb_test_unit_ready()
1030 if (ss->transport(srb, ss) == USB_STOR_TRANSPORT_GOOD) { in usb_test_unit_ready()
1034 usb_request_sense(srb, ss); in usb_test_unit_ready()
1042 if ((srb->sense_buf[2] == 0x02) && in usb_test_unit_ready()
1043 (srb->sense_buf[12] == 0x3a)) in usb_test_unit_ready()
1051 static int usb_read_capacity(struct scsi_cmd *srb, struct us_data *ss) in usb_read_capacity() argument
1057 memset(&srb->cmd[0], 0, 12); in usb_read_capacity()
1058 srb->cmd[0] = SCSI_RD_CAPAC; in usb_read_capacity()
1059 srb->cmd[1] = srb->lun << 5; in usb_read_capacity()
1060 srb->datalen = 8; in usb_read_capacity()
1061 srb->cmdlen = 12; in usb_read_capacity()
1062 if (ss->transport(srb, ss) == USB_STOR_TRANSPORT_GOOD) in usb_read_capacity()
1069 static int usb_read_10(struct scsi_cmd *srb, struct us_data *ss, in usb_read_10() argument
1072 memset(&srb->cmd[0], 0, 12); in usb_read_10()
1073 srb->cmd[0] = SCSI_READ10; in usb_read_10()
1074 srb->cmd[1] = srb->lun << 5; in usb_read_10()
1075 srb->cmd[2] = ((unsigned char) (start >> 24)) & 0xff; in usb_read_10()
1076 srb->cmd[3] = ((unsigned char) (start >> 16)) & 0xff; in usb_read_10()
1077 srb->cmd[4] = ((unsigned char) (start >> 8)) & 0xff; in usb_read_10()
1078 srb->cmd[5] = ((unsigned char) (start)) & 0xff; in usb_read_10()
1079 srb->cmd[7] = ((unsigned char) (blocks >> 8)) & 0xff; in usb_read_10()
1080 srb->cmd[8] = (unsigned char) blocks & 0xff; in usb_read_10()
1081 srb->cmdlen = 12; in usb_read_10()
1083 return ss->transport(srb, ss); in usb_read_10()
1086 static int usb_write_10(struct scsi_cmd *srb, struct us_data *ss, in usb_write_10() argument
1089 memset(&srb->cmd[0], 0, 12); in usb_write_10()
1090 srb->cmd[0] = SCSI_WRITE10; in usb_write_10()
1091 srb->cmd[1] = srb->lun << 5; in usb_write_10()
1092 srb->cmd[2] = ((unsigned char) (start >> 24)) & 0xff; in usb_write_10()
1093 srb->cmd[3] = ((unsigned char) (start >> 16)) & 0xff; in usb_write_10()
1094 srb->cmd[4] = ((unsigned char) (start >> 8)) & 0xff; in usb_write_10()
1095 srb->cmd[5] = ((unsigned char) (start)) & 0xff; in usb_write_10()
1096 srb->cmd[7] = ((unsigned char) (blocks >> 8)) & 0xff; in usb_write_10()
1097 srb->cmd[8] = (unsigned char) blocks & 0xff; in usb_write_10()
1098 srb->cmdlen = 12; in usb_write_10()
1100 return ss->transport(srb, ss); in usb_write_10()
1141 struct scsi_cmd *srb = &usb_ccb; in usb_stor_read() local
1164 srb->lun = block_dev->lun; in usb_stor_read()
1175 srb->pdata = (unsigned char *)buf_addr; in usb_stor_read()
1183 srb->datalen = block_dev->blksz * smallblks; in usb_stor_read()
1184 srb->pdata = (unsigned char *)buf_addr; in usb_stor_read()
1185 if (usb_read_10(srb, ss, start, smallblks)) { in usb_stor_read()
1187 usb_request_sense(srb, ss); in usb_stor_read()
1195 buf_addr += srb->datalen; in usb_stor_read()
1223 struct scsi_cmd *srb = &usb_ccb; in usb_stor_write() local
1248 srb->lun = block_dev->lun; in usb_stor_write()
1261 srb->pdata = (unsigned char *)buf_addr; in usb_stor_write()
1269 srb->datalen = block_dev->blksz * smallblks; in usb_stor_write()
1270 srb->pdata = (unsigned char *)buf_addr; in usb_stor_write()
1271 if (usb_write_10(srb, ss, start, smallblks)) { in usb_stor_write()
1273 usb_request_sense(srb, ss); in usb_stor_write()
1281 buf_addr += srb->datalen; in usb_stor_write()