summaryrefslogtreecommitdiff
path: root/drivers/block/floppy.c
diff options
context:
space:
mode:
authorWilly Tarreau <w@1wt.eu>2020-03-31 11:40:41 +0200
committerDenis Efremov <efremov@linux.com>2020-05-12 19:34:54 +0300
commitf3e0dc1d8b71fa0bdd3a8e24bb129978567fefbb (patch)
treebd39c6d3151fb1f884cae3dcc381363b876c8ca6 /drivers/block/floppy.c
parentc1f710b5fe8c18d0c2be4514bf509e1a4203ce08 (diff)
floppy: cleanup: make reset_fdc_info() 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-11-w@1wt.eu Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Denis Efremov <efremov@linux.com>
Diffstat (limited to 'drivers/block/floppy.c')
-rw-r--r--drivers/block/floppy.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index b1729daa2e2e..6c98f8d169a9 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -838,19 +838,19 @@ static void twaddle(int fdc, int drive)
}
/*
- * Reset all driver information about the current fdc.
+ * Reset all driver information about the specified fdc.
* This is needed after a reset, and after a raw command.
*/
-static void reset_fdc_info(int mode)
+static void reset_fdc_info(int fdc, int mode)
{
int drive;
- fdc_state[current_fdc].spec1 = fdc_state[current_fdc].spec2 = -1;
- fdc_state[current_fdc].need_configure = 1;
- fdc_state[current_fdc].perp_mode = 1;
- fdc_state[current_fdc].rawcmd = 0;
+ fdc_state[fdc].spec1 = fdc_state[fdc].spec2 = -1;
+ fdc_state[fdc].need_configure = 1;
+ fdc_state[fdc].perp_mode = 1;
+ fdc_state[fdc].rawcmd = 0;
for (drive = 0; drive < N_DRIVE; drive++)
- if (FDC(drive) == current_fdc &&
+ if (FDC(drive) == fdc &&
(mode || drive_state[drive].track != NEED_1_RECAL))
drive_state[drive].track = NEED_2_RECAL;
}
@@ -874,7 +874,7 @@ static void set_fdc(int drive)
set_dor(1 - current_fdc, ~8, 0);
#endif
if (fdc_state[current_fdc].rawcmd == 2)
- reset_fdc_info(1);
+ reset_fdc_info(current_fdc, 1);
if (fdc_inb(current_fdc, FD_STATUS) != STATUS_READY)
fdc_state[current_fdc].reset = 1;
}
@@ -1800,7 +1800,7 @@ static void reset_fdc(void)
do_floppy = reset_interrupt;
fdc_state[current_fdc].reset = 0;
- reset_fdc_info(0);
+ reset_fdc_info(current_fdc, 0);
/* Pseudo-DMA may intercept 'reset finished' interrupt. */
/* Irrelevant for systems with true DMA (i386). */
@@ -4890,7 +4890,7 @@ static int floppy_grab_irq_and_dma(void)
}
for (current_fdc = 0; current_fdc < N_FDC; current_fdc++) {
if (fdc_state[current_fdc].address != -1) {
- reset_fdc_info(1);
+ reset_fdc_info(current_fdc, 1);
fdc_outb(fdc_state[current_fdc].dor, current_fdc, FD_DOR);
}
}