ide-tape: add ide_tape_io_buffers() helper

* Add ide_tape_io_buffers() helper which is a wrapper for
  idetape_{in,out}put_buffers() and convert idetape_pc_intr()
  to use it.

* Remove no longer used idetape_io_buf typedef.

There should be no functional changes caused by this patch.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>---
parent 74e63e74
...@@ -780,7 +780,14 @@ static void ide_tape_handle_dsc(ide_drive_t *drive) ...@@ -780,7 +780,14 @@ static void ide_tape_handle_dsc(ide_drive_t *drive)
idetape_postpone_request(drive); idetape_postpone_request(drive);
} }
typedef void idetape_io_buf(ide_drive_t *, struct ide_atapi_pc *, unsigned int); static void ide_tape_io_buffers(ide_drive_t *drive, struct ide_atapi_pc *pc,
unsigned int bcount, int write)
{
if (write)
idetape_output_buffers(drive, pc, bcount);
else
idetape_input_buffers(drive, pc, bcount);
}
/* /*
* This is the usual interrupt handler which will be called during a packet * This is the usual interrupt handler which will be called during a packet
...@@ -795,7 +802,6 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive) ...@@ -795,7 +802,6 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive)
idetape_tape_t *tape = drive->driver_data; idetape_tape_t *tape = drive->driver_data;
struct ide_atapi_pc *pc = tape->pc; struct ide_atapi_pc *pc = tape->pc;
xfer_func_t *xferfunc; xfer_func_t *xferfunc;
idetape_io_buf *iobuf;
unsigned int temp; unsigned int temp;
u16 bcount; u16 bcount;
u8 stat, ireason; u8 stat, ireason;
...@@ -895,15 +901,14 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive) ...@@ -895,15 +901,14 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive)
debug_log(DBG_SENSE, "The device wants to send us more " debug_log(DBG_SENSE, "The device wants to send us more "
"data than expected - allowing transfer\n"); "data than expected - allowing transfer\n");
} }
iobuf = &idetape_input_buffers;
xferfunc = hwif->input_data; xferfunc = hwif->input_data;
} else { } else {
iobuf = &idetape_output_buffers;
xferfunc = hwif->output_data; xferfunc = hwif->output_data;
} }
if (pc->bh) if (pc->bh)
iobuf(drive, pc, bcount); ide_tape_io_buffers(drive, pc, bcount,
!!(pc->flags & PC_FLAG_WRITING));
else else
xferfunc(drive, NULL, pc->cur_pos, bcount); xferfunc(drive, NULL, pc->cur_pos, bcount);
......
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