aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic94xx/aic94xx_task.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aic94xx/aic94xx_task.c')
-rw-r--r--drivers/scsi/aic94xx/aic94xx_task.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c
index 5ff1ce7ba1f4..cdd4ab683be9 100644
--- a/drivers/scsi/aic94xx/aic94xx_task.c
+++ b/drivers/scsi/aic94xx/aic94xx_task.c
@@ -373,10 +373,10 @@ static int asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task,
373 373
374 if (unlikely(task->ata_task.device_control_reg_update)) 374 if (unlikely(task->ata_task.device_control_reg_update))
375 scb->header.opcode = CONTROL_ATA_DEV; 375 scb->header.opcode = CONTROL_ATA_DEV;
376 else if (dev->sata_dev.command_set == ATA_COMMAND_SET) 376 else if (dev->sata_dev.class == ATA_DEV_ATAPI)
377 scb->header.opcode = INITIATE_ATA_TASK;
378 else
379 scb->header.opcode = INITIATE_ATAPI_TASK; 377 scb->header.opcode = INITIATE_ATAPI_TASK;
378 else
379 scb->header.opcode = INITIATE_ATA_TASK;
380 380
381 scb->ata_task.proto_conn_rate = (1 << 5); /* STP */ 381 scb->ata_task.proto_conn_rate = (1 << 5); /* STP */
382 if (dev->port->oob_mode == SAS_OOB_MODE) 382 if (dev->port->oob_mode == SAS_OOB_MODE)
@@ -387,7 +387,7 @@ static int asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task,
387 if (likely(!task->ata_task.device_control_reg_update)) 387 if (likely(!task->ata_task.device_control_reg_update))
388 scb->ata_task.fis.flags |= 0x80; /* C=1: update ATA cmd reg */ 388 scb->ata_task.fis.flags |= 0x80; /* C=1: update ATA cmd reg */
389 scb->ata_task.fis.flags &= 0xF0; /* PM_PORT field shall be 0 */ 389 scb->ata_task.fis.flags &= 0xF0; /* PM_PORT field shall be 0 */
390 if (dev->sata_dev.command_set == ATAPI_COMMAND_SET) 390 if (dev->sata_dev.class == ATA_DEV_ATAPI)
391 memcpy(scb->ata_task.atapi_packet, task->ata_task.atapi_packet, 391 memcpy(scb->ata_task.atapi_packet, task->ata_task.atapi_packet,
392 16); 392 16);
393 scb->ata_task.sister_scb = cpu_to_le16(0xFFFF); 393 scb->ata_task.sister_scb = cpu_to_le16(0xFFFF);
@@ -399,7 +399,7 @@ static int asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task,
399 if (task->ata_task.dma_xfer) 399 if (task->ata_task.dma_xfer)
400 flags |= DATA_XFER_MODE_DMA; 400 flags |= DATA_XFER_MODE_DMA;
401 if (task->ata_task.use_ncq && 401 if (task->ata_task.use_ncq &&
402 dev->sata_dev.command_set != ATAPI_COMMAND_SET) 402 dev->sata_dev.class != ATA_DEV_ATAPI)
403 flags |= ATA_Q_TYPE_NCQ; 403 flags |= ATA_Q_TYPE_NCQ;
404 flags |= data_dir_flags[task->data_dir]; 404 flags |= data_dir_flags[task->data_dir];
405 scb->ata_task.ata_flags = flags; 405 scb->ata_task.ata_flags = flags;