Lines Matching full:qc

124     int (*check_atapi_dma) (struct ata_queued_cmd *qc);
202 void (*bmdma_setup) (struct ata_queued_cmd *qc);
203 void (*bmdma_start) (struct ata_queued_cmd *qc);
237 enum ata_completion_errors (*qc_prep) (struct ata_queued_cmd *qc);
238 int (*qc_issue) (struct ata_queued_cmd *qc);
301 void (*post_internal_cmd) (struct ata_queued_cmd *qc);
326 command was active (if any), and calls ata_sff_host_intr(ap,qc).
386 :c:type:`struct ata_queued_cmd <ata_queued_cmd>` or qc.
387 qc's are preallocated during port initialization and repetitively used
388 for command executions. Currently only one qc is allocated per port but
389 yet-to-be-merged NCQ branch allocates one for each tag and maps each qc
402 Once allocated qc's taskfile is initialized for the command to be
403 executed. qc currently has two mechanisms to notify completion. One
404 is via ``qc->complete_fn()`` callback and the other is completion
405 ``qc->waiting``. ``qc->complete_fn()`` callback is the asynchronous path
406 used by normal SCSI translated commands and ``qc->waiting`` is the
411 qc is issued.
416 translated. No qc is involved in processing a simulated scmd. The
419 ``qc->complete_fn()`` callback is used for completion notification. ATA
421 :c:func:`atapi_qc_complete`. Both functions end up calling ``qc->scsidone``
422 to notify upper layer when the qc is finished. After translation is
423 completed, the qc is issued with :c:func:`ata_qc_issue`.
463 Once issued, all qc's are either completed with :c:func:`ata_qc_complete` or
473 2. ATA_QCFLAG_ACTIVE is cleared from qc->flags.
475 3. :c:expr:`qc->complete_fn` callback is invoked. If the return value of the
481 1. ``qc->flags`` is cleared to zero.
483 2. ``ap->active_tag`` and ``qc->tag`` are poisoned.
485 3. ``qc->waiting`` is cleared & completed (in that order).
487 4. qc is deallocated by clearing appropriate bit in ``ap->qactive``.
489 So, it basically notifies upper layer and deallocates qc. One exception
493 code path is taken and very little error handling takes place. A qc is
500 :c:func:`atapi_qc_complete` via ``qc->complete_fn()`` callback.
506 to return without deallocating the qc. This leads us to
507 :c:func:`ata_scsi_error` with partially completed qc.
514 timeout and ATAPI error completion. This function will check if a qc is active
515 and has not failed yet. Such a qc will be marked with AC_ERR_TIMEOUT such that
520 completes the qc. Note that as we're currently in EH, we cannot call
523 :c:func:`scsi_finish_command`. Here, we override ``qc->scsidone`` with
526 If EH is invoked due to a failed ATAPI qc, the qc here is completed but
527 not deallocated. The purpose of this half-completion is to use the qc as
531 Once control reaches here, the qc is deallocated by invoking
532 :c:func:`__ata_qc_complete` explicitly. Then, internal qc for REQUEST SENSE
535 have completed and deallocated the qc which was associated with the
564 First, advanced error handling often requires context and internal qc