diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-15 15:22:01 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-15 15:22:01 -0400 |
commit | 74e63e74ea57e06839aa5fcf016eace35da26050 (patch) | |
tree | 7392142a25920307db4509ec7886a3c591555588 /drivers/ide/ide-tape.c | |
parent | dd2e9a032bc552f6e2ae852e81cde602c09d7d3e (diff) |
ide-tape: factor out DSC handling from idetape_pc_intr()
Factor out DSC handling from idetape_pc_intr() to ide_tape_handle_dsc()
helper as a preparation for adding generic ide_pc_intr() helper.
There should be no functional changes caused by this patch.
Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-tape.c')
-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 */ |