aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/pata_arasan_cf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
index 371fd2c698b7..9764e80f9320 100644
--- a/drivers/ata/pata_arasan_cf.c
+++ b/drivers/ata/pata_arasan_cf.c
@@ -674,13 +674,16 @@ void arasan_cf_error_handler(struct ata_port *ap)
674 674
675static void arasan_cf_dma_start(struct arasan_cf_dev *acdev) 675static void arasan_cf_dma_start(struct arasan_cf_dev *acdev)
676{ 676{
677 struct ata_queued_cmd *qc = acdev->qc;
678 struct ata_port *ap = qc->ap;
679 struct ata_taskfile *tf = &qc->tf;
677 u32 xfer_ctr = readl(acdev->vbase + XFER_CTR) & ~XFER_DIR_MASK; 680 u32 xfer_ctr = readl(acdev->vbase + XFER_CTR) & ~XFER_DIR_MASK;
678 u32 write = acdev->qc->tf.flags & ATA_TFLAG_WRITE; 681 u32 write = tf->flags & ATA_TFLAG_WRITE;
679 682
680 xfer_ctr |= write ? XFER_WRITE : XFER_READ; 683 xfer_ctr |= write ? XFER_WRITE : XFER_READ;
681 writel(xfer_ctr, acdev->vbase + XFER_CTR); 684 writel(xfer_ctr, acdev->vbase + XFER_CTR);
682 685
683 acdev->qc->ap->ops->sff_exec_command(acdev->qc->ap, &acdev->qc->tf); 686 ap->ops->sff_exec_command(ap, tf);
684 ata_sff_queue_work(&acdev->work); 687 ata_sff_queue_work(&acdev->work);
685} 688}
686 689