diff options
-rw-r--r-- | drivers/ide/ide-atapi.c | 17 | ||||
-rw-r--r-- | drivers/ide/ide-tape.c | 1 | ||||
-rw-r--r-- | include/linux/ide.h | 12 |
3 files changed, 4 insertions, 26 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index b9dd4503cbc7..afe5a4323879 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c | |||
@@ -359,11 +359,8 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive) | |||
359 | drive->name, rq_data_dir(pc->rq) | 359 | drive->name, rq_data_dir(pc->rq) |
360 | ? "write" : "read"); | 360 | ? "write" : "read"); |
361 | pc->flags |= PC_FLAG_DMA_ERROR; | 361 | pc->flags |= PC_FLAG_DMA_ERROR; |
362 | } else { | 362 | } else |
363 | pc->xferred = pc->req_xfer; | 363 | pc->xferred = pc->req_xfer; |
364 | if (drive->pc_update_buffers) | ||
365 | drive->pc_update_buffers(drive, pc); | ||
366 | } | ||
367 | debug_log("%s: DMA finished\n", drive->name); | 364 | debug_log("%s: DMA finished\n", drive->name); |
368 | } | 365 | } |
369 | 366 | ||
@@ -463,16 +460,11 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive) | |||
463 | return ide_do_reset(drive); | 460 | return ide_do_reset(drive); |
464 | } | 461 | } |
465 | 462 | ||
466 | if (drive->media == ide_tape && pc->bh) | 463 | done = min_t(unsigned int, bcount, cmd->nleft); |
467 | done = drive->pc_io_buffers(drive, pc, bcount, write); | 464 | ide_pio_bytes(drive, cmd, write, done); |
468 | else { | ||
469 | done = min_t(unsigned int, bcount, cmd->nleft); | ||
470 | ide_pio_bytes(drive, cmd, write, done); | ||
471 | } | ||
472 | 465 | ||
473 | /* Update the current position */ | 466 | /* Update transferred byte count */ |
474 | pc->xferred += done; | 467 | pc->xferred += done; |
475 | pc->cur_pos += done; | ||
476 | 468 | ||
477 | bcount -= done; | 469 | bcount -= done; |
478 | 470 | ||
@@ -650,7 +642,6 @@ ide_startstop_t ide_issue_pc(ide_drive_t *drive, struct ide_cmd *cmd) | |||
650 | 642 | ||
651 | /* We haven't transferred any data yet */ | 643 | /* We haven't transferred any data yet */ |
652 | pc->xferred = 0; | 644 | pc->xferred = 0; |
653 | pc->cur_pos = pc->buf; | ||
654 | 645 | ||
655 | valid_tf = IDE_VALID_DEVICE; | 646 | valid_tf = IDE_VALID_DEVICE; |
656 | bcount = ((drive->media == ide_tape) ? | 647 | bcount = ((drive->media == ide_tape) ? |
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 2599579e4174..8dfc68892d6a 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -591,7 +591,6 @@ static void ide_tape_create_rw_cmd(idetape_tape_t *tape, | |||
591 | ide_init_pc(pc); | 591 | ide_init_pc(pc); |
592 | put_unaligned(cpu_to_be32(length), (unsigned int *) &pc->c[1]); | 592 | put_unaligned(cpu_to_be32(length), (unsigned int *) &pc->c[1]); |
593 | pc->c[1] = 1; | 593 | pc->c[1] = 1; |
594 | pc->bh = NULL; | ||
595 | pc->buf = NULL; | 594 | pc->buf = NULL; |
596 | pc->buf_size = length * tape->blk_size; | 595 | pc->buf_size = length * tape->blk_size; |
597 | pc->req_xfer = pc->buf_size; | 596 | pc->req_xfer = pc->buf_size; |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 1957461ac762..34c128f0a33c 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -362,11 +362,7 @@ struct ide_atapi_pc { | |||
362 | 362 | ||
363 | /* data buffer */ | 363 | /* data buffer */ |
364 | u8 *buf; | 364 | u8 *buf; |
365 | /* current buffer position */ | ||
366 | u8 *cur_pos; | ||
367 | int buf_size; | 365 | int buf_size; |
368 | /* missing/available data on the current buffer */ | ||
369 | int b_count; | ||
370 | 366 | ||
371 | /* the corresponding request */ | 367 | /* the corresponding request */ |
372 | struct request *rq; | 368 | struct request *rq; |
@@ -379,10 +375,6 @@ struct ide_atapi_pc { | |||
379 | */ | 375 | */ |
380 | u8 pc_buf[IDE_PC_BUFFER_SIZE]; | 376 | u8 pc_buf[IDE_PC_BUFFER_SIZE]; |
381 | 377 | ||
382 | /* idetape only */ | ||
383 | struct idetape_bh *bh; | ||
384 | char *b_data; | ||
385 | |||
386 | unsigned long timeout; | 378 | unsigned long timeout; |
387 | }; | 379 | }; |
388 | 380 | ||
@@ -595,10 +587,6 @@ struct ide_drive_s { | |||
595 | /* callback for packet commands */ | 587 | /* callback for packet commands */ |
596 | int (*pc_callback)(struct ide_drive_s *, int); | 588 | int (*pc_callback)(struct ide_drive_s *, int); |
597 | 589 | ||
598 | void (*pc_update_buffers)(struct ide_drive_s *, struct ide_atapi_pc *); | ||
599 | int (*pc_io_buffers)(struct ide_drive_s *, struct ide_atapi_pc *, | ||
600 | unsigned int, int); | ||
601 | |||
602 | ide_startstop_t (*irq_handler)(struct ide_drive_s *); | 590 | ide_startstop_t (*irq_handler)(struct ide_drive_s *); |
603 | 591 | ||
604 | unsigned long atapi_flags; | 592 | unsigned long atapi_flags; |