ide-cd: merge cdrom_do_packet_command() and cdrom_do_block_pc()
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)
Add REQ_TYPE_{SENSE,ATA_PC} requests handling to cdrom_do_block_pc()
and remove cdrom_do_packet_command().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-cd.c

index 328d26c07798442c90ed58298693410d788bd9e3..6c31ce15210dc763b4a29a1bb614298c7f632b97 100644 (file)
@@ -1061,22 +1061,6 @@ static void ide_cd_request_sense_fixup(struct request *rq)
                }
 }
 
-static ide_startstop_t cdrom_do_newpc_cont(ide_drive_t *);
-
-static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive)
-{
-       int len;
-       struct request *rq = HWGROUP(drive)->rq;
-       struct cdrom_info *info = drive->driver_data;
-
-       info->dma = 0;
-       rq->cmd_flags &= ~REQ_FAILED;
-       len = rq->data_len;
-
-       /* Start sending the command to the drive. */
-       return cdrom_start_packet_command(drive, len, cdrom_do_newpc_cont);
-}
-
 int ide_cd_queue_pc(ide_drive_t *drive, struct request *rq)
 {
        struct request_sense sense;
@@ -1505,7 +1489,10 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
 {
        struct cdrom_info *info = drive->driver_data;
 
-       rq->cmd_flags |= REQ_QUIET;
+       if (blk_pc_request(rq))
+               rq->cmd_flags |= REQ_QUIET;
+       else
+               rq->cmd_flags &= ~REQ_FAILED;
 
        info->dma = 0;
 
@@ -1565,10 +1552,8 @@ ide_do_rw_cdrom (ide_drive_t *drive, struct request *rq, sector_t block)
                }
                info->last_block = block;
                return action;
-       } else if (rq->cmd_type == REQ_TYPE_SENSE ||
+       } else if (blk_sense_request(rq) || blk_pc_request(rq) ||
                   rq->cmd_type == REQ_TYPE_ATA_PC) {
-               return cdrom_do_packet_command(drive);
-       } else if (blk_pc_request(rq)) {
                return cdrom_do_block_pc(drive, rq);
        } else if (blk_special_request(rq)) {
                /*