Lines Matching full:qc
433 static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc, in sata_fsl_fill_sg() argument
455 for_each_sg(qc->sg, sg, qc->n_elem, si) { in sata_fsl_fill_sg()
461 ata_port_err(qc->ap, "s/g addr unaligned : 0x%llx\n", in sata_fsl_fill_sg()
464 ata_port_err(qc->ap, "s/g len unaligned : 0x%x\n", in sata_fsl_fill_sg()
498 static enum ata_completion_errors sata_fsl_qc_prep(struct ata_queued_cmd *qc) in sata_fsl_qc_prep() argument
500 struct ata_port *ap = qc->ap; in sata_fsl_qc_prep()
504 unsigned int tag = sata_fsl_tag(ap, qc->hw_tag, hcr_base); in sata_fsl_qc_prep()
514 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *) &cd->cfis); in sata_fsl_qc_prep()
517 if (ata_is_atapi(qc->tf.protocol)) { in sata_fsl_qc_prep()
520 memcpy(&cd->cdb, qc->cdb, qc->dev->cdb_len); in sata_fsl_qc_prep()
523 if (qc->flags & ATA_QCFLAG_DMAMAP) in sata_fsl_qc_prep()
524 num_prde = sata_fsl_fill_sg(qc, (void *)cd, in sata_fsl_qc_prep()
528 if (qc->tf.protocol == ATA_PROT_NCQ) in sata_fsl_qc_prep()
540 static unsigned int sata_fsl_qc_issue(struct ata_queued_cmd *qc) in sata_fsl_qc_issue() argument
542 struct ata_port *ap = qc->ap; in sata_fsl_qc_issue()
545 unsigned int tag = sata_fsl_tag(ap, qc->hw_tag, hcr_base); in sata_fsl_qc_issue()
552 iowrite32(qc->dev->link->pmp, CQPMP + hcr_base); in sata_fsl_qc_issue()
569 static void sata_fsl_qc_fill_rtf(struct ata_queued_cmd *qc) in sata_fsl_qc_fill_rtf() argument
571 struct sata_fsl_port_priv *pp = qc->ap->private_data; in sata_fsl_qc_fill_rtf()
572 struct sata_fsl_host_priv *host_priv = qc->ap->host->private_data; in sata_fsl_qc_fill_rtf()
574 unsigned int tag = sata_fsl_tag(qc->ap, qc->hw_tag, hcr_base); in sata_fsl_qc_fill_rtf()
579 ata_tf_from_fis(cd->sfis, &qc->result_tf); in sata_fsl_qc_fill_rtf()
1042 static void sata_fsl_post_internal_cmd(struct ata_queued_cmd *qc) in sata_fsl_post_internal_cmd() argument
1044 if (qc->flags & ATA_QCFLAG_EH) in sata_fsl_post_internal_cmd()
1045 qc->err_mask |= AC_ERR_OTHER; in sata_fsl_post_internal_cmd()
1047 if (qc->err_mask) { in sata_fsl_post_internal_cmd()
1061 struct ata_queued_cmd *qc = NULL; in sata_fsl_error_intr() local
1121 /* find out the offending link and qc */ in sata_fsl_error_intr()
1133 qc = ata_qc_from_tag(ap, link->active_tag); in sata_fsl_error_intr()
1151 qc = ata_qc_from_tag(ap, link->active_tag); in sata_fsl_error_intr()
1161 if (qc) in sata_fsl_error_intr()
1162 qc->err_mask |= err_mask; in sata_fsl_error_intr()
1172 if (qc) in sata_fsl_error_intr()
1173 ata_link_abort(qc->dev->link); in sata_fsl_error_intr()
1184 struct ata_queued_cmd *qc; in sata_fsl_host_intr() local
1198 ata_qc_for_each_with_internal(ap, qc, tag) { in sata_fsl_host_intr()
1199 if (qc && ata_is_atapi(qc->tf.protocol)) { in sata_fsl_host_intr()
1261 qc = ata_qc_from_tag(ap, ATA_TAG_INTERNAL); in sata_fsl_host_intr()
1266 if (qc) { in sata_fsl_host_intr()
1267 ata_qc_complete(qc); in sata_fsl_host_intr()