diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:37 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:37 -0400 |
commit | 7645c1514c7d34ebdf3ea0e8ee3a935c08abceb2 (patch) | |
tree | 98e51341f3f1a259ca89baf7d2e83b7357dc8a22 /drivers/ide/ide-tape.c | |
parent | 7bf7420a318978cd6042e5a5da34b7cfa18ae559 (diff) |
ide: add ide_queue_pc_head() helper
* Move REQ_IDETAPE_* enums to <linux/ide.h>.
* Add ide_queue_pc_head() and convert ide-{floppy,tape}.c to use it
instead of ide*_queue_pc_head().
* Remove no longer used ide*_queue_pc_head().
There should be no functional changes caused by this patch.
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.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 | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 5c879fbcca87..7103b98eb53a 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -159,20 +159,6 @@ struct idetape_bh { | |||
159 | #define IDETAPE_LU_RETENSION_MASK 2 | 159 | #define IDETAPE_LU_RETENSION_MASK 2 |
160 | #define IDETAPE_LU_EOT_MASK 4 | 160 | #define IDETAPE_LU_EOT_MASK 4 |
161 | 161 | ||
162 | /* | ||
163 | * Special requests for our block device strategy routine. | ||
164 | * | ||
165 | * In order to service a character device command, we add special requests to | ||
166 | * the tail of our block device request queue and wait for their completion. | ||
167 | */ | ||
168 | |||
169 | enum { | ||
170 | REQ_IDETAPE_PC1 = (1 << 0), /* packet command (first stage) */ | ||
171 | REQ_IDETAPE_PC2 = (1 << 1), /* packet command (second stage) */ | ||
172 | REQ_IDETAPE_READ = (1 << 2), | ||
173 | REQ_IDETAPE_WRITE = (1 << 3), | ||
174 | }; | ||
175 | |||
176 | /* Error codes returned in rq->errors to the higher part of the driver. */ | 162 | /* Error codes returned in rq->errors to the higher part of the driver. */ |
177 | #define IDETAPE_ERROR_GENERAL 101 | 163 | #define IDETAPE_ERROR_GENERAL 101 |
178 | #define IDETAPE_ERROR_FILEMARK 102 | 164 | #define IDETAPE_ERROR_FILEMARK 102 |
@@ -613,26 +599,6 @@ static void idetape_create_request_sense_cmd(struct ide_atapi_pc *pc) | |||
613 | } | 599 | } |
614 | 600 | ||
615 | /* | 601 | /* |
616 | * Generate a new packet command request in front of the request queue, before | ||
617 | * the current request, so that it will be processed immediately, on the next | ||
618 | * pass through the driver. | ||
619 | */ | ||
620 | static void idetape_queue_pc_head(ide_drive_t *drive, struct ide_atapi_pc *pc, | ||
621 | struct request *rq) | ||
622 | { | ||
623 | struct ide_tape_obj *tape = drive->driver_data; | ||
624 | |||
625 | blk_rq_init(NULL, rq); | ||
626 | rq->cmd_type = REQ_TYPE_SPECIAL; | ||
627 | rq->cmd_flags |= REQ_PREEMPT; | ||
628 | rq->buffer = (char *) pc; | ||
629 | rq->rq_disk = tape->disk; | ||
630 | memcpy(rq->cmd, pc->c, 12); | ||
631 | rq->cmd[13] = REQ_IDETAPE_PC1; | ||
632 | ide_do_drive_cmd(drive, rq); | ||
633 | } | ||
634 | |||
635 | /* | ||
636 | * idetape_retry_pc is called when an error was detected during the | 602 | * idetape_retry_pc is called when an error was detected during the |
637 | * last packet command. We queue a request sense packet command in | 603 | * last packet command. We queue a request sense packet command in |
638 | * the head of the request list. | 604 | * the head of the request list. |
@@ -646,7 +612,7 @@ static void idetape_retry_pc(ide_drive_t *drive) | |||
646 | (void)ide_read_error(drive); | 612 | (void)ide_read_error(drive); |
647 | idetape_create_request_sense_cmd(pc); | 613 | idetape_create_request_sense_cmd(pc); |
648 | set_bit(IDE_AFLAG_IGNORE_DSC, &drive->atapi_flags); | 614 | set_bit(IDE_AFLAG_IGNORE_DSC, &drive->atapi_flags); |
649 | idetape_queue_pc_head(drive, pc, rq); | 615 | ide_queue_pc_head(drive, tape->disk, pc, rq); |
650 | } | 616 | } |
651 | 617 | ||
652 | /* | 618 | /* |