|
@@ -674,13 +674,16 @@ void arasan_cf_error_handler(struct ata_port *ap)
|
|
|
|
|
|
static void arasan_cf_dma_start(struct arasan_cf_dev *acdev)
|
|
|
{
|
|
|
+ struct ata_queued_cmd *qc = acdev->qc;
|
|
|
+ struct ata_port *ap = qc->ap;
|
|
|
+ struct ata_taskfile *tf = &qc->tf;
|
|
|
u32 xfer_ctr = readl(acdev->vbase + XFER_CTR) & ~XFER_DIR_MASK;
|
|
|
- u32 write = acdev->qc->tf.flags & ATA_TFLAG_WRITE;
|
|
|
+ u32 write = tf->flags & ATA_TFLAG_WRITE;
|
|
|
|
|
|
xfer_ctr |= write ? XFER_WRITE : XFER_READ;
|
|
|
writel(xfer_ctr, acdev->vbase + XFER_CTR);
|
|
|
|
|
|
- acdev->qc->ap->ops->sff_exec_command(acdev->qc->ap, &acdev->qc->tf);
|
|
|
+ ap->ops->sff_exec_command(ap, tf);
|
|
|
ata_sff_queue_work(&acdev->work);
|
|
|
}
|
|
|
|