Lines Matching refs:srb

149 static int usbat_flash_transport(struct scsi_cmnd * srb, struct us_data *us);
150 static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us);
1180 usb_stor_access_xfer_buf(buffer, len, us->srb,
1256 usb_stor_access_xfer_buf(buffer, len, us->srb,
1291 struct scsi_cmnd *srb)
1300 usb_stor_dbg(us, "transfersize %d\n", srb->transfersize);
1302 if (scsi_bufflen(srb) < 0x10000) {
1309 scsi_sglist(srb),
1310 scsi_bufflen(srb), scsi_sg_count(srb), 1);
1319 * a sector. Luckily the sector size is in srb->transfersize
1328 srb->transfersize = scsi_bufflen(srb)/len;
1331 if (!srb->transfersize) {
1332 srb->transfersize = 2048; /* A guess */
1334 srb->transfersize);
1343 len = (65535/srb->transfersize) * srb->transfersize;
1345 len = min(len, scsi_bufflen(srb));
1354 while (transferred != scsi_bufflen(srb)) {
1356 if (len > scsi_bufflen(srb) - transferred)
1357 len = scsi_bufflen(srb) - transferred;
1370 data[7+7] = MSB_of(len / srb->transfersize); /* SCSI command */
1371 data[7+8] = LSB_of(len / srb->transfersize); /* num sectors */
1385 usb_stor_access_xfer_buf(buffer, len, srb,
1391 sector += len / srb->transfersize;
1393 } /* while transferred != scsi_bufflen(srb) */
1552 static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us)
1561 len = scsi_bufflen(srb);
1586 data[i] = (i-7 >= srb->cmd_len) ? 0 : srb->cmnd[i-7];
1593 if (srb->cmnd[0] == TEST_UNIT_READY)
1596 if (srb->sc_data_direction == DMA_TO_DEVICE) {
1603 scsi_sglist(srb),
1604 len, scsi_sg_count(srb), 10);
1613 } else if (srb->cmnd[0] == READ_10 ||
1614 srb->cmnd[0] == GPCMD_READ_CD) {
1616 return usbat_hp8200e_handle_read10(us, registers, data, srb);
1641 result = usbat_write_block(us, USBAT_ATA, srb->cmnd, 12,
1642 srb->cmnd[0] == GPCMD_BLANK ? 75 : 10, 0);
1649 if (len != 0 && (srb->sc_data_direction == DMA_FROM_DEVICE)) {
1670 result = usbat_read_block(us, scsi_sglist(srb), len,
1671 scsi_sg_count(srb));
1680 static int usbat_flash_transport(struct scsi_cmnd * srb, struct us_data *us)
1690 if (srb->cmnd[0] == INQUIRY) {
1697 if (srb->cmnd[0] == READ_CAPACITY) {
1718 usb_stor_set_xfer_buf(ptr, 8, srb);
1723 if (srb->cmnd[0] == MODE_SELECT_10) {
1728 if (srb->cmnd[0] == READ_10) {
1729 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) |
1730 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5]));
1732 blocks = ((u32)(srb->cmnd[7]) << 8) | ((u32)(srb->cmnd[8]));
1739 if (srb->cmnd[0] == READ_12) {
1743 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) |
1744 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5]));
1746 blocks = ((u32)(srb->cmnd[6]) << 24) | ((u32)(srb->cmnd[7]) << 16) |
1747 ((u32)(srb->cmnd[8]) << 8) | ((u32)(srb->cmnd[9]));
1754 if (srb->cmnd[0] == WRITE_10) {
1755 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) |
1756 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5]));
1758 blocks = ((u32)(srb->cmnd[7]) << 8) | ((u32)(srb->cmnd[8]));
1765 if (srb->cmnd[0] == WRITE_12) {
1769 block = ((u32)(srb->cmnd[2]) << 24) | ((u32)(srb->cmnd[3]) << 16) |
1770 ((u32)(srb->cmnd[4]) << 8) | ((u32)(srb->cmnd[5]));
1772 blocks = ((u32)(srb->cmnd[6]) << 24) | ((u32)(srb->cmnd[7]) << 16) |
1773 ((u32)(srb->cmnd[8]) << 8) | ((u32)(srb->cmnd[9]));
1781 if (srb->cmnd[0] == TEST_UNIT_READY) {
1791 if (srb->cmnd[0] == REQUEST_SENSE) {
1800 usb_stor_set_xfer_buf(ptr, 18, srb);
1805 if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) {
1814 srb->cmnd[0], srb->cmnd[0]);