Lines Matching refs:qc

77 	struct ata_queued_cmd *qc = task->uldd_task;  in sas_ata_task_done()  local
90 else if (qc && qc->scsicmd) in sas_ata_task_done()
91 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_task_done()
98 if (!qc) in sas_ata_task_done()
101 ap = qc->ap; in sas_ata_task_done()
108 if (qc->scsicmd) in sas_ata_task_done()
126 qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]); in sas_ata_task_done()
130 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
138 qc->err_mask = ac; in sas_ata_task_done()
141 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
149 qc->lldd_task = NULL; in sas_ata_task_done()
150 ata_qc_complete(qc); in sas_ata_task_done()
157 static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) in sas_ata_qc_issue() argument
164 struct ata_port *ap = qc->ap; in sas_ata_qc_issue()
184 if (qc->tf.command == ATA_CMD_FPDMA_WRITE || in sas_ata_qc_issue()
185 qc->tf.command == ATA_CMD_FPDMA_READ || in sas_ata_qc_issue()
186 qc->tf.command == ATA_CMD_FPDMA_RECV || in sas_ata_qc_issue()
187 qc->tf.command == ATA_CMD_FPDMA_SEND || in sas_ata_qc_issue()
188 qc->tf.command == ATA_CMD_NCQ_NON_DATA) { in sas_ata_qc_issue()
190 qc->tf.nsect = 0; in sas_ata_qc_issue()
193 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); in sas_ata_qc_issue()
194 task->uldd_task = qc; in sas_ata_qc_issue()
195 if (ata_is_atapi(qc->tf.protocol)) { in sas_ata_qc_issue()
196 memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); in sas_ata_qc_issue()
197 task->total_xfer_len = qc->nbytes; in sas_ata_qc_issue()
198 task->num_scatter = qc->n_elem; in sas_ata_qc_issue()
199 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
200 } else if (qc->tf.protocol == ATA_PROT_NODATA) { in sas_ata_qc_issue()
203 for_each_sg(qc->sg, sg, qc->n_elem, si) in sas_ata_qc_issue()
208 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
210 task->scatter = qc->sg; in sas_ata_qc_issue()
213 qc->lldd_task = task; in sas_ata_qc_issue()
215 task->ata_task.use_ncq = ata_is_ncq(qc->tf.protocol); in sas_ata_qc_issue()
216 task->ata_task.dma_xfer = ata_is_dma(qc->tf.protocol); in sas_ata_qc_issue()
218 if (qc->scsicmd) in sas_ata_qc_issue()
219 ASSIGN_SAS_TASK(qc->scsicmd, task); in sas_ata_qc_issue()
225 if (qc->scsicmd) in sas_ata_qc_issue()
226 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_qc_issue()
228 qc->lldd_task = NULL; in sas_ata_qc_issue()
237 static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) in sas_ata_qc_fill_rtf() argument
239 struct domain_device *dev = qc->ap->private_data; in sas_ata_qc_fill_rtf()
241 ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); in sas_ata_qc_fill_rtf()
448 static void sas_ata_post_internal(struct ata_queued_cmd *qc) in sas_ata_post_internal() argument
450 if (qc->flags & ATA_QCFLAG_FAILED) in sas_ata_post_internal()
451 qc->err_mask |= AC_ERR_OTHER; in sas_ata_post_internal()
453 if (qc->err_mask) { in sas_ata_post_internal()
462 struct sas_task *task = qc->lldd_task; in sas_ata_post_internal()
464 qc->lldd_task = NULL; in sas_ata_post_internal()
594 struct ata_queued_cmd *qc = task->uldd_task; in sas_ata_task_abort() local
598 if (qc->scsicmd) { in sas_ata_task_abort()
599 blk_abort_request(scsi_cmd_to_rq(qc->scsicmd)); 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()