Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/dev/scsipi Pull up revision 1.48 (requested by bouy...



details:   https://anonhg.NetBSD.org/src/rev/92b5eb35031b
branches:  netbsd-1-5
changeset: 492728:92b5eb35031b
user:      he <he%NetBSD.org@localhost>
date:      Sat Feb 09 17:39:10 2002 +0000

description:
Pull up revision 1.48 (requested by bouyer):
  If we change the ATA modes, also reset the device, so that we
  can retry the command with the new mode.  Fixes PR#15331.

diffstat:

 sys/dev/scsipi/atapi_wdc.c |  10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diffs (26 lines):

diff -r 004a0259ecc3 -r 92b5eb35031b sys/dev/scsipi/atapi_wdc.c
--- a/sys/dev/scsipi/atapi_wdc.c        Sat Feb 09 17:37:19 2002 +0000
+++ b/sys/dev/scsipi/atapi_wdc.c        Sat Feb 09 17:39:10 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: atapi_wdc.c,v 1.36.2.2 2001/12/27 12:29:40 he Exp $    */
+/*     $NetBSD: atapi_wdc.c,v 1.36.2.3 2002/02/09 17:39:10 he Exp $    */
 
 /*
  * Copyright (c) 1998 Manuel Bouyer.
@@ -480,9 +480,15 @@
        if (chp->wdc->cap & WDC_CAPABILITY_IRQACK)
                chp->wdc->irqack(chp);
 
-       /* If we missed an IRQ and were using DMA, flag it as a DMA error */
+       /*
+        * If we missed an IRQ and were using DMA, flag it as a DMA error
+        * and reset device.
+        */
        if ((xfer->c_flags & C_TIMEOU) && (xfer->c_flags & C_DMA)) {
                ata_dmaerr(drvp);
+               sc_xfer->error = XS_RESET;
+               wdc_atapi_reset(chp, xfer);
+               return (1);
        }
        /* 
         * if the request sense command was aborted, report the short sense



Home | Main Index | Thread Index | Old Index