diff options
-rw-r--r-- | drivers/ata/pata_arasan_cf.c | 7 |
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 | ||
675 | static void arasan_cf_dma_start(struct arasan_cf_dev *acdev) | 675 | static 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 | ||