Lines Matching refs:qc

290 static unsigned int octeon_cf_data_xfer8(struct ata_queued_cmd *qc,  in octeon_cf_data_xfer8()  argument
295 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer8()
329 static unsigned int octeon_cf_data_xfer16(struct ata_queued_cmd *qc, in octeon_cf_data_xfer16() argument
334 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer16()
517 static void octeon_cf_dma_setup(struct ata_queued_cmd *qc) in octeon_cf_dma_setup() argument
519 struct ata_port *ap = qc->ap; in octeon_cf_dma_setup()
524 qc->cursg = qc->sg; in octeon_cf_dma_setup()
526 ap->ops->sff_exec_command(ap, &qc->tf); in octeon_cf_dma_setup()
534 static void octeon_cf_dma_start(struct ata_queued_cmd *qc) in octeon_cf_dma_start() argument
536 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start()
542 sg = qc->cursg; in octeon_cf_dma_start()
561 mio_boot_dma_cfg.s.rw = ((qc->tf.flags & ATA_TFLAG_WRITE) != 0); in octeon_cf_dma_start()
591 struct ata_queued_cmd *qc) in octeon_cf_dma_finished() argument
599 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag); in octeon_cf_dma_finished()
607 qc->err_mask |= AC_ERR_HOST_BUS; in octeon_cf_dma_finished()
626 ata_sff_hsm_move(ap, qc, status, 0); in octeon_cf_dma_finished()
628 if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA)) in octeon_cf_dma_finished()
651 struct ata_queued_cmd *qc; in octeon_cf_interrupt() local
661 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_interrupt()
663 if (!qc || (qc->tf.flags & ATA_TFLAG_POLLING)) in octeon_cf_interrupt()
667 if (!sg_is_last(qc->cursg)) { in octeon_cf_interrupt()
668 qc->cursg = sg_next(qc->cursg); in octeon_cf_interrupt()
670 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_interrupt()
671 octeon_cf_dma_start(qc); in octeon_cf_interrupt()
698 handled |= octeon_cf_dma_finished(ap, qc); in octeon_cf_interrupt()
712 struct ata_queued_cmd *qc; in octeon_cf_delayed_finish() local
735 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_delayed_finish()
736 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) in octeon_cf_delayed_finish()
737 octeon_cf_dma_finished(ap, qc); in octeon_cf_delayed_finish()
756 static int octeon_cf_check_atapi_dma(struct ata_queued_cmd *qc) in octeon_cf_check_atapi_dma() argument
761 static unsigned int octeon_cf_qc_issue(struct ata_queued_cmd *qc) in octeon_cf_qc_issue() argument
763 struct ata_port *ap = qc->ap; in octeon_cf_qc_issue()
765 switch (qc->tf.protocol) { in octeon_cf_qc_issue()
767 WARN_ON(qc->tf.flags & ATA_TFLAG_POLLING); in octeon_cf_qc_issue()
769 trace_ata_tf_load(ap, &qc->tf); in octeon_cf_qc_issue()
770 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */ in octeon_cf_qc_issue()
771 trace_ata_bmdma_setup(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
772 octeon_cf_dma_setup(qc); /* set up dma */ in octeon_cf_qc_issue()
773 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
774 octeon_cf_dma_start(qc); /* initiate dma */ in octeon_cf_qc_issue()
783 return ata_sff_qc_issue(qc); in octeon_cf_qc_issue()