Commit 5ea00bfc authored by Willy Tarreau's avatar Willy Tarreau Committed by Denis Efremov

floppy: cleanup: make wait_til_ready() not rely on current_fdc anymore

Now the fdc is passed in argument so that the function does not
use current_fdc anymore.

Link: https://lore.kernel.org/r/20200331094054.24441-13-w@1wt.euSigned-off-by: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
parent 6d494ed0
...@@ -1107,30 +1107,30 @@ static void setup_DMA(void) ...@@ -1107,30 +1107,30 @@ static void setup_DMA(void)
static void show_floppy(int fdc); static void show_floppy(int fdc);
/* waits until the fdc becomes ready */ /* waits until the fdc becomes ready */
static int wait_til_ready(void) static int wait_til_ready(int fdc)
{ {
int status; int status;
int counter; int counter;
if (fdc_state[current_fdc].reset) if (fdc_state[fdc].reset)
return -1; return -1;
for (counter = 0; counter < 10000; counter++) { for (counter = 0; counter < 10000; counter++) {
status = fdc_inb(current_fdc, FD_STATUS); status = fdc_inb(fdc, FD_STATUS);
if (status & STATUS_READY) if (status & STATUS_READY)
return status; return status;
} }
if (initialized) { if (initialized) {
DPRINT("Getstatus times out (%x) on fdc %d\n", status, current_fdc); DPRINT("Getstatus times out (%x) on fdc %d\n", status, fdc);
show_floppy(current_fdc); show_floppy(fdc);
} }
fdc_state[current_fdc].reset = 1; fdc_state[fdc].reset = 1;
return -1; return -1;
} }
/* sends a command byte to the fdc */ /* sends a command byte to the fdc */
static int output_byte(char byte) static int output_byte(char byte)
{ {
int status = wait_til_ready(); int status = wait_til_ready(current_fdc);
if (status < 0) if (status < 0)
return -1; return -1;
...@@ -1159,7 +1159,7 @@ static int result(void) ...@@ -1159,7 +1159,7 @@ static int result(void)
int status = 0; int status = 0;
for (i = 0; i < MAX_REPLIES; i++) { for (i = 0; i < MAX_REPLIES; i++) {
status = wait_til_ready(); status = wait_til_ready(current_fdc);
if (status < 0) if (status < 0)
break; break;
status &= STATUS_DIR | STATUS_READY | STATUS_BUSY | STATUS_DMA; status &= STATUS_DIR | STATUS_READY | STATUS_BUSY | STATUS_DMA;
...@@ -1186,7 +1186,7 @@ static int result(void) ...@@ -1186,7 +1186,7 @@ static int result(void)
/* does the fdc need more output? */ /* does the fdc need more output? */
static int need_more_output(void) static int need_more_output(void)
{ {
int status = wait_til_ready(); int status = wait_til_ready(current_fdc);
if (status < 0) if (status < 0)
return -1; return -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment