Lines Matching refs:qc

75 	struct ata_queued_cmd *qc = task->uldd_task;  in sas_ata_task_done()  local
88 else if (qc && qc->scsicmd) in sas_ata_task_done()
89 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_task_done()
96 if (!qc) in sas_ata_task_done()
99 ap = qc->ap; in sas_ata_task_done()
106 if (qc->scsicmd) in sas_ata_task_done()
124 qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]); in sas_ata_task_done()
128 qc->flags |= ATA_QCFLAG_EH; in sas_ata_task_done()
136 qc->err_mask = ac; in sas_ata_task_done()
139 qc->flags |= ATA_QCFLAG_EH; in sas_ata_task_done()
147 qc->lldd_task = NULL; in sas_ata_task_done()
148 ata_qc_complete(qc); in sas_ata_task_done()
155 static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) in sas_ata_qc_issue() argument
162 struct ata_port *ap = qc->ap; in sas_ata_qc_issue()
183 if (ata_is_ncq(qc->tf.protocol)) in sas_ata_qc_issue()
184 qc->tf.nsect = 0; in sas_ata_qc_issue()
186 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); in sas_ata_qc_issue()
187 task->uldd_task = qc; in sas_ata_qc_issue()
188 if (ata_is_atapi(qc->tf.protocol)) { in sas_ata_qc_issue()
189 memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); in sas_ata_qc_issue()
190 task->total_xfer_len = qc->nbytes; in sas_ata_qc_issue()
191 task->num_scatter = qc->n_elem; in sas_ata_qc_issue()
192 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
193 } else if (!ata_is_data(qc->tf.protocol)) { in sas_ata_qc_issue()
196 for_each_sg(qc->sg, sg, qc->n_elem, si) in sas_ata_qc_issue()
201 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
203 task->scatter = qc->sg; in sas_ata_qc_issue()
204 qc->lldd_task = task; in sas_ata_qc_issue()
206 task->ata_task.use_ncq = ata_is_ncq(qc->tf.protocol); in sas_ata_qc_issue()
207 task->ata_task.dma_xfer = ata_is_dma(qc->tf.protocol); in sas_ata_qc_issue()
209 if (qc->flags & ATA_QCFLAG_RESULT_TF) in sas_ata_qc_issue()
212 if (qc->scsicmd) in sas_ata_qc_issue()
213 ASSIGN_SAS_TASK(qc->scsicmd, task); in sas_ata_qc_issue()
219 if (qc->scsicmd) in sas_ata_qc_issue()
220 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_qc_issue()
222 qc->lldd_task = NULL; in sas_ata_qc_issue()
231 static void sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) in sas_ata_qc_fill_rtf() argument
233 struct domain_device *dev = qc->ap->private_data; in sas_ata_qc_fill_rtf()
235 ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); in sas_ata_qc_fill_rtf()
488 static void sas_ata_post_internal(struct ata_queued_cmd *qc) in sas_ata_post_internal() argument
490 if (qc->flags & ATA_QCFLAG_EH) in sas_ata_post_internal()
491 qc->err_mask |= AC_ERR_OTHER; in sas_ata_post_internal()
493 if (qc->err_mask) { in sas_ata_post_internal()
502 struct sas_task *task = qc->lldd_task; in sas_ata_post_internal()
504 qc->lldd_task = NULL; in sas_ata_post_internal()
629 struct ata_queued_cmd *qc = task->uldd_task; in sas_ata_task_abort() local
633 if (qc->scsicmd) { in sas_ata_task_abort()
634 blk_abort_request(scsi_cmd_to_rq(qc->scsicmd)); in sas_ata_task_abort()
639 qc->flags &= ~ATA_QCFLAG_ACTIVE; in sas_ata_task_abort()
640 qc->flags |= ATA_QCFLAG_EH; in sas_ata_task_abort()
641 qc->err_mask |= AC_ERR_TIMEOUT; in sas_ata_task_abort()
642 waiting = qc->private_data; in sas_ata_task_abort()