Lines Matching refs:srb
63 static int usbat_flash_transport(struct scsi_cmnd * srb, struct us_data *us);
64 static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us);
1048 usb_stor_access_xfer_buf(buffer, len, us->srb, in usbat_flash_read_data()
1124 usb_stor_access_xfer_buf(buffer, len, us->srb, in usbat_flash_write_data()
1159 struct scsi_cmnd *srb) in usbat_hp8200e_handle_read10() argument
1169 srb->transfersize); in usbat_hp8200e_handle_read10()
1171 if (scsi_bufflen(srb) < 0x10000) { in usbat_hp8200e_handle_read10()
1178 scsi_sglist(srb), in usbat_hp8200e_handle_read10()
1179 scsi_bufflen(srb), scsi_sg_count(srb), 1); in usbat_hp8200e_handle_read10()
1197 srb->transfersize = scsi_bufflen(srb)/len; in usbat_hp8200e_handle_read10()
1200 if (!srb->transfersize) { in usbat_hp8200e_handle_read10()
1201 srb->transfersize = 2048; /* A guess */ in usbat_hp8200e_handle_read10()
1203 srb->transfersize); in usbat_hp8200e_handle_read10()
1212 len = (65535/srb->transfersize) * srb->transfersize; in usbat_hp8200e_handle_read10()
1214 len = min(len, scsi_bufflen(srb)); in usbat_hp8200e_handle_read10()
1223 while (transferred != scsi_bufflen(srb)) { in usbat_hp8200e_handle_read10()
1225 if (len > scsi_bufflen(srb) - transferred) in usbat_hp8200e_handle_read10()
1226 len = scsi_bufflen(srb) - transferred; in usbat_hp8200e_handle_read10()
1239 data[7+7] = MSB_of(len / srb->transfersize); /* SCSI command */ in usbat_hp8200e_handle_read10()
1240 data[7+8] = LSB_of(len / srb->transfersize); /* num sectors */ in usbat_hp8200e_handle_read10()
1254 usb_stor_access_xfer_buf(buffer, len, srb, in usbat_hp8200e_handle_read10()
1260 sector += len / srb->transfersize; in usbat_hp8200e_handle_read10()
1422 static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us) in usbat_hp8200e_transport() argument
1431 len = scsi_bufflen(srb); in usbat_hp8200e_transport()
1455 data[i] = (i-7 >= srb->cmd_len) ? 0 : srb->cmnd[i-7]; in usbat_hp8200e_transport()
1462 if (srb->cmnd[0] == TEST_UNIT_READY) in usbat_hp8200e_transport()
1465 if (srb->sc_data_direction == DMA_TO_DEVICE) { in usbat_hp8200e_transport()
1472 scsi_sglist(srb), in usbat_hp8200e_transport()
1473 len, scsi_sg_count(srb), 10); in usbat_hp8200e_transport()
1482 } else if (srb->cmnd[0] == READ_10 || in usbat_hp8200e_transport()
1483 srb->cmnd[0] == GPCMD_READ_CD) { in usbat_hp8200e_transport()
1485 return usbat_hp8200e_handle_read10(us, registers, data, srb); in usbat_hp8200e_transport()
1511 USBAT_ATA, srb->cmnd, 12, in usbat_hp8200e_transport()
1512 (srb->cmnd[0]==GPCMD_BLANK ? 75 : 10), 0) != in usbat_hp8200e_transport()
1519 if (len != 0 && (srb->sc_data_direction == DMA_FROM_DEVICE)) { in usbat_hp8200e_transport()
1540 result = usbat_read_block(us, scsi_sglist(srb), len, in usbat_hp8200e_transport()
1541 scsi_sg_count(srb)); in usbat_hp8200e_transport()
1550 static int usbat_flash_transport(struct scsi_cmnd * srb, struct us_data *us) in usbat_flash_transport() argument
1560 if (srb->cmnd[0] == INQUIRY) { in usbat_flash_transport()
1567 if (srb->cmnd[0] == READ_CAPACITY) { in usbat_flash_transport()
1588 usb_stor_set_xfer_buf(ptr, 8, srb); in usbat_flash_transport()
1593 if (srb->cmnd[0] == MODE_SELECT_10) { in usbat_flash_transport()
1598 if (srb->cmnd[0] == READ_10) { in usbat_flash_transport()
1599 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) | in usbat_flash_transport()
1600 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5])); in usbat_flash_transport()
1602 blocks = ((u32)(srb->cmnd[7]) << 8) | ((u32)(srb->cmnd[8])); in usbat_flash_transport()
1608 if (srb->cmnd[0] == READ_12) { in usbat_flash_transport()
1612 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) | in usbat_flash_transport()
1613 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5])); in usbat_flash_transport()
1615 blocks = ((u32)(srb->cmnd[6]) << 24) | ((u32)(srb->cmnd[7]) << 16) | in usbat_flash_transport()
1616 ((u32)(srb->cmnd[8]) << 8) | ((u32)(srb->cmnd[9])); in usbat_flash_transport()
1622 if (srb->cmnd[0] == WRITE_10) { in usbat_flash_transport()
1623 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) | in usbat_flash_transport()
1624 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5])); in usbat_flash_transport()
1626 blocks = ((u32)(srb->cmnd[7]) << 8) | ((u32)(srb->cmnd[8])); in usbat_flash_transport()
1632 if (srb->cmnd[0] == WRITE_12) { in usbat_flash_transport()
1636 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) | in usbat_flash_transport()
1637 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5])); in usbat_flash_transport()
1639 blocks = ((u32)(srb->cmnd[6]) << 24) | ((u32)(srb->cmnd[7]) << 16) | in usbat_flash_transport()
1640 ((u32)(srb->cmnd[8]) << 8) | ((u32)(srb->cmnd[9])); in usbat_flash_transport()
1647 if (srb->cmnd[0] == TEST_UNIT_READY) { in usbat_flash_transport()
1657 if (srb->cmnd[0] == REQUEST_SENSE) { in usbat_flash_transport()
1666 usb_stor_set_xfer_buf(ptr, 18, srb); in usbat_flash_transport()
1671 if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) { in usbat_flash_transport()
1680 srb->cmnd[0], srb->cmnd[0]); in usbat_flash_transport()
1712 int usbat_transport(struct scsi_cmnd *srb, struct us_data *us) in usbat_transport() argument
1719 return us->transport(srb, us); in usbat_transport()