Lines Matching refs:qc
97 struct ata_queued_cmd *qc = task->uldd_task; in sas_ata_task_done() local
110 else if (qc && qc->scsicmd) in sas_ata_task_done()
111 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_task_done()
118 if (!qc) in sas_ata_task_done()
121 ap = qc->ap; in sas_ata_task_done()
128 if (qc->scsicmd) in sas_ata_task_done()
145 qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]); in sas_ata_task_done()
149 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
158 qc->err_mask = ac; in sas_ata_task_done()
161 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
169 qc->lldd_task = NULL; in sas_ata_task_done()
170 ata_qc_complete(qc); in sas_ata_task_done()
177 static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) in sas_ata_qc_issue() argument
184 struct ata_port *ap = qc->ap; in sas_ata_qc_issue()
207 if (qc->tf.command == ATA_CMD_FPDMA_WRITE || in sas_ata_qc_issue()
208 qc->tf.command == ATA_CMD_FPDMA_READ) { in sas_ata_qc_issue()
210 qc->tf.nsect = 0; in sas_ata_qc_issue()
213 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); in sas_ata_qc_issue()
214 task->uldd_task = qc; in sas_ata_qc_issue()
215 if (ata_is_atapi(qc->tf.protocol)) { in sas_ata_qc_issue()
216 memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); in sas_ata_qc_issue()
217 task->total_xfer_len = qc->nbytes; in sas_ata_qc_issue()
218 task->num_scatter = qc->n_elem; in sas_ata_qc_issue()
220 for_each_sg(qc->sg, sg, qc->n_elem, si) in sas_ata_qc_issue()
227 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
228 task->scatter = qc->sg; in sas_ata_qc_issue()
231 qc->lldd_task = task; in sas_ata_qc_issue()
233 switch (qc->tf.protocol) { in sas_ata_qc_issue()
243 if (qc->scsicmd) in sas_ata_qc_issue()
244 ASSIGN_SAS_TASK(qc->scsicmd, task); in sas_ata_qc_issue()
250 if (qc->scsicmd) in sas_ata_qc_issue()
251 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_qc_issue()
262 static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) in sas_ata_qc_fill_rtf() argument
264 struct domain_device *dev = qc->ap->private_data; in sas_ata_qc_fill_rtf()
266 ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); in sas_ata_qc_fill_rtf()
473 static void sas_ata_post_internal(struct ata_queued_cmd *qc) in sas_ata_post_internal() argument
475 if (qc->flags & ATA_QCFLAG_FAILED) in sas_ata_post_internal()
476 qc->err_mask |= AC_ERR_OTHER; in sas_ata_post_internal()
478 if (qc->err_mask) { in sas_ata_post_internal()
487 struct sas_task *task = qc->lldd_task; in sas_ata_post_internal()
489 qc->lldd_task = NULL; in sas_ata_post_internal()
589 struct ata_queued_cmd *qc = task->uldd_task; in sas_ata_task_abort() local
593 if (qc->scsicmd) { in sas_ata_task_abort()
594 struct request_queue *q = qc->scsicmd->device->request_queue; in sas_ata_task_abort()
598 blk_abort_request(qc->scsicmd->request); in sas_ata_task_abort()
604 qc->flags &= ~ATA_QCFLAG_ACTIVE; in sas_ata_task_abort()
605 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_abort()
606 qc->err_mask |= AC_ERR_TIMEOUT; in sas_ata_task_abort()
607 waiting = qc->private_data; in sas_ata_task_abort()