From 0e317d05cc50e56df8422a90780933bea6dec2b9 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Sun, 31 Mar 1996 18:04:51 +0000 Subject: [PATCH] Fetch the (dummy) READY CHANGED condition interrupt stati that happen after an FDC reset. Submitted by: bde --- sys/dev/fdc/fdc.c | 9 ++++++++- sys/i386/isa/fd.c | 9 ++++++++- sys/isa/fd.c | 9 ++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index 99ddb32312e6..499a78de23d1 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.81 1996/03/28 14:28:37 scrappy Exp $ + * $Id: fd.c,v 1.82 1996/03/29 11:45:12 bde Exp $ * */ @@ -1595,6 +1595,13 @@ fdstate(fdcu_t fdcu, fdc_p fdc) fdc->state = STARTRECAL; break; case STARTRECAL: + /* XXX clear the fdc results from the last reset, if any. */ + { + int i; + for (i = 0; i < 4; i++) + (void)fd_sense_int(fdc, &st0, &cyl); + } + if(fd_cmd(fdcu, 2, NE7CMD_RECAL, fdu, 0)) /* Recalibrate Function */ diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c index 99ddb32312e6..499a78de23d1 100644 --- a/sys/i386/isa/fd.c +++ b/sys/i386/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.81 1996/03/28 14:28:37 scrappy Exp $ + * $Id: fd.c,v 1.82 1996/03/29 11:45:12 bde Exp $ * */ @@ -1595,6 +1595,13 @@ fdstate(fdcu_t fdcu, fdc_p fdc) fdc->state = STARTRECAL; break; case STARTRECAL: + /* XXX clear the fdc results from the last reset, if any. */ + { + int i; + for (i = 0; i < 4; i++) + (void)fd_sense_int(fdc, &st0, &cyl); + } + if(fd_cmd(fdcu, 2, NE7CMD_RECAL, fdu, 0)) /* Recalibrate Function */ diff --git a/sys/isa/fd.c b/sys/isa/fd.c index 99ddb32312e6..499a78de23d1 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.81 1996/03/28 14:28:37 scrappy Exp $ + * $Id: fd.c,v 1.82 1996/03/29 11:45:12 bde Exp $ * */ @@ -1595,6 +1595,13 @@ fdstate(fdcu_t fdcu, fdc_p fdc) fdc->state = STARTRECAL; break; case STARTRECAL: + /* XXX clear the fdc results from the last reset, if any. */ + { + int i; + for (i = 0; i < 4; i++) + (void)fd_sense_int(fdc, &st0, &cyl); + } + if(fd_cmd(fdcu, 2, NE7CMD_RECAL, fdu, 0)) /* Recalibrate Function */