Commit ae8789f0 authored by Borislav Petkov's avatar Borislav Petkov Committed by Bartlomiej Zolnierkiewicz

ide-cd: remove ide_cd_drain_data and ide_cd_pad_transfer

Use the generic ide_pad_transfer() helper instead.

[bart: fixup ide_cd_drain_data() -> ide_pad_transfer() conversion]
Signed-off-by: default avatarBorislav Petkov <petkovbb@gmail.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent af6765ce
...@@ -598,28 +598,6 @@ static ide_startstop_t cdrom_transfer_packet_command(ide_drive_t *drive, ...@@ -598,28 +598,6 @@ static ide_startstop_t cdrom_transfer_packet_command(ide_drive_t *drive,
return ide_started; return ide_started;
} }
/*
* Block read functions.
*/
static void ide_cd_pad_transfer(ide_drive_t *drive, xfer_func_t *xf, int len)
{
while (len > 0) {
int dum = 0;
xf(drive, NULL, &dum, sizeof(dum));
len -= sizeof(dum);
}
}
static void ide_cd_drain_data(ide_drive_t *drive, int nsects)
{
while (nsects > 0) {
static char dum[SECTOR_SIZE];
drive->hwif->input_data(drive, NULL, dum, sizeof(dum));
nsects--;
}
}
/* /*
* Check the contents of the interrupt reason register from the cdrom * Check the contents of the interrupt reason register from the cdrom
* and attempt to recover if there are problems. Returns 0 if everything's * and attempt to recover if there are problems. Returns 0 if everything's
...@@ -635,15 +613,12 @@ static int ide_cd_check_ireason(ide_drive_t *drive, struct request *rq, ...@@ -635,15 +613,12 @@ static int ide_cd_check_ireason(ide_drive_t *drive, struct request *rq,
if (ireason == (!rw << 1)) if (ireason == (!rw << 1))
return 0; return 0;
else if (ireason == (rw << 1)) { else if (ireason == (rw << 1)) {
ide_hwif_t *hwif = drive->hwif;
xfer_func_t *xf;
/* whoops... */ /* whoops... */
printk(KERN_ERR "%s: %s: wrong transfer direction!\n", printk(KERN_ERR "%s: %s: wrong transfer direction!\n",
drive->name, __func__); drive->name, __func__);
xf = rw ? hwif->output_data : hwif->input_data; ide_pad_transfer(drive, rw, len);
ide_cd_pad_transfer(drive, xf, len);
} else if (rw == 0 && ireason == 1) { } else if (rw == 0 && ireason == 1) {
/* /*
* Some drives (ASUS) seem to tell us that status info is * Some drives (ASUS) seem to tell us that status info is
...@@ -1006,7 +981,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) ...@@ -1006,7 +981,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
- bio_cur_sectors(rq->bio), - bio_cur_sectors(rq->bio),
thislen >> 9); thislen >> 9);
if (nskip > 0) { if (nskip > 0) {
ide_cd_drain_data(drive, nskip); ide_pad_transfer(drive, write, nskip << 9);
rq->current_nr_sectors -= nskip; rq->current_nr_sectors -= nskip;
thislen -= (nskip << 9); thislen -= (nskip << 9);
} }
...@@ -1043,7 +1018,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) ...@@ -1043,7 +1018,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
* If the buffers are full, pipe the rest into * If the buffers are full, pipe the rest into
* oblivion. * oblivion.
*/ */
ide_cd_drain_data(drive, thislen >> 9); ide_pad_transfer(drive, 0, thislen);
else { else {
printk(KERN_ERR "%s: confused, missing data\n", printk(KERN_ERR "%s: confused, missing data\n",
drive->name); drive->name);
...@@ -1091,7 +1066,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) ...@@ -1091,7 +1066,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
/* pad, if necessary */ /* pad, if necessary */
if (!blk_fs_request(rq) && len > 0) if (!blk_fs_request(rq) && len > 0)
ide_cd_pad_transfer(drive, xferfunc, len); ide_pad_transfer(drive, write, len);
if (blk_pc_request(rq)) { if (blk_pc_request(rq)) {
timeout = rq->timeout; timeout = rq->timeout;
......
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