Lines Matching refs:qc
607 static int mv_qc_defer(struct ata_queued_cmd *qc);
608 static void mv_qc_prep(struct ata_queued_cmd *qc);
609 static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
610 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
663 static int mv_check_atapi_dma(struct ata_queued_cmd *qc);
664 static void mv_bmdma_setup(struct ata_queued_cmd *qc);
665 static void mv_bmdma_start(struct ata_queued_cmd *qc);
666 static void mv_bmdma_stop(struct ata_queued_cmd *qc);
1435 static int mv_qc_defer(struct ata_queued_cmd *qc) in mv_qc_defer() argument
1437 struct ata_link *link = qc->dev->link; in mv_qc_defer()
1460 qc->flags |= ATA_QCFLAG_CLEAR_EXCL; in mv_qc_defer()
1480 if (ata_is_ncq(qc->tf.protocol)) in mv_qc_defer()
1800 static void mv_fill_sg(struct ata_queued_cmd *qc) in mv_fill_sg() argument
1802 struct mv_port_priv *pp = qc->ap->private_data; in mv_fill_sg()
1807 mv_sg = pp->sg_tbl[qc->tag]; in mv_fill_sg()
1808 for_each_sg(qc->sg, sg, qc->n_elem, si) { in mv_fill_sg()
1868 static int mv_check_atapi_dma(struct ata_queued_cmd *qc) in mv_check_atapi_dma() argument
1870 struct scsi_cmnd *scmd = qc->scsicmd; in mv_check_atapi_dma()
1896 static void mv_bmdma_setup(struct ata_queued_cmd *qc) in mv_bmdma_setup() argument
1898 struct ata_port *ap = qc->ap; in mv_bmdma_setup()
1902 mv_fill_sg(qc); in mv_bmdma_setup()
1908 writel((pp->sg_tbl_dma[qc->tag] >> 16) >> 16, in mv_bmdma_setup()
1910 writelfl(pp->sg_tbl_dma[qc->tag], in mv_bmdma_setup()
1914 ap->ops->sff_exec_command(ap, &qc->tf); in mv_bmdma_setup()
1924 static void mv_bmdma_start(struct ata_queued_cmd *qc) in mv_bmdma_start() argument
1926 struct ata_port *ap = qc->ap; in mv_bmdma_start()
1928 unsigned int rw = (qc->tf.flags & ATA_TFLAG_WRITE); in mv_bmdma_start()
1960 static void mv_bmdma_stop(struct ata_queued_cmd *qc) in mv_bmdma_stop() argument
1962 mv_bmdma_stop_ap(qc->ap); in mv_bmdma_stop()
2004 static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc) in mv_rw_multi_errata_sata24() argument
2006 struct ata_taskfile *tf = &qc->tf; in mv_rw_multi_errata_sata24()
2021 if (qc->dev->multi_count > 7) { in mv_rw_multi_errata_sata24()
2049 static void mv_qc_prep(struct ata_queued_cmd *qc) in mv_qc_prep() argument
2051 struct ata_port *ap = qc->ap; in mv_qc_prep()
2054 struct ata_taskfile *tf = &qc->tf; in mv_qc_prep()
2066 mv_rw_multi_errata_sata24(qc); in mv_qc_prep()
2076 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag); in mv_qc_prep()
2077 flags |= qc->tag << CRQB_TAG_SHIFT; in mv_qc_prep()
2078 flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT; in mv_qc_prep()
2084 cpu_to_le32(pp->sg_tbl_dma[qc->tag] & 0xffffffff); in mv_qc_prep()
2086 cpu_to_le32((pp->sg_tbl_dma[qc->tag] >> 16) >> 16); in mv_qc_prep()
2133 if (!(qc->flags & ATA_QCFLAG_DMAMAP)) in mv_qc_prep()
2135 mv_fill_sg(qc); in mv_qc_prep()
2150 static void mv_qc_prep_iie(struct ata_queued_cmd *qc) in mv_qc_prep_iie() argument
2152 struct ata_port *ap = qc->ap; in mv_qc_prep_iie()
2155 struct ata_taskfile *tf = &qc->tf; in mv_qc_prep_iie()
2169 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag); in mv_qc_prep_iie()
2170 flags |= qc->tag << CRQB_TAG_SHIFT; in mv_qc_prep_iie()
2171 flags |= qc->tag << CRQB_HOSTQ_SHIFT; in mv_qc_prep_iie()
2172 flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT; in mv_qc_prep_iie()
2178 crqb->addr = cpu_to_le32(pp->sg_tbl_dma[qc->tag] & 0xffffffff); in mv_qc_prep_iie()
2179 crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->tag] >> 16) >> 16); in mv_qc_prep_iie()
2203 if (!(qc->flags & ATA_QCFLAG_DMAMAP)) in mv_qc_prep_iie()
2205 mv_fill_sg(qc); in mv_qc_prep_iie()
2296 static unsigned int mv_qc_issue_fis(struct ata_queued_cmd *qc) in mv_qc_issue_fis() argument
2298 struct ata_port *ap = qc->ap; in mv_qc_issue_fis()
2300 struct ata_link *link = qc->dev->link; in mv_qc_issue_fis()
2304 ata_tf_to_fis(&qc->tf, link->pmp, 1, (void *)fis); in mv_qc_issue_fis()
2309 switch (qc->tf.protocol) { in mv_qc_issue_fis()
2318 if (qc->tf.flags & ATA_TFLAG_WRITE) in mv_qc_issue_fis()
2328 if (qc->tf.flags & ATA_TFLAG_POLLING) in mv_qc_issue_fis()
2345 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc) in mv_qc_issue() argument
2348 struct ata_port *ap = qc->ap; in mv_qc_issue()
2356 switch (qc->tf.protocol) { in mv_qc_issue()
2358 if (qc->tf.command == ATA_CMD_DSM) { in mv_qc_issue()
2365 mv_start_edma(ap, port_mmio, pp, qc->tf.protocol); in mv_qc_issue()
2386 if (limit_warnings > 0 && (qc->nbytes / qc->sect_size) > 1) { in mv_qc_issue()
2388 ata_link_warn(qc->dev->link, DRV_NAME in mv_qc_issue()
2397 qc->tf.flags |= ATA_TFLAG_POLLING; in mv_qc_issue()
2401 if (qc->tf.flags & ATA_TFLAG_POLLING) in mv_qc_issue()
2413 mv_pmp_select(ap, qc->dev->link->pmp); in mv_qc_issue()
2415 if (qc->tf.command == ATA_CMD_READ_LOG_EXT) { in mv_qc_issue()
2429 return mv_qc_issue_fis(qc); in mv_qc_issue()
2431 return ata_bmdma_qc_issue(qc); in mv_qc_issue()
2437 struct ata_queued_cmd *qc; in mv_get_active_qc() local
2441 qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_get_active_qc()
2442 if (qc && !(qc->tf.flags & ATA_TFLAG_POLLING)) in mv_get_active_qc()
2443 return qc; in mv_get_active_qc()
2630 struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_unexpected_intr() local
2631 if (qc && (qc->tf.flags & ATA_TFLAG_POLLING)) in mv_unexpected_intr()
2660 struct ata_queued_cmd *qc; in mv_err_intr() local
2687 qc = mv_get_active_qc(ap); in mv_err_intr()
2756 if (qc) in mv_err_intr()
2757 qc->err_mask |= err_mask; in mv_err_intr()
2779 if (qc) in mv_err_intr()
2780 ata_link_abort(qc->dev->link); in mv_err_intr()
2882 struct ata_queued_cmd *qc = mv_get_active_qc(ap); in mv_port_intr() local
2883 if (qc) in mv_port_intr()
2884 ata_bmdma_port_intr(ap, qc); in mv_port_intr()
2967 struct ata_queued_cmd *qc; in mv_pci_error() local
2991 qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_pci_error()
2992 if (qc) in mv_pci_error()
2993 qc->err_mask |= err_mask; in mv_pci_error()