Lines Matching refs:qc
594 static int mv_qc_defer(struct ata_queued_cmd *qc);
595 static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc);
596 static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc);
597 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
650 static int mv_check_atapi_dma(struct ata_queued_cmd *qc);
651 static void mv_bmdma_setup(struct ata_queued_cmd *qc);
652 static void mv_bmdma_start(struct ata_queued_cmd *qc);
653 static void mv_bmdma_stop(struct ata_queued_cmd *qc);
1425 static int mv_qc_defer(struct ata_queued_cmd *qc) in mv_qc_defer() argument
1427 struct ata_link *link = qc->dev->link; in mv_qc_defer()
1450 qc->flags |= ATA_QCFLAG_CLEAR_EXCL; in mv_qc_defer()
1470 if (ata_is_ncq(qc->tf.protocol)) in mv_qc_defer()
1788 static void mv_fill_sg(struct ata_queued_cmd *qc) in mv_fill_sg() argument
1790 struct mv_port_priv *pp = qc->ap->private_data; in mv_fill_sg()
1795 mv_sg = pp->sg_tbl[qc->hw_tag]; in mv_fill_sg()
1796 for_each_sg(qc->sg, sg, qc->n_elem, si) { in mv_fill_sg()
1856 static int mv_check_atapi_dma(struct ata_queued_cmd *qc) in mv_check_atapi_dma() argument
1858 struct scsi_cmnd *scmd = qc->scsicmd; in mv_check_atapi_dma()
1884 static void mv_bmdma_setup(struct ata_queued_cmd *qc) in mv_bmdma_setup() argument
1886 struct ata_port *ap = qc->ap; in mv_bmdma_setup()
1890 mv_fill_sg(qc); in mv_bmdma_setup()
1896 writel((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16, in mv_bmdma_setup()
1898 writelfl(pp->sg_tbl_dma[qc->hw_tag], in mv_bmdma_setup()
1902 ap->ops->sff_exec_command(ap, &qc->tf); in mv_bmdma_setup()
1912 static void mv_bmdma_start(struct ata_queued_cmd *qc) in mv_bmdma_start() argument
1914 struct ata_port *ap = qc->ap; in mv_bmdma_start()
1916 unsigned int rw = (qc->tf.flags & ATA_TFLAG_WRITE); in mv_bmdma_start()
1948 static void mv_bmdma_stop(struct ata_queued_cmd *qc) in mv_bmdma_stop() argument
1950 mv_bmdma_stop_ap(qc->ap); in mv_bmdma_stop()
1992 static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc) in mv_rw_multi_errata_sata24() argument
1994 struct ata_taskfile *tf = &qc->tf; in mv_rw_multi_errata_sata24()
2009 if (qc->dev->multi_count > 7) { in mv_rw_multi_errata_sata24()
2037 static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc) in mv_qc_prep() argument
2039 struct ata_port *ap = qc->ap; in mv_qc_prep()
2042 struct ata_taskfile *tf = &qc->tf; in mv_qc_prep()
2054 mv_rw_multi_errata_sata24(qc); in mv_qc_prep()
2064 WARN_ON(MV_MAX_Q_DEPTH <= qc->hw_tag); in mv_qc_prep()
2065 flags |= qc->hw_tag << CRQB_TAG_SHIFT; in mv_qc_prep()
2066 flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT; in mv_qc_prep()
2072 cpu_to_le32(pp->sg_tbl_dma[qc->hw_tag] & 0xffffffff); in mv_qc_prep()
2074 cpu_to_le32((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16); in mv_qc_prep()
2119 if (!(qc->flags & ATA_QCFLAG_DMAMAP)) in mv_qc_prep()
2121 mv_fill_sg(qc); in mv_qc_prep()
2138 static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc) in mv_qc_prep_iie() argument
2140 struct ata_port *ap = qc->ap; in mv_qc_prep_iie()
2143 struct ata_taskfile *tf = &qc->tf; in mv_qc_prep_iie()
2157 WARN_ON(MV_MAX_Q_DEPTH <= qc->hw_tag); in mv_qc_prep_iie()
2158 flags |= qc->hw_tag << CRQB_TAG_SHIFT; in mv_qc_prep_iie()
2159 flags |= qc->hw_tag << CRQB_HOSTQ_SHIFT; in mv_qc_prep_iie()
2160 flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT; in mv_qc_prep_iie()
2166 crqb->addr = cpu_to_le32(pp->sg_tbl_dma[qc->hw_tag] & 0xffffffff); in mv_qc_prep_iie()
2167 crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16); in mv_qc_prep_iie()
2191 if (!(qc->flags & ATA_QCFLAG_DMAMAP)) in mv_qc_prep_iie()
2193 mv_fill_sg(qc); in mv_qc_prep_iie()
2287 static unsigned int mv_qc_issue_fis(struct ata_queued_cmd *qc) in mv_qc_issue_fis() argument
2289 struct ata_port *ap = qc->ap; in mv_qc_issue_fis()
2291 struct ata_link *link = qc->dev->link; in mv_qc_issue_fis()
2295 ata_tf_to_fis(&qc->tf, link->pmp, 1, (void *)fis); in mv_qc_issue_fis()
2300 switch (qc->tf.protocol) { in mv_qc_issue_fis()
2309 if (qc->tf.flags & ATA_TFLAG_WRITE) in mv_qc_issue_fis()
2319 if (qc->tf.flags & ATA_TFLAG_POLLING) in mv_qc_issue_fis()
2336 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc) in mv_qc_issue() argument
2339 struct ata_port *ap = qc->ap; in mv_qc_issue()
2347 switch (qc->tf.protocol) { in mv_qc_issue()
2349 if (qc->tf.command == ATA_CMD_DSM) { in mv_qc_issue()
2356 mv_start_edma(ap, port_mmio, pp, qc->tf.protocol); in mv_qc_issue()
2377 if (limit_warnings > 0 && (qc->nbytes / qc->sect_size) > 1) { in mv_qc_issue()
2379 ata_link_warn(qc->dev->link, DRV_NAME in mv_qc_issue()
2388 qc->tf.flags |= ATA_TFLAG_POLLING; in mv_qc_issue()
2392 if (qc->tf.flags & ATA_TFLAG_POLLING) in mv_qc_issue()
2404 mv_pmp_select(ap, qc->dev->link->pmp); in mv_qc_issue()
2406 if (qc->tf.command == ATA_CMD_READ_LOG_EXT) { in mv_qc_issue()
2420 return mv_qc_issue_fis(qc); in mv_qc_issue()
2422 return ata_bmdma_qc_issue(qc); in mv_qc_issue()
2428 struct ata_queued_cmd *qc; in mv_get_active_qc() local
2432 qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_get_active_qc()
2433 if (qc && !(qc->tf.flags & ATA_TFLAG_POLLING)) in mv_get_active_qc()
2434 return qc; in mv_get_active_qc()
2619 struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_unexpected_intr() local
2620 if (qc && (qc->tf.flags & ATA_TFLAG_POLLING)) in mv_unexpected_intr()
2649 struct ata_queued_cmd *qc; in mv_err_intr() local
2676 qc = mv_get_active_qc(ap); in mv_err_intr()
2745 if (qc) in mv_err_intr()
2746 qc->err_mask |= err_mask; in mv_err_intr()
2768 if (qc) in mv_err_intr()
2769 ata_link_abort(qc->dev->link); in mv_err_intr()
2871 struct ata_queued_cmd *qc = mv_get_active_qc(ap); in mv_port_intr() local
2872 if (qc) in mv_port_intr()
2873 ata_bmdma_port_intr(ap, qc); in mv_port_intr()
2956 struct ata_queued_cmd *qc; in mv_pci_error() local
2980 qc = ata_qc_from_tag(ap, ap->link.active_tag); in mv_pci_error()
2981 if (qc) in mv_pci_error()
2982 qc->err_mask |= err_mask; in mv_pci_error()