#define MORE_OUTPUT -2
 /* does the fdc need more output? */
-static int need_more_output(void)
+static int need_more_output(int fdc)
 {
-       int status = wait_til_ready(current_fdc);
+       int status = wait_til_ready(fdc);
 
        if (status < 0)
                return -1;
        if (is_ready_state(status))
                return MORE_OUTPUT;
 
-       return result(current_fdc);
+       return result(fdc);
 }
 
 /* Set perpendicular mode as required, based on data rate, if supported.
 {
        /* Turn on FIFO */
        output_byte(current_fdc, FD_CONFIGURE);
-       if (need_more_output() != MORE_OUTPUT)
+       if (need_more_output(current_fdc) != MORE_OUTPUT)
                return 0;
        output_byte(current_fdc, 0);
        output_byte(current_fdc, 0x10 | (no_fifo & 0x20) | (fifo_depth & 0xf));
                        /* chose the default rate table, not the one
                         * where 1 = 2 Mbps */
                        output_byte(current_fdc, FD_DRIVESPEC);
-                       if (need_more_output() == MORE_OUTPUT) {
+                       if (need_more_output(current_fdc) == MORE_OUTPUT) {
                                output_byte(current_fdc, UNIT(current_drive));
                                output_byte(current_fdc, 0xc0);
                        }
        }
 
        output_byte(current_fdc, FD_PERPENDICULAR);
-       if (need_more_output() == MORE_OUTPUT) {
+       if (need_more_output(current_fdc) == MORE_OUTPUT) {
                output_byte(current_fdc, 0);
        } else {
                pr_info("FDC %d is an 82072A\n", current_fdc);