Lines Matching refs:qc
328 static int sil24_qc_defer(struct ata_queued_cmd *qc);
329 static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc);
330 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
331 static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc);
343 static void sil24_post_internal_cmd(struct ata_queued_cmd *qc);
772 static inline void sil24_fill_sg(struct ata_queued_cmd *qc, in sil24_fill_sg() argument
779 for_each_sg(qc->sg, sg, qc->n_elem, si) { in sil24_fill_sg()
791 static int sil24_qc_defer(struct ata_queued_cmd *qc) in sil24_qc_defer() argument
793 struct ata_link *link = qc->dev->link; in sil24_qc_defer()
795 u8 prot = qc->tf.protocol; in sil24_qc_defer()
817 (qc->flags & ATA_QCFLAG_RESULT_TF)); in sil24_qc_defer()
823 qc->flags |= ATA_QCFLAG_CLEAR_EXCL; in sil24_qc_defer()
830 qc->flags |= ATA_QCFLAG_CLEAR_EXCL; in sil24_qc_defer()
833 return ata_std_qc_defer(qc); in sil24_qc_defer()
836 static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc) in sil24_qc_prep() argument
838 struct ata_port *ap = qc->ap; in sil24_qc_prep()
845 cb = &pp->cmd_block[sil24_tag(qc->hw_tag)]; in sil24_qc_prep()
847 if (!ata_is_atapi(qc->tf.protocol)) { in sil24_qc_prep()
850 if (ata_is_data(qc->tf.protocol)) { in sil24_qc_prep()
853 if (ata_is_ncq(qc->tf.protocol)) in sil24_qc_prep()
855 if (qc->tf.flags & ATA_TFLAG_WRITE) in sil24_qc_prep()
865 memcpy(cb->atapi.cdb, qc->cdb, qc->dev->cdb_len); in sil24_qc_prep()
867 if (ata_is_data(qc->tf.protocol)) { in sil24_qc_prep()
868 if (qc->tf.flags & ATA_TFLAG_WRITE) in sil24_qc_prep()
876 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, prb->fis); in sil24_qc_prep()
878 if (qc->flags & ATA_QCFLAG_DMAMAP) in sil24_qc_prep()
879 sil24_fill_sg(qc, sge); in sil24_qc_prep()
884 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc) in sil24_qc_issue() argument
886 struct ata_port *ap = qc->ap; in sil24_qc_issue()
889 unsigned int tag = sil24_tag(qc->hw_tag); in sil24_qc_issue()
907 static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc) in sil24_qc_fill_rtf() argument
909 sil24_read_tf(qc->ap, qc->hw_tag, &qc->result_tf); in sil24_qc_fill_rtf()
977 struct ata_queued_cmd *qc = NULL; in sil24_error_intr() local
1044 qc = ata_qc_from_tag(ap, link->active_tag); in sil24_error_intr()
1055 qc = ata_qc_from_tag(ap, link->active_tag); in sil24_error_intr()
1077 if (qc) in sil24_error_intr()
1078 qc->err_mask |= err_mask; in sil24_error_intr()
1093 if (qc) in sil24_error_intr()
1094 ata_link_abort(qc->dev->link); in sil24_error_intr()
1186 static void sil24_post_internal_cmd(struct ata_queued_cmd *qc) in sil24_post_internal_cmd() argument
1188 struct ata_port *ap = qc->ap; in sil24_post_internal_cmd()
1191 if ((qc->flags & ATA_QCFLAG_FAILED) && sil24_init_port(ap)) in sil24_post_internal_cmd()