Lines Matching refs:qc
549 static void octeon_cf_dma_setup(struct ata_queued_cmd *qc) in octeon_cf_dma_setup() argument
551 struct ata_port *ap = qc->ap; in octeon_cf_dma_setup()
557 qc->cursg = qc->sg; in octeon_cf_dma_setup()
559 ap->ops->sff_exec_command(ap, &qc->tf); in octeon_cf_dma_setup()
568 static void octeon_cf_dma_start(struct ata_queued_cmd *qc) in octeon_cf_dma_start() argument
570 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start()
575 VPRINTK("%d scatterlists\n", qc->n_elem); in octeon_cf_dma_start()
578 sg = qc->cursg; in octeon_cf_dma_start()
597 mio_boot_dma_cfg.s.rw = ((qc->tf.flags & ATA_TFLAG_WRITE) != 0); in octeon_cf_dma_start()
631 struct ata_queued_cmd *qc) in octeon_cf_dma_finished() argument
640 ap->print_id, qc->tf.protocol, ap->hsm_task_state); in octeon_cf_dma_finished()
649 qc->err_mask |= AC_ERR_HOST_BUS; in octeon_cf_dma_finished()
668 ata_sff_hsm_move(ap, qc, status, 0); in octeon_cf_dma_finished()
670 if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA)) in octeon_cf_dma_finished()
694 struct ata_queued_cmd *qc; in octeon_cf_interrupt() local
704 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_interrupt()
706 if (!qc || (qc->tf.flags & ATA_TFLAG_POLLING)) in octeon_cf_interrupt()
710 if (!sg_is_last(qc->cursg)) { in octeon_cf_interrupt()
711 qc->cursg = sg_next(qc->cursg); in octeon_cf_interrupt()
713 octeon_cf_dma_start(qc); in octeon_cf_interrupt()
740 handled |= octeon_cf_dma_finished(ap, qc); in octeon_cf_interrupt()
755 struct ata_queued_cmd *qc; in octeon_cf_delayed_finish() local
778 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_delayed_finish()
779 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) in octeon_cf_delayed_finish()
780 octeon_cf_dma_finished(ap, qc); in octeon_cf_delayed_finish()
799 static int octeon_cf_check_atapi_dma(struct ata_queued_cmd *qc) in octeon_cf_check_atapi_dma() argument
804 static unsigned int octeon_cf_qc_issue(struct ata_queued_cmd *qc) in octeon_cf_qc_issue() argument
806 struct ata_port *ap = qc->ap; in octeon_cf_qc_issue()
808 switch (qc->tf.protocol) { in octeon_cf_qc_issue()
810 WARN_ON(qc->tf.flags & ATA_TFLAG_POLLING); in octeon_cf_qc_issue()
812 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */ in octeon_cf_qc_issue()
813 octeon_cf_dma_setup(qc); /* set up dma */ in octeon_cf_qc_issue()
814 octeon_cf_dma_start(qc); /* initiate dma */ in octeon_cf_qc_issue()
823 return ata_sff_qc_issue(qc); in octeon_cf_qc_issue()