Lines Matching +full:idle +full:- +full:wait +full:- +full:delay
1 /*-
4 * Copyright (c) 1994-2001, 2004 Justin T. Gibbs.
5 * Copyright (c) 2000-2002 Adaptec Inc.
19 * 3. Neither the names of the above-listed copyright holders nor the names
49 if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {
56 if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {
98 cmp SCB_NEXT_COMPLETE[1], SCB_LIST_NULL jne . - 1;
122 if ((ahd->bugs & AHD_FAINT_LED_BUG) != 0) {
126 * and re-selections. Make the LED status
157 * pending select-outs.
175 * Case 1 can be detected by noticing a non-zero FIFO active
222 * wait until any select-out activity has halted, and
260 /* Add -1 so that jnc means <= not just < */
261 add A, -1, INT_COALESCING_MINCMDS;
296 if ((ahd->bugs & AHD_PKT_LUN_BUG) != 0) {
356 * at the head of their per-target queue so that
361 * wait for it to empty before entering this SCB
363 * our batching and round-robin selection scheme
417 * if select-outs are currently frozen or we have
444 add CMDS_PENDING, -1;
445 adc CMDS_PENDING[1], -1;
453 * in the data-stream should the target force a retry on
455 * PCI-X mode, we do this to avoid split transactions since
500 * until we return to our idle loop), use a
518 if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {
526 if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {
537 if ((ahd->bugs & AHD_SENT_SCB_UPDATE_BUG) != 0) {
581 * Allocate a FIFO for a non-packetized transaction.
583 * can allocate a FIFO for a non-packetized transaction.
592 if ((ahd->bugs & AHD_NONPACKFIFO_BUG) != 0) {
616 if ((ahd->bugs & AHD_FAINT_LED_BUG) != 0) {
620 * and re-selections. Make the LED status
622 * the point of selection until our idle
624 * are busy. This handles the non-packetized
626 * idle loop until the busfree at the end of
631 if ((ahd->bugs & AHD_BUSFREEREV_BUG) != 0) {
659 * Return to the idle loop. Our interrupt handler will take
662 * In Non-Packetize Mode:
669 if ((ahd->bugs & AHD_FAINT_LED_BUG) != 0) {
673 * and re-selections. Make the LED status
675 * the point of re-selection until our idle
677 * are busy. This handles the non-packetized
679 * idle loop until the busfree at the end of
685 if ((ahd->bugs & AHD_SENT_SCB_UPDATE_BUG) != 0) {
688 * the assertion of SELDO. If we are non-packetized,
696 * If we see LQOBUSFREE, return to the idle loop.
744 * that the per-target selection queue is now empty.
750 * We know that neither the per-TID list nor the list of
799 if ((ahd->bugs & AHD_LQO_ATNO_BUG) != 0) {
803 * REQs in a non-packet phase.
817 if ((ahd->bugs & AHD_BUSFREEREV_BUG) != 0) {
843 * Main loop for information transfer phases. Wait for the
873 * re-allocate a FIFO so transfer state is
885 add NONE, -17, SCB_CDB_LEN;
898 if ((ahd->features & AHD_FAST_CDB_DELIVERY) != 0) {
907 * the target goes to data-in, but if the acks go
919 test DFCNTRL, SCSIEN jnz . - 1;
935 * Status phase. Wait for the data byte to appear, then read it
1090 * Determine whether a target is using tagged or non-tagged
1092 * the per-device, disconnected array. If there is no untagged
1112 if ((ahd->flags & AHD_SEQUENCER_DEBUG) != 0) {
1117 if ((ahd->flags & AHD_SEQUENCER_DEBUG) != 0) {
1121 if ((ahd->flags & AHD_SEQUENCER_DEBUG) != 0) {
1144 if ((ahd->flags & AHD_SEQUENCER_DEBUG) != 0) {
1169 * queue and trigger a completion interrupt via the idle loop. Before doing
1219 /* Cancel any pending select-out. */
1291 * XXX - Wait for more testing.
1307 if ((ahd->bugs & AHD_BUSFREEREV_BUG) == 0) {
1390 if ((ahd->bugs & AHD_EARLY_REQ_BUG) != 0) {
1393 * they were asserted within the bus settle delay window.
1420 * So we wait until SCSIDATL is latched (the usual way), then read the data
1434 * If there is a parity error, wait for the kernel to
1488 if ((ahd->features & AHD_RTI) == 0) {
1497 * Switch to the other FIFO. Non-RTI chips
1509 * Return to the idle loop so we can process the
1522 * so we don't end up referencing a non-existant page.
1529 if ((ahd->bugs & AHD_REG_SLOW_SETTLE_BUG) != 0) {
1553 * first segment in the S/G FIFO. Wait until it is
1556 if ((ahd->features & AHD_NEW_DFCNTRL_OPTS) == 0) {
1559 if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0) {
1566 if ((ahd->flags & AHD_39BIT_ADDRESSING) != 0) {
1569 if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0) {
1584 if ((ahd->features & AHD_NEW_DFCNTRL_OPTS) != 0) {
1617 /* If we need more S/G elements, tell the idle loop */
1636 * If we re-enter the data phase after going through another
1638 * corrupted by the interveining, non-data, transfers. Ask
1648 * Turn on `Bit Bucket' mode, wait until the target takes
1663 /* Wait for non-data phase. */
1710 if ((ahd->bugs & AHD_AUTOFLUSH_BUG) != 0) {
1714 * We have enabled the auto-ack feature. This means
1718 * to wait for LAST_SEG_DONE to come true on a completed
1720 * non-empty. We know there is more data yet to transfer
1735 if ((ahd->flags & AHD_TARGETROLE) != 0) {
1738 if ((ahd->flags & AHD_INITIATORROLE) != 0) {
1748 if ((ahd->flags & AHD_TARGETROLE) != 0) {
1752 * For data-in phases, wait for any pending acks from the
1754 * send Ignore Wide Residue messages for data-in phases.
1782 * call our idle loop until it is able to load
1788 * the idle loop and there is no need to perform
1822 add SCB_RESIDUAL_SGPTR[1], -1;
1823 adc SCB_RESIDUAL_SGPTR[2], -1;
1824 adc SCB_RESIDUAL_SGPTR[3], -1;
1833 if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {
1848 if ((ahd->features & AHD_RTI) == 0) {
1850 * On RevA Silicon, if the target returns us to data-out
1851 * after we have already trained for data-out, it is
1853 * data-valid before the required 100ns P1 setup time (8 P1
1854 * assertions in fast-160 mode). This will only happen if
1855 * this L-Q is a continuation of a data transfer for which
1864 * (DIRECTION set in DFCNTRL). The delay is performed by
1923 if ((ahd->features & AHD_RTI) == 0) {
1940 add NONE, -13, SCB_CDB_LEN;
1956 * Wait in idle loop for transfer to complete.
1986 * into the FIFO. If the FIFO should become non-empty, we are in
2032 if ((ahd->bugs & AHD_AUTOFLUSH_BUG) != 0) {
2071 * Wait for the current context to finish to verify that
2105 * Must wait until CDB xfer is over before issuing the
2117 * None-the-less, we must still catch and report overruns to
2118 * the host. Additionally, properly catch unexpected non-packet
2128 if ((ahd->bugs & AHD_AUTOFLUSH_BUG) != 0) {
2187 * top level idle loop, we exhaust all active contexts prior to determining that
2213 if ((ahd->bugs & AHD_BUSFREEREV_BUG) != 0) {
2244 if ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) == 0) {
2253 if ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0) {
2271 if ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0) {