aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-15 15:22:01 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-15 15:22:01 -0400
commit74e63e74ea57e06839aa5fcf016eace35da26050 (patch)
tree7392142a25920307db4509ec7886a3c591555588 /drivers/ide
parentdd2e9a032bc552f6e2ae852e81cde602c09d7d3e (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')
-rw-r--r--drivers/ide/ide-tape.c19
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
771static 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
771typedef void idetape_io_buf(ide_drive_t *, struct ide_atapi_pc *, unsigned int); 783typedef 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 */