diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/aic7xxx/aic79xx.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/dev/aic7xxx/aic79xx.c b/sys/dev/aic7xxx/aic79xx.c index b00700a..e224edb 100644 --- a/sys/dev/aic7xxx/aic79xx.c +++ b/sys/dev/aic7xxx/aic79xx.c @@ -37,7 +37,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * - * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#223 $ + * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#224 $ */ #ifdef __linux__ @@ -404,20 +404,12 @@ rescan_fifos: /* Toggle to the other mode. */ fifo_mode ^= 1; ahd_set_modes(ahd, fifo_mode, fifo_mode); - if (ahd_scb_active_in_fifo(ahd, scb) != 0) + + if (ahd_scb_active_in_fifo(ahd, scb) == 0) continue; ahd_run_data_fifo(ahd, scb); - if (ahd_scb_active_in_fifo(ahd, scb) != 0) { - /* - * Delay a bit so that status has - * a chance to change before we look - * at this FIFO again. - */ - aic_delay(200); - } - /* * Running this FIFO may cause a CFG4DATA for * this same transaction to assert in the other @@ -428,8 +420,11 @@ rescan_fifos: * until the transaction is not active in either * FIFO just to be sure. Reset our loop counter * so we will visit both FIFOs again before - * declaring this transaction finished. + * declaring this transaction finished. We + * also delay a bit so that status has a chance + * to change before we look at this FIFO again. */ + aic_delay(200); goto rescan_fifos; } ahd_set_modes(ahd, AHD_MODE_SCSI, AHD_MODE_SCSI); |