|
@@ -782,6 +782,12 @@ static inline int is_selected(int dor, int unit)
|
|
|
return ((dor & (0x10 << unit)) && (dor & 3) == unit);
|
|
|
}
|
|
|
|
|
|
+static bool is_ready_state(int status)
|
|
|
+{
|
|
|
+ int state = status & (STATUS_READY | STATUS_DIR | STATUS_DMA);
|
|
|
+ return state == STATUS_READY;
|
|
|
+}
|
|
|
+
|
|
|
static int set_dor(int fdc, char mask, char data)
|
|
|
{
|
|
|
unsigned char unit;
|
|
@@ -823,8 +829,10 @@ static void twaddle(void)
|
|
|
DRS->select_date = jiffies;
|
|
|
}
|
|
|
|
|
|
-/* reset all driver information about the current fdc. This is needed after
|
|
|
- * a reset, and after a raw command. */
|
|
|
+/*
|
|
|
+ * Reset all driver information about the current fdc.
|
|
|
+ * This is needed after a reset, and after a raw command.
|
|
|
+ */
|
|
|
static void reset_fdc_info(int mode)
|
|
|
{
|
|
|
int drive;
|
|
@@ -1162,7 +1170,8 @@ static int output_byte(char byte)
|
|
|
|
|
|
if (status < 0)
|
|
|
return -1;
|
|
|
- if ((status & (STATUS_READY | STATUS_DIR | STATUS_DMA)) == STATUS_READY) {
|
|
|
+
|
|
|
+ if (is_ready_state(status)) {
|
|
|
fd_outb(byte, FD_DATA);
|
|
|
#ifdef FLOPPY_SANITY_CHECK
|
|
|
output_log[output_log_pos].data = byte;
|
|
@@ -1221,8 +1230,10 @@ static int need_more_output(void)
|
|
|
|
|
|
if (status < 0)
|
|
|
return -1;
|
|
|
- if ((status & (STATUS_READY | STATUS_DIR | STATUS_DMA)) == STATUS_READY)
|
|
|
+
|
|
|
+ if (is_ready_state(status))
|
|
|
return MORE_OUTPUT;
|
|
|
+
|
|
|
return result();
|
|
|
}
|
|
|
|