Assume floppy disk is not inserted when we have exhausted retries. This

significantly reduces booting time when there is broken floppy disk drive,
controller, cable, BIOS, etc.
When the floppy controller interface is correctly implemented, disk change
signal (DSKCHG) is reflected in the Digital Input Register (DIR) at 0x3f7.
However, there are many cases that the signal is unusable.  Moreover, some
BIOS does not reserve the port at all.  In those cases, the register may not
function.
This commit is contained in:
Jung-uk Kim 2006-07-12 00:49:46 +00:00
parent 8f395fae42
commit b31da03fd8

View File

@ -758,6 +758,9 @@ fdc_worker(struct fdc_data *fdc)
(fdc->retry >= retries || (fd->options & FDOPT_NORETRY))) {
if ((debugflags & 4))
printf("Too many retries (EIO)\n");
mtx_lock(&fdc->fdc_mtx);
fd->flags |= FD_EMPTY;
mtx_unlock(&fdc->fdc_mtx);
return (fdc_biodone(fdc, EIO));
}