aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-tape.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-10-10 16:39:39 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-10-10 16:39:39 -0400
commit0c8a6c7aead1d3be85ce53e3aaacd52e38ede03e (patch)
tree2d43e9303f10c0f06b45bc97e661f0156aaf57da /drivers/ide/ide-tape.c
parent0578042db3191e1ac76b53d213f2a691c3e1eaed (diff)
ide: add ide_do_start_stop() helper
* Add ide_do_start_stop() helper and convert ide-{floppy,tape}.c to use it. * Remove no longer used idefloppy_create_start_stop_cmd() and idetape_create_load_unload_cmd(). There should be no functional changes caused by this patch. Acked-by: 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.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index b7f3eebc0d15..5204bef4a21c 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -1125,15 +1125,6 @@ static void idetape_create_test_unit_ready_cmd(struct ide_atapi_pc *pc)
1125 pc->c[0] = TEST_UNIT_READY; 1125 pc->c[0] = TEST_UNIT_READY;
1126} 1126}
1127 1127
1128static void idetape_create_load_unload_cmd(ide_drive_t *drive,
1129 struct ide_atapi_pc *pc, int cmd)
1130{
1131 ide_init_pc(pc);
1132 pc->c[0] = START_STOP;
1133 pc->c[4] = cmd;
1134 pc->flags |= PC_FLAG_WAIT_FOR_DSC;
1135}
1136
1137static int idetape_wait_ready(ide_drive_t *drive, unsigned long timeout) 1128static int idetape_wait_ready(ide_drive_t *drive, unsigned long timeout)
1138{ 1129{
1139 idetape_tape_t *tape = drive->driver_data; 1130 idetape_tape_t *tape = drive->driver_data;
@@ -1153,9 +1144,7 @@ static int idetape_wait_ready(ide_drive_t *drive, unsigned long timeout)
1153 /* no media */ 1144 /* no media */
1154 if (load_attempted) 1145 if (load_attempted)
1155 return -ENOMEDIUM; 1146 return -ENOMEDIUM;
1156 idetape_create_load_unload_cmd(drive, &pc, 1147 ide_do_start_stop(drive, disk, IDETAPE_LU_LOAD_MASK);
1157 IDETAPE_LU_LOAD_MASK);
1158 ide_queue_pc_tail(drive, disk, &pc);
1159 load_attempted = 1; 1148 load_attempted = 1;
1160 /* not about to be ready */ 1149 /* not about to be ready */
1161 } else if (!(tape->sense_key == 2 && tape->asc == 4 && 1150 } else if (!(tape->sense_key == 2 && tape->asc == 4 &&
@@ -1836,9 +1825,7 @@ static int idetape_mtioctop(ide_drive_t *drive, short mt_op, int mt_count)
1836 return 0; 1825 return 0;
1837 case MTLOAD: 1826 case MTLOAD:
1838 ide_tape_discard_merge_buffer(drive, 0); 1827 ide_tape_discard_merge_buffer(drive, 0);
1839 idetape_create_load_unload_cmd(drive, &pc, 1828 return ide_do_start_stop(drive, disk, IDETAPE_LU_LOAD_MASK);
1840 IDETAPE_LU_LOAD_MASK);
1841 return ide_queue_pc_tail(drive, disk, &pc);
1842 case MTUNLOAD: 1829 case MTUNLOAD:
1843 case MTOFFL: 1830 case MTOFFL:
1844 /* 1831 /*
@@ -1850,9 +1837,7 @@ static int idetape_mtioctop(ide_drive_t *drive, short mt_op, int mt_count)
1850 tape->door_locked = DOOR_UNLOCKED; 1837 tape->door_locked = DOOR_UNLOCKED;
1851 } 1838 }
1852 ide_tape_discard_merge_buffer(drive, 0); 1839 ide_tape_discard_merge_buffer(drive, 0);
1853 idetape_create_load_unload_cmd(drive, &pc, 1840 retval = ide_do_start_stop(drive, disk, !IDETAPE_LU_LOAD_MASK);
1854 !IDETAPE_LU_LOAD_MASK);
1855 retval = ide_queue_pc_tail(drive, disk, &pc);
1856 if (!retval) 1841 if (!retval)
1857 clear_bit(IDE_AFLAG_MEDIUM_PRESENT, &drive->atapi_flags); 1842 clear_bit(IDE_AFLAG_MEDIUM_PRESENT, &drive->atapi_flags);
1858 return retval; 1843 return retval;
@@ -1861,9 +1846,8 @@ static int idetape_mtioctop(ide_drive_t *drive, short mt_op, int mt_count)
1861 return idetape_flush_tape_buffers(drive); 1846 return idetape_flush_tape_buffers(drive);
1862 case MTRETEN: 1847 case MTRETEN:
1863 ide_tape_discard_merge_buffer(drive, 0); 1848 ide_tape_discard_merge_buffer(drive, 0);
1864 idetape_create_load_unload_cmd(drive, &pc, 1849 return ide_do_start_stop(drive, disk,
1865 IDETAPE_LU_RETENSION_MASK | IDETAPE_LU_LOAD_MASK); 1850 IDETAPE_LU_RETENSION_MASK | IDETAPE_LU_LOAD_MASK);
1866 return ide_queue_pc_tail(drive, disk, &pc);
1867 case MTEOM: 1851 case MTEOM:
1868 idetape_create_space_cmd(&pc, 0, IDETAPE_SPACE_TO_EOD); 1852 idetape_create_space_cmd(&pc, 0, IDETAPE_SPACE_TO_EOD);
1869 return ide_queue_pc_tail(drive, disk, &pc); 1853 return ide_queue_pc_tail(drive, disk, &pc);