diff options
| -rw-r--r-- | drivers/ide/ide-tape.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 0fec58ebee85..b224823a8ae7 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
| @@ -768,6 +768,18 @@ static void idetape_postpone_request(ide_drive_t *drive) | |||
| 768 | ide_stall_queue(drive, tape->dsc_poll_freq); | 768 | ide_stall_queue(drive, tape->dsc_poll_freq); |
| 769 | } | 769 | } |
| 770 | 770 | ||
| 771 | static void ide_tape_handle_dsc(ide_drive_t *drive) | ||
| 772 | { | ||
| 773 | idetape_tape_t *tape = drive->driver_data; | ||
| 774 | |||
| 775 | /* Media access command */ | ||
| 776 | tape->dsc_polling_start = jiffies; | ||
| 777 | tape->dsc_poll_freq = IDETAPE_DSC_MA_FAST; | ||
| 778 | tape->dsc_timeout = jiffies + IDETAPE_DSC_MA_TIMEOUT; | ||
| 779 | /* Allow ide.c to handle other requests */ | ||
| 780 | idetape_postpone_request(drive); | ||
| 781 | } | ||
| 782 | |||
| 771 | typedef void idetape_io_buf(ide_drive_t *, struct ide_atapi_pc *, unsigned int); | 783 | typedef void idetape_io_buf(ide_drive_t *, struct ide_atapi_pc *, unsigned int); |
| 772 | 784 | ||
| 773 | /* | 785 | /* |
| @@ -833,12 +845,7 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive) | |||
| 833 | pc->error = 0; | 845 | pc->error = 0; |
| 834 | if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && | 846 | if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && |
| 835 | (stat & SEEK_STAT) == 0) { | 847 | (stat & SEEK_STAT) == 0) { |
| 836 | /* Media access command */ | 848 | ide_tape_handle_dsc(drive); |
| 837 | tape->dsc_polling_start = jiffies; | ||
| 838 | tape->dsc_poll_freq = IDETAPE_DSC_MA_FAST; | ||
| 839 | tape->dsc_timeout = jiffies + IDETAPE_DSC_MA_TIMEOUT; | ||
| 840 | /* Allow ide.c to handle other requests */ | ||
| 841 | idetape_postpone_request(drive); | ||
| 842 | return ide_stopped; | 849 | return ide_stopped; |
| 843 | } | 850 | } |
| 844 | /* Command finished - Call the callback function */ | 851 | /* Command finished - Call the callback function */ |
