1385 ADD_INDEX_LOG(my_idx);
1386
1387
1388
1389
1390
1391 if (SCpnt->sc_data_direction == DMA_FROM_DEVICE) {
1392 datalen = scsi_bufflen(SCpnt);
1393 scsidir = MPI_SCSIIO_CONTROL_READ;
1394 } else if (SCpnt->sc_data_direction == DMA_TO_DEVICE) {
1395 datalen = scsi_bufflen(SCpnt);
1396 scsidir = MPI_SCSIIO_CONTROL_WRITE;
1397 } else {
1398 datalen = 0;
1399 scsidir = MPI_SCSIIO_CONTROL_NODATATRANSFER;
1400 }
1401
1402
1403
1404
1405 if (vdevice
1406 && (vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)
1407 && (SCpnt->device->tagged_supported)) {
1408 scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ;
1409 } else {
1410 scsictl = scsidir | MPI_SCSIIO_CONTROL_UNTAGGED;
1411 }
1412
1413
1414
1415 pScsiReq->TargetID = (u8) vdevice->vtarget->id;
1416 pScsiReq->Bus = vdevice->vtarget->channel;
1417 pScsiReq->ChainOffset = 0;
1418 if (vdevice->vtarget->tflags & MPT_TARGET_FLAGS_RAID_COMPONENT)
1419 pScsiReq->Function = MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH;
1420 else
1421 pScsiReq->Function = MPI_FUNCTION_SCSI_IO_REQUEST;
1422 pScsiReq->CDBLength = SCpnt->cmd_len;
1423 pScsiReq->SenseBufferLength = MPT_SENSE_BUFFER_SIZE;
1424 pScsiReq->Reserved = 0;
1425 pScsiReq->MsgFlags = mpt_msg_flags();