aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2014-11-29 13:04:46 -0500
committerKevin O'Connor <kevin@koconnor.net>2014-12-03 12:24:10 -0500
commitca087779edbbc52e364dd901927dbe868ec085fc (patch)
treed4e8a4a22209a14779374e62f364a02bdcb6fb1b
parente5f43384be5cf5983f03e3f4c1cb7bbeaba2af3f (diff)
downloadseabios-ca087779edbbc52e364dd901927dbe868ec085fc.zip
seabios-ca087779edbbc52e364dd901927dbe868ec085fc.tar.gz
seabios-ca087779edbbc52e364dd901927dbe868ec085fc.tar.bz2
floppy: Make sure to yield() during floppy PIO
The floppy Programmed IO code really should yield while the controller is busy. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/hw/floppy.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/hw/floppy.c b/src/hw/floppy.c
index aa8583d..d60362a 100644
--- a/src/hw/floppy.c
+++ b/src/hw/floppy.c
@@ -244,6 +244,7 @@ floppy_pio(int command, u8 *param)
floppy_disable_controller();
return DISK_RET_ETIMEOUT;
}
+ yield();
continue;
}
if (sts & 0x40) {
@@ -277,6 +278,7 @@ floppy_pio(int command, u8 *param)
floppy_disable_controller();
return DISK_RET_ETIMEOUT;
}
+ yield();
continue;
}
if (i >= receive) {