aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas')
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 3220b3fc6b20..274e7eb47f37 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -828,8 +828,14 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
828 task->ata_task.retry_count = 1; 828 task->ata_task.retry_count = 1;
829 task->task_state_flags = SAS_TASK_STATE_PENDING; 829 task->task_state_flags = SAS_TASK_STATE_PENDING;
830 830
831 if (qc->tf.protocol == ATA_PROT_DMA) 831 switch (qc->tf.protocol) {
832 case ATA_PROT_NCQ:
833 task->ata_task.use_ncq = 1;
834 /* fall through */
835 case ATA_PROT_DMA:
832 task->ata_task.dma_xfer = 1; 836 task->ata_task.dma_xfer = 1;
837 break;
838 }
833 839
834 if (sas_ha->lldd_max_execute_num < 2) 840 if (sas_ha->lldd_max_execute_num < 2)
835 res = i->dft->lldd_execute_task(task, 1, GFP_ATOMIC); 841 res = i->dft->lldd_execute_task(task, 1, GFP_ATOMIC);
@@ -962,7 +968,7 @@ static struct ata_port_operations sas_sata_ops = {
962 968
963static struct ata_port_info sata_port_info = { 969static struct ata_port_info sata_port_info = {
964 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | ATA_FLAG_SATA_RESET | 970 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | ATA_FLAG_SATA_RESET |
965 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA, 971 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | ATA_FLAG_NCQ,
966 .pio_mask = 0x1f, /* PIO0-4 */ 972 .pio_mask = 0x1f, /* PIO0-4 */
967 .mwdma_mask = 0x07, /* MWDMA0-2 */ 973 .mwdma_mask = 0x07, /* MWDMA0-2 */
968 .udma_mask = ATA_UDMA6, 974 .udma_mask = ATA_UDMA6,
@@ -1031,6 +1037,7 @@ int sas_target_alloc(struct scsi_target *starget)
1031 1037
1032 ap->private_data = found_dev; 1038 ap->private_data = found_dev;
1033 ap->cbl = ATA_CBL_SATA; 1039 ap->cbl = ATA_CBL_SATA;
1040 ap->scsi_host = shost;
1034 found_dev->sata_dev.ap = ap; 1041 found_dev->sata_dev.ap = ap;
1035 } 1042 }
1036 1043