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
183 struct ata_port *ap = qc->ap; in sas_ata_qc_issue()
203 if (qc->tf.command == ATA_CMD_FPDMA_WRITE || in sas_ata_qc_issue()
204 qc->tf.command == ATA_CMD_FPDMA_READ || in sas_ata_qc_issue()
205 qc->tf.command == ATA_CMD_FPDMA_RECV || in sas_ata_qc_issue()
206 qc->tf.command == ATA_CMD_FPDMA_SEND || in sas_ata_qc_issue()
207 qc->tf.command == ATA_CMD_NCQ_NON_DATA) { in sas_ata_qc_issue()
209 qc->tf.nsect = 0; in sas_ata_qc_issue()
212 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); in sas_ata_qc_issue()
213 task->uldd_task = qc; in sas_ata_qc_issue()
214 if (ata_is_atapi(qc->tf.protocol)) { in sas_ata_qc_issue()
215 memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); in sas_ata_qc_issue()
216 task->total_xfer_len = qc->nbytes; in sas_ata_qc_issue()
217 task->num_scatter = qc->n_elem; in sas_ata_qc_issue()
219 for_each_sg(qc->sg, sg, qc->n_elem, si) in sas_ata_qc_issue()
226 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
227 task->scatter = qc->sg; in sas_ata_qc_issue()
230 qc->lldd_task = task; in sas_ata_qc_issue()
232 task->ata_task.use_ncq = ata_is_ncq(qc->tf.protocol); in sas_ata_qc_issue()
233 task->ata_task.dma_xfer = ata_is_dma(qc->tf.protocol); in sas_ata_qc_issue()
235 if (qc->scsicmd) in sas_ata_qc_issue()
236 ASSIGN_SAS_TASK(qc->scsicmd, task); in sas_ata_qc_issue()
242 if (qc->scsicmd) in sas_ata_qc_issue()
243 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_qc_issue()
245 qc->lldd_task = NULL; in sas_ata_qc_issue()
254 static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) in sas_ata_qc_fill_rtf() argument
256 struct domain_device *dev = qc->ap->private_data; in sas_ata_qc_fill_rtf()
258 ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); in sas_ata_qc_fill_rtf()
466 static void sas_ata_post_internal(struct ata_queued_cmd *qc) in sas_ata_post_internal() argument
468 if (qc->flags & ATA_QCFLAG_FAILED) in sas_ata_post_internal()
469 qc->err_mask |= AC_ERR_OTHER; in sas_ata_post_internal()
471 if (qc->err_mask) { in sas_ata_post_internal()
480 struct sas_task *task = qc->lldd_task; in sas_ata_post_internal()
482 qc->lldd_task = NULL; in sas_ata_post_internal()
599 struct ata_queued_cmd *qc = task->uldd_task; in sas_ata_task_abort() local
603 if (qc->scsicmd) { in sas_ata_task_abort()
604 struct request_queue *q = qc->scsicmd->device->request_queue; in sas_ata_task_abort()
608 blk_abort_request(qc->scsicmd->request); in sas_ata_task_abort()
614 qc->flags &= ~ATA_QCFLAG_ACTIVE; in sas_ata_task_abort()
615 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_abort()
616 qc->err_mask |= AC_ERR_TIMEOUT; in sas_ata_task_abort()
617 waiting = qc->private_data; in sas_ata_task_abort()