• Home
  • Raw
  • Download

Lines Matching refs:srb

294 	struct scsi_cmnd srb;  member
363 static void isd200_build_sense(struct us_data *us, struct scsi_cmnd *srb) in isd200_build_sense() argument
366 struct sense_data *buf = (struct sense_data *) &srb->sense_buffer[0]; in isd200_build_sense()
416 struct scsi_cmnd *srb = &info->srb; in isd200_set_srb() local
421 srb->sc_data_direction = dir; in isd200_set_srb()
422 srb->sdb.table.sgl = buff ? &info->sg : NULL; in isd200_set_srb()
423 srb->sdb.length = bufflen; in isd200_set_srb()
424 srb->sdb.table.nents = buff ? 1 : 0; in isd200_set_srb()
427 static void isd200_srb_set_bufflen(struct scsi_cmnd *srb, unsigned bufflen) in isd200_srb_set_bufflen() argument
429 srb->sdb.length = bufflen; in isd200_srb_set_bufflen()
447 struct scsi_cmnd *srb = &info->srb; in isd200_action() local
452 srb->cmnd = info->cmnd; in isd200_action()
453 srb->device = &srb_dev; in isd200_action()
454 ++srb->serial_number; in isd200_action()
520 memcpy(srb->cmnd, &ata, sizeof(ata.generic)); in isd200_action()
521 srb->cmd_len = sizeof(ata.generic); in isd200_action()
522 status = usb_stor_Bulk_transport(srb, us); in isd200_action()
572 struct scsi_cmnd *srb, in isd200_invoke_transport() argument
580 memcpy(srb->cmnd, ataCdb, sizeof(ataCdb->generic)); in isd200_invoke_transport()
581 srb->cmd_len = sizeof(ataCdb->generic); in isd200_invoke_transport()
582 transferStatus = usb_stor_Bulk_transport(srb, us); in isd200_invoke_transport()
596 srb->result = SAM_STAT_GOOD; in isd200_invoke_transport()
601 srb->result = SAM_STAT_CHECK_CONDITION; in isd200_invoke_transport()
611 srb->result = DID_ERROR << 16; in isd200_invoke_transport()
617 srb->result = DID_ERROR << 16; in isd200_invoke_transport()
622 if ((scsi_get_resid(srb) > 0) && in isd200_invoke_transport()
623 !((srb->cmnd[0] == REQUEST_SENSE) || in isd200_invoke_transport()
624 (srb->cmnd[0] == INQUIRY) || in isd200_invoke_transport()
625 (srb->cmnd[0] == MODE_SENSE) || in isd200_invoke_transport()
626 (srb->cmnd[0] == LOG_SENSE) || in isd200_invoke_transport()
627 (srb->cmnd[0] == MODE_SENSE_10))) { in isd200_invoke_transport()
639 isd200_build_sense(us, srb); in isd200_invoke_transport()
640 srb->result = SAM_STAT_CHECK_CONDITION; in isd200_invoke_transport()
643 if ((srb->sense_buffer[2] & 0xf) == 0x0) in isd200_invoke_transport()
644 srb->result = SAM_STAT_GOOD; in isd200_invoke_transport()
646 srb->result = DID_ERROR << 16; in isd200_invoke_transport()
655 srb->result = SAM_STAT_CHECK_CONDITION; in isd200_invoke_transport()
661 srb->result = DID_ABORT << 16; in isd200_invoke_transport()
1253 static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us, in isd200_scsi_to_ata() argument
1268 switch (srb->cmnd[0]) { in isd200_scsi_to_ata()
1274 sizeof(info->InquiryData), srb); in isd200_scsi_to_ata()
1275 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1283 usb_stor_set_xfer_buf(senseData, sizeof(senseData), srb); in isd200_scsi_to_ata()
1292 isd200_srb_set_bufflen(srb, 0); in isd200_scsi_to_ata()
1295 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1310 isd200_srb_set_bufflen(srb, 0); in isd200_scsi_to_ata()
1313 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1336 sizeof(readCapacityData), srb); in isd200_scsi_to_ata()
1337 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1345 lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]); in isd200_scsi_to_ata()
1346 blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8]; in isd200_scsi_to_ata()
1377 lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]); in isd200_scsi_to_ata()
1378 blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8]; in isd200_scsi_to_ata()
1408 US_DEBUGP(" srb->cmnd[4] = 0x%X\n", srb->cmnd[4]); in isd200_scsi_to_ata()
1414 ataCdb->write.CommandByte = (srb->cmnd[4] & 0x1) ? in isd200_scsi_to_ata()
1416 isd200_srb_set_bufflen(srb, 0); in isd200_scsi_to_ata()
1419 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1426 US_DEBUGP(" srb->cmnd[4] = 0x%X\n", srb->cmnd[4]); in isd200_scsi_to_ata()
1428 if ((srb->cmnd[4] & 0x3) == 0x2) { in isd200_scsi_to_ata()
1435 } else if ((srb->cmnd[4] & 0x3) == 0x1) { in isd200_scsi_to_ata()
1442 isd200_srb_set_bufflen(srb, 0); in isd200_scsi_to_ata()
1445 srb->result = SAM_STAT_GOOD; in isd200_scsi_to_ata()
1451 US_DEBUGP("Unsupported SCSI command - 0x%X\n", srb->cmnd[0]); in isd200_scsi_to_ata()
1452 srb->result = DID_ERROR << 16; in isd200_scsi_to_ata()
1473 kfree(info->srb.sense_buffer); in isd200_free_info_ptrs()
1499 info->srb.sense_buffer = in isd200_init_info()
1501 if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) { in isd200_init_info()
1552 void isd200_ata_command(struct scsi_cmnd *srb, struct us_data *us) in isd200_ata_command() argument
1562 scsi_set_resid(srb, 0); in isd200_ata_command()
1564 orig_bufflen = scsi_bufflen(srb); in isd200_ata_command()
1565 sendToTransport = isd200_scsi_to_ata(srb, us, &ataCdb); in isd200_ata_command()
1569 isd200_invoke_transport(us, srb, &ataCdb); in isd200_ata_command()
1571 isd200_srb_set_bufflen(srb, orig_bufflen); in isd200_ata_command()