|
@@ -1020,8 +1020,7 @@ static int ahci_softreset(struct ata_port *ap, unsigned int *class,
|
|
|
cmd_fis_len | AHCI_CMD_RESET | AHCI_CMD_CLR_BUSY);
|
|
|
|
|
|
tf.ctl |= ATA_SRST;
|
|
|
- ata_tf_to_fis(&tf, fis, 0);
|
|
|
- fis[1] &= ~(1 << 7); /* turn off Command FIS bit */
|
|
|
+ ata_tf_to_fis(&tf, 0, 0, fis);
|
|
|
|
|
|
writel(1, port_mmio + PORT_CMD_ISSUE);
|
|
|
|
|
@@ -1039,8 +1038,7 @@ static int ahci_softreset(struct ata_port *ap, unsigned int *class,
|
|
|
ahci_fill_cmd_slot(pp, 0, cmd_fis_len);
|
|
|
|
|
|
tf.ctl &= ~ATA_SRST;
|
|
|
- ata_tf_to_fis(&tf, fis, 0);
|
|
|
- fis[1] &= ~(1 << 7); /* turn off Command FIS bit */
|
|
|
+ ata_tf_to_fis(&tf, 0, 0, fis);
|
|
|
|
|
|
writel(1, port_mmio + PORT_CMD_ISSUE);
|
|
|
readl(port_mmio + PORT_CMD_ISSUE); /* flush */
|
|
@@ -1088,7 +1086,7 @@ static int ahci_hardreset(struct ata_port *ap, unsigned int *class,
|
|
|
/* clear D2H reception area to properly wait for D2H FIS */
|
|
|
ata_tf_init(ap->device, &tf);
|
|
|
tf.command = 0x80;
|
|
|
- ata_tf_to_fis(&tf, d2h_fis, 0);
|
|
|
+ ata_tf_to_fis(&tf, 0, 0, d2h_fis);
|
|
|
|
|
|
rc = sata_std_hardreset(ap, class, deadline);
|
|
|
|
|
@@ -1205,7 +1203,7 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc)
|
|
|
*/
|
|
|
cmd_tbl = pp->cmd_tbl + qc->tag * AHCI_CMD_TBL_SZ;
|
|
|
|
|
|
- ata_tf_to_fis(&qc->tf, cmd_tbl, 0);
|
|
|
+ ata_tf_to_fis(&qc->tf, 0, 1, cmd_tbl);
|
|
|
if (is_atapi) {
|
|
|
memset(cmd_tbl + AHCI_CMD_TBL_CDB, 0, 32);
|
|
|
memcpy(cmd_tbl + AHCI_CMD_TBL_CDB, qc->cdb, qc->dev->cdb_len);
|