diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:39 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:39 -0400 |
commit | d6e2955a6b82d2312b5ff885ce13c8ab54d59d96 (patch) | |
tree | f8bc72a2f60218f2d14883b6b54b9454499ed158 | |
parent | de699ad595fb45022d1b049ed91ffd06fdd16c13 (diff) |
ide: move IDE{FLOPPY,TAPE}_WAIT_CMD defines to <linux/ide.h>
While at it:
* IDE{FLOPPY,TAPE}_WAIT_CMD -> WAIT_{FLOPPY,TAPE}_CMD
* Use enum for WAIT_* defines.
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>
-rw-r--r-- | drivers/ide/ide-floppy.c | 13 | ||||
-rw-r--r-- | drivers/ide/ide-tape.c | 13 | ||||
-rw-r--r-- | include/linux/ide.h | 28 |
3 files changed, 29 insertions, 25 deletions
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 4d7e9ef82425..a63aba2c8265 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
@@ -61,10 +61,6 @@ | |||
61 | #define debug_log(fmt, args...) do {} while (0) | 61 | #define debug_log(fmt, args...) do {} while (0) |
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | |||
65 | /* Some drives require a longer irq timeout. */ | ||
66 | #define IDEFLOPPY_WAIT_CMD (5 * WAIT_CMD) | ||
67 | |||
68 | /* | 64 | /* |
69 | * After each failed packet command we issue a request sense command and retry | 65 | * After each failed packet command we issue a request sense command and retry |
70 | * the packet command IDEFLOPPY_MAX_PC_RETRIES times. | 66 | * the packet command IDEFLOPPY_MAX_PC_RETRIES times. |
@@ -226,7 +222,7 @@ static ide_startstop_t idefloppy_pc_intr(ide_drive_t *drive) | |||
226 | idefloppy_floppy_t *floppy = drive->driver_data; | 222 | idefloppy_floppy_t *floppy = drive->driver_data; |
227 | 223 | ||
228 | return ide_pc_intr(drive, floppy->pc, idefloppy_pc_intr, | 224 | return ide_pc_intr(drive, floppy->pc, idefloppy_pc_intr, |
229 | IDEFLOPPY_WAIT_CMD, NULL, idefloppy_update_buffers, | 225 | WAIT_FLOPPY_CMD, NULL, idefloppy_update_buffers, |
230 | idefloppy_retry_pc, NULL, ide_io_buffers); | 226 | idefloppy_retry_pc, NULL, ide_io_buffers); |
231 | } | 227 | } |
232 | 228 | ||
@@ -244,10 +240,9 @@ static int idefloppy_transfer_pc(ide_drive_t *drive) | |||
244 | drive->hwif->tp_ops->output_data(drive, NULL, floppy->pc->c, 12); | 240 | drive->hwif->tp_ops->output_data(drive, NULL, floppy->pc->c, 12); |
245 | 241 | ||
246 | /* Timeout for the packet command */ | 242 | /* Timeout for the packet command */ |
247 | return IDEFLOPPY_WAIT_CMD; | 243 | return WAIT_FLOPPY_CMD; |
248 | } | 244 | } |
249 | 245 | ||
250 | |||
251 | /* | 246 | /* |
252 | * Called as an interrupt (or directly). When the device says it's ready for a | 247 | * Called as an interrupt (or directly). When the device says it's ready for a |
253 | * packet, we schedule the packet transfer to occur about 2-3 ticks later in | 248 | * packet, we schedule the packet transfer to occur about 2-3 ticks later in |
@@ -272,7 +267,7 @@ static ide_startstop_t idefloppy_start_pc_transfer(ide_drive_t *drive) | |||
272 | timeout = floppy->ticks; | 267 | timeout = floppy->ticks; |
273 | expiry = &idefloppy_transfer_pc; | 268 | expiry = &idefloppy_transfer_pc; |
274 | } else { | 269 | } else { |
275 | timeout = IDEFLOPPY_WAIT_CMD; | 270 | timeout = WAIT_FLOPPY_CMD; |
276 | expiry = NULL; | 271 | expiry = NULL; |
277 | } | 272 | } |
278 | 273 | ||
@@ -322,7 +317,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive, | |||
322 | pc->retries++; | 317 | pc->retries++; |
323 | 318 | ||
324 | return ide_issue_pc(drive, pc, idefloppy_start_pc_transfer, | 319 | return ide_issue_pc(drive, pc, idefloppy_start_pc_transfer, |
325 | IDEFLOPPY_WAIT_CMD, NULL); | 320 | WAIT_FLOPPY_CMD, NULL); |
326 | } | 321 | } |
327 | 322 | ||
328 | void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc *pc) | 323 | void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc *pc) |
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 737dd7db6bb7..25190966ed39 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -81,13 +81,6 @@ enum { | |||
81 | #define IDETAPE_MAX_PC_RETRIES 3 | 81 | #define IDETAPE_MAX_PC_RETRIES 3 |
82 | 82 | ||
83 | /* | 83 | /* |
84 | * Some drives (for example, Seagate STT3401A Travan) require a very long | ||
85 | * timeout, because they don't return an interrupt or clear their busy bit | ||
86 | * until after the command completes (even retension commands). | ||
87 | */ | ||
88 | #define IDETAPE_WAIT_CMD (900*HZ) | ||
89 | |||
90 | /* | ||
91 | * The following parameter is used to select the point in the internal tape fifo | 84 | * The following parameter is used to select the point in the internal tape fifo |
92 | * in which we will start to refill the buffer. Decreasing the following | 85 | * in which we will start to refill the buffer. Decreasing the following |
93 | * parameter will improve the system's latency and interactive response, while | 86 | * parameter will improve the system's latency and interactive response, while |
@@ -663,7 +656,7 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive) | |||
663 | { | 656 | { |
664 | idetape_tape_t *tape = drive->driver_data; | 657 | idetape_tape_t *tape = drive->driver_data; |
665 | 658 | ||
666 | return ide_pc_intr(drive, tape->pc, idetape_pc_intr, IDETAPE_WAIT_CMD, | 659 | return ide_pc_intr(drive, tape->pc, idetape_pc_intr, WAIT_TAPE_CMD, |
667 | NULL, idetape_update_buffers, idetape_retry_pc, | 660 | NULL, idetape_update_buffers, idetape_retry_pc, |
668 | ide_tape_handle_dsc, ide_tape_io_buffers); | 661 | ide_tape_handle_dsc, ide_tape_io_buffers); |
669 | } | 662 | } |
@@ -709,7 +702,7 @@ static ide_startstop_t idetape_transfer_pc(ide_drive_t *drive) | |||
709 | idetape_tape_t *tape = drive->driver_data; | 702 | idetape_tape_t *tape = drive->driver_data; |
710 | 703 | ||
711 | return ide_transfer_pc(drive, tape->pc, idetape_pc_intr, | 704 | return ide_transfer_pc(drive, tape->pc, idetape_pc_intr, |
712 | IDETAPE_WAIT_CMD, NULL); | 705 | WAIT_TAPE_CMD, NULL); |
713 | } | 706 | } |
714 | 707 | ||
715 | static ide_startstop_t idetape_issue_pc(ide_drive_t *drive, | 708 | static ide_startstop_t idetape_issue_pc(ide_drive_t *drive, |
@@ -758,7 +751,7 @@ static ide_startstop_t idetape_issue_pc(ide_drive_t *drive, | |||
758 | pc->retries++; | 751 | pc->retries++; |
759 | 752 | ||
760 | return ide_issue_pc(drive, pc, idetape_transfer_pc, | 753 | return ide_issue_pc(drive, pc, idetape_transfer_pc, |
761 | IDETAPE_WAIT_CMD, NULL); | 754 | WAIT_TAPE_CMD, NULL); |
762 | } | 755 | } |
763 | 756 | ||
764 | /* A mode sense command is used to "sense" tape parameters. */ | 757 | /* A mode sense command is used to "sense" tape parameters. */ |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 55098eed3b21..a9eced25acce 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -133,12 +133,28 @@ struct ide_io_ports { | |||
133 | /* | 133 | /* |
134 | * Timeouts for various operations: | 134 | * Timeouts for various operations: |
135 | */ | 135 | */ |
136 | #define WAIT_DRQ (HZ/10) /* 100msec - spec allows up to 20ms */ | 136 | enum { |
137 | #define WAIT_READY (5*HZ) /* 5sec - some laptops are very slow */ | 137 | /* spec allows up to 20ms */ |
138 | #define WAIT_PIDENTIFY (10*HZ) /* 10sec - should be less than 3ms (?), if all ATAPI CD is closed at boot */ | 138 | WAIT_DRQ = HZ / 10, /* 100ms */ |
139 | #define WAIT_WORSTCASE (30*HZ) /* 30sec - worst case when spinning up */ | 139 | /* some laptops are very slow */ |
140 | #define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */ | 140 | WAIT_READY = 5 * HZ, /* 5s */ |
141 | #define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */ | 141 | /* should be less than 3ms (?), if all ATAPI CD is closed at boot */ |
142 | WAIT_PIDENTIFY = 10 * HZ, /* 10s */ | ||
143 | /* worst case when spinning up */ | ||
144 | WAIT_WORSTCASE = 30 * HZ, /* 30s */ | ||
145 | /* maximum wait for an IRQ to happen */ | ||
146 | WAIT_CMD = 10 * HZ, /* 10s */ | ||
147 | /* Some drives require a longer IRQ timeout. */ | ||
148 | WAIT_FLOPPY_CMD = 50 * HZ, /* 50s */ | ||
149 | /* | ||
150 | * Some drives (for example, Seagate STT3401A Travan) require a very | ||
151 | * long timeout, because they don't return an interrupt or clear their | ||
152 | * BSY bit until after the command completes (even retension commands). | ||
153 | */ | ||
154 | WAIT_TAPE_CMD = 900 * HZ, /* 900s */ | ||
155 | /* minimum sleep time */ | ||
156 | WAIT_MIN_SLEEP = HZ / 50, /* 20ms */ | ||
157 | }; | ||
142 | 158 | ||
143 | /* | 159 | /* |
144 | * Op codes for special requests to be handled by ide_special_rq(). | 160 | * Op codes for special requests to be handled by ide_special_rq(). |