• Home
  • Raw
  • Download

Lines Matching refs:qc

83 	struct ata_queued_cmd *qc = task->uldd_task;  in sas_ata_task_done()  local
96 else if (qc && qc->scsicmd) in sas_ata_task_done()
97 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_task_done()
104 if (!qc) in sas_ata_task_done()
107 ap = qc->ap; in sas_ata_task_done()
114 if (qc->scsicmd) in sas_ata_task_done()
131 qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]); in sas_ata_task_done()
135 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
143 qc->err_mask = ac; in sas_ata_task_done()
146 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_done()
154 qc->lldd_task = NULL; in sas_ata_task_done()
155 ata_qc_complete(qc); in sas_ata_task_done()
162 static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) in sas_ata_qc_issue() argument
169 struct ata_port *ap = qc->ap; in sas_ata_qc_issue()
189 if (qc->tf.command == ATA_CMD_FPDMA_WRITE || in sas_ata_qc_issue()
190 qc->tf.command == ATA_CMD_FPDMA_READ || in sas_ata_qc_issue()
191 qc->tf.command == ATA_CMD_FPDMA_RECV || in sas_ata_qc_issue()
192 qc->tf.command == ATA_CMD_FPDMA_SEND || in sas_ata_qc_issue()
193 qc->tf.command == ATA_CMD_NCQ_NON_DATA) { in sas_ata_qc_issue()
195 qc->tf.nsect = 0; in sas_ata_qc_issue()
198 ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); in sas_ata_qc_issue()
199 task->uldd_task = qc; in sas_ata_qc_issue()
200 if (ata_is_atapi(qc->tf.protocol)) { in sas_ata_qc_issue()
201 memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); in sas_ata_qc_issue()
202 task->total_xfer_len = qc->nbytes; in sas_ata_qc_issue()
203 task->num_scatter = qc->n_elem; in sas_ata_qc_issue()
204 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
205 } else if (!ata_is_data(qc->tf.protocol)) { in sas_ata_qc_issue()
208 for_each_sg(qc->sg, sg, qc->n_elem, si) in sas_ata_qc_issue()
213 task->data_dir = qc->dma_dir; in sas_ata_qc_issue()
215 task->scatter = qc->sg; in sas_ata_qc_issue()
218 qc->lldd_task = task; in sas_ata_qc_issue()
220 task->ata_task.use_ncq = ata_is_ncq(qc->tf.protocol); in sas_ata_qc_issue()
221 task->ata_task.dma_xfer = ata_is_dma(qc->tf.protocol); in sas_ata_qc_issue()
223 if (qc->scsicmd) in sas_ata_qc_issue()
224 ASSIGN_SAS_TASK(qc->scsicmd, task); in sas_ata_qc_issue()
230 if (qc->scsicmd) in sas_ata_qc_issue()
231 ASSIGN_SAS_TASK(qc->scsicmd, NULL); in sas_ata_qc_issue()
233 qc->lldd_task = NULL; in sas_ata_qc_issue()
242 static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) in sas_ata_qc_fill_rtf() argument
244 struct domain_device *dev = qc->ap->private_data; in sas_ata_qc_fill_rtf()
246 ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); in sas_ata_qc_fill_rtf()
453 static void sas_ata_post_internal(struct ata_queued_cmd *qc) in sas_ata_post_internal() argument
455 if (qc->flags & ATA_QCFLAG_FAILED) in sas_ata_post_internal()
456 qc->err_mask |= AC_ERR_OTHER; in sas_ata_post_internal()
458 if (qc->err_mask) { in sas_ata_post_internal()
467 struct sas_task *task = qc->lldd_task; in sas_ata_post_internal()
469 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 blk_abort_request(qc->scsicmd->request); in sas_ata_task_abort()
609 qc->flags &= ~ATA_QCFLAG_ACTIVE; in sas_ata_task_abort()
610 qc->flags |= ATA_QCFLAG_FAILED; in sas_ata_task_abort()
611 qc->err_mask |= AC_ERR_TIMEOUT; in sas_ata_task_abort()
612 waiting = qc->private_data; in sas_ata_task_abort()