ide: remove ide_end_request()
[deliverable/linux.git] / drivers / ide / ide-cd.c
index ddfbea41d296a738a1efb5ace07b22b9a7dff2ad..2f698c6e913fc095589c9d3ad4ea4f6d706187e2 100644 (file)
@@ -100,8 +100,7 @@ static int cdrom_log_sense(ide_drive_t *drive, struct request *rq,
 {
        int log = 0;
 
-       ide_debug_log(IDE_DBG_SENSE, "Call %s, sense_key: 0x%x\n", __func__,
-                     sense->sense_key);
+       ide_debug_log(IDE_DBG_SENSE, "sense_key: 0x%x", sense->sense_key);
 
        if (!sense || !rq || (rq->cmd_flags & REQ_QUIET))
                return 0;
@@ -151,13 +150,12 @@ static void cdrom_analyze_sense_data(ide_drive_t *drive,
        unsigned long bio_sectors;
        struct cdrom_info *info = drive->driver_data;
 
-       ide_debug_log(IDE_DBG_SENSE, "Call %s, error_code: 0x%x, "
-                       "sense_key: 0x%x\n", __func__, sense->error_code,
-                       sense->sense_key);
+       ide_debug_log(IDE_DBG_SENSE, "error_code: 0x%x, sense_key: 0x%x",
+                                    sense->error_code, sense->sense_key);
 
        if (failed_command)
-               ide_debug_log(IDE_DBG_SENSE, "%s: failed cmd: 0x%x\n",
-                               __func__, failed_command->cmd[0]);
+               ide_debug_log(IDE_DBG_SENSE, "failed cmd: 0x%x",
+                                            failed_command->cmd[0]);
 
        if (!cdrom_log_sense(drive, failed_command, sense))
                return;
@@ -215,9 +213,9 @@ static void cdrom_queue_request_sense(ide_drive_t *drive, void *sense,
                                      struct request *failed_command)
 {
        struct cdrom_info *info         = drive->driver_data;
-       struct request *rq              = &info->request_sense_request;
+       struct request *rq              = &drive->request_sense_rq;
 
-       ide_debug_log(IDE_DBG_SENSE, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_SENSE, "enter");
 
        if (sense == NULL)
                sense = &info->sense_data;
@@ -239,10 +237,12 @@ static void cdrom_queue_request_sense(ide_drive_t *drive, void *sense,
        rq->buffer = (void *) failed_command;
 
        if (failed_command)
-               ide_debug_log(IDE_DBG_SENSE, "failed_cmd: 0x%x\n",
-                             failed_command->cmd[0]);
+               ide_debug_log(IDE_DBG_SENSE, "failed_cmd: 0x%x",
+                                            failed_command->cmd[0]);
 
-       ide_do_drive_cmd(drive, rq);
+       drive->hwif->rq = NULL;
+
+       elv_add_request(drive->queue, rq, ELEVATOR_INSERT_FRONT, 0);
 }
 
 static void cdrom_end_request(ide_drive_t *drive, int uptodate)
@@ -250,9 +250,8 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate)
        struct request *rq = drive->hwif->rq;
        int nsectors = rq->hard_cur_sectors;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s, cmd: 0x%x, uptodate: 0x%x, "
-                     "nsectors: %d\n", __func__, rq->cmd[0], uptodate,
-                     nsectors);
+       ide_debug_log(IDE_DBG_FUNC, "cmd: 0x%x, uptodate: 0x%x, nsectors: %d",
+                                   rq->cmd[0], uptodate, nsectors);
 
        if (blk_sense_request(rq) && uptodate) {
                /*
@@ -273,8 +272,8 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate)
                         * now end the failed request
                         */
                        if (blk_fs_request(failed)) {
-                               if (ide_end_dequeued_request(drive, failed, 0,
-                                               failed->hard_nr_sectors))
+                               if (ide_end_rq(drive, failed, -EIO,
+                                               failed->hard_nr_sectors << 9))
                                        BUG();
                        } else {
                                if (blk_end_request(failed, -EIO,
@@ -293,10 +292,13 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate)
        if (!nsectors)
                nsectors = 1;
 
-       ide_debug_log(IDE_DBG_FUNC, "Exit %s, uptodate: 0x%x, nsectors: %d\n",
-                     __func__, uptodate, nsectors);
+       ide_debug_log(IDE_DBG_FUNC, "uptodate: 0x%x, nsectors: %d",
+                                   uptodate, nsectors);
+
+       if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0)
+               rq->errors = -EIO;
 
-       ide_end_request(drive, uptodate, nsectors);
+       ide_complete_rq(drive, uptodate ? 0 : -EIO, nsectors << 9);
 }
 
 static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 st)
@@ -336,9 +338,10 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
                return 1;
        }
 
-       ide_debug_log(IDE_DBG_RQ, "%s: stat: 0x%x, good_stat: 0x%x, "
-                     "rq->cmd[0]: 0x%x, rq->cmd_type: 0x%x, err: 0x%x\n",
-                     __func__, stat, good_stat, rq->cmd[0], rq->cmd_type, err);
+       ide_debug_log(IDE_DBG_RQ, "stat: 0x%x, good_stat: 0x%x, cmd[0]: 0x%x, "
+                                 "rq->cmd_type: 0x%x, err: 0x%x",
+                                 stat, good_stat, rq->cmd[0], rq->cmd_type,
+                                 err);
 
        if (blk_sense_request(rq)) {
                /*
@@ -528,8 +531,7 @@ static int ide_cd_check_ireason(ide_drive_t *drive, struct request *rq,
 {
        ide_hwif_t *hwif = drive->hwif;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s, ireason: 0x%x, rw: 0x%x\n",
-                     __func__, ireason, rw);
+       ide_debug_log(IDE_DBG_FUNC, "ireason: 0x%x, rw: 0x%x", ireason, rw);
 
        /*
         * ireason == 0: the drive wants to receive data from us
@@ -570,7 +572,7 @@ static int ide_cd_check_ireason(ide_drive_t *drive, struct request *rq,
  */
 static int ide_cd_check_transfer_size(ide_drive_t *drive, int len)
 {
-       ide_debug_log(IDE_DBG_FUNC, "Call %s, len: %d\n", __func__, len);
+       ide_debug_log(IDE_DBG_FUNC, "len: %d", len);
 
        if ((len % SECTOR_SIZE) == 0)
                return 0;
@@ -592,8 +594,7 @@ static int ide_cd_check_transfer_size(ide_drive_t *drive, int len)
 static ide_startstop_t ide_cd_prepare_rw_request(ide_drive_t *drive,
                                                 struct request *rq)
 {
-       ide_debug_log(IDE_DBG_RQ, "Call %s: rq->cmd_flags: 0x%x\n", __func__,
-                     rq->cmd_flags);
+       ide_debug_log(IDE_DBG_RQ, "rq->cmd_flags: 0x%x", rq->cmd_flags);
 
        if (rq_data_dir(rq) == READ) {
                unsigned short sectors_per_frame =
@@ -637,7 +638,7 @@ static ide_startstop_t ide_cd_prepare_rw_request(ide_drive_t *drive,
 static void ide_cd_restore_request(ide_drive_t *drive, struct request *rq)
 {
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        if (rq->buffer != bio_data(rq->bio)) {
                sector_t n =
@@ -656,8 +657,7 @@ static void ide_cd_restore_request(ide_drive_t *drive, struct request *rq)
 
 static void ide_cd_request_sense_fixup(ide_drive_t *drive, struct request *rq)
 {
-       ide_debug_log(IDE_DBG_FUNC, "Call %s, rq->cmd[0]: 0x%x\n",
-                     __func__, rq->cmd[0]);
+       ide_debug_log(IDE_DBG_FUNC, "rq->cmd[0]: 0x%x", rq->cmd[0]);
 
        /*
         * Some of the trailing request sense fields are optional,
@@ -684,9 +684,9 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd,
        if (!sense)
                sense = &local_sense;
 
-       ide_debug_log(IDE_DBG_PC, "Call %s, cmd[0]: 0x%x, write: 0x%x, "
-                     "timeout: %d, cmd_flags: 0x%x\n", __func__, cmd[0], write,
-                     timeout, cmd_flags);
+       ide_debug_log(IDE_DBG_PC, "cmd[0]: 0x%x, write: 0x%x, timeout: %d, "
+                                 "cmd_flags: 0x%x",
+                                 cmd[0], write, timeout, cmd_flags);
 
        /* start of retry loop */
        do {
@@ -770,8 +770,8 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
        u16 len;
        u8 ireason;
 
-       ide_debug_log(IDE_DBG_PC, "Call %s, rq->cmd[0]: 0x%x, write: 0x%x\n",
-                     __func__, rq->cmd[0], write);
+       ide_debug_log(IDE_DBG_PC, "cmd[0]: 0x%x, write: 0x%x",
+                                 rq->cmd[0], write);
 
        /* check for errors */
        dma = drive->dma;
@@ -793,10 +793,11 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
                if (dma_error)
                        return ide_error(drive, "dma error", stat);
                if (blk_fs_request(rq)) {
-                       ide_end_request(drive, 1, rq->nr_sectors);
+                       ide_complete_rq(drive, 0, rq->nr_sectors
+                               ? (rq->nr_sectors << 9) : ide_rq_bytes(rq));
                        return ide_stopped;
                } else if (rq->cmd_type == REQ_TYPE_ATA_PC && !rq->bio) {
-                       ide_end_request(drive, 1, 1);
+                       ide_complete_rq(drive, 0, 512);
                        return ide_stopped;
                }
                goto end_request;
@@ -808,8 +809,8 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
        if (thislen > len)
                thislen = len;
 
-       ide_debug_log(IDE_DBG_PC, "%s: DRQ: stat: 0x%x, thislen: %d\n",
-                     __func__, stat, thislen);
+       ide_debug_log(IDE_DBG_PC, "DRQ: stat: 0x%x, thislen: %d",
+                                 stat, thislen);
 
        /* If DRQ is clear, the command has completed. */
        if ((stat & ATA_DRQ) == 0) {
@@ -874,8 +875,9 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
                xferfunc = hwif->tp_ops->input_data;
        }
 
-       ide_debug_log(IDE_DBG_PC, "%s: data transfer, rq->cmd_type: 0x%x, "
-                     "ireason: 0x%x\n", __func__, rq->cmd_type, ireason);
+       ide_debug_log(IDE_DBG_PC, "data transfer, rq->cmd_type: 0x%x, "
+                                 "ireason: 0x%x",
+                                 rq->cmd_type, ireason);
 
        /* transfer data */
        while (thislen > 0) {
@@ -986,9 +988,9 @@ static ide_startstop_t cdrom_start_rw(ide_drive_t *drive, struct request *rq)
        unsigned short sectors_per_frame =
                queue_hardsect_size(drive->queue) >> SECTOR_BITS;
 
-       ide_debug_log(IDE_DBG_RQ, "Call %s, rq->cmd[0]: 0x%x, write: 0x%x, "
-                     "secs_per_frame: %u\n",
-                     __func__, rq->cmd[0], write, sectors_per_frame);
+       ide_debug_log(IDE_DBG_RQ, "rq->cmd[0]: 0x%x, write: 0x%x, "
+                                 "secs_per_frame: %u",
+                                 rq->cmd[0], write, sectors_per_frame);
 
        if (write) {
                /* disk has become write protected */
@@ -1024,9 +1026,8 @@ static ide_startstop_t cdrom_start_rw(ide_drive_t *drive, struct request *rq)
 static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
 {
 
-       ide_debug_log(IDE_DBG_PC, "Call %s, rq->cmd[0]: 0x%x, "
-                     "rq->cmd_type: 0x%x\n", __func__, rq->cmd[0],
-                     rq->cmd_type);
+       ide_debug_log(IDE_DBG_PC, "rq->cmd[0]: 0x%x, rq->cmd_type: 0x%x",
+                                 rq->cmd[0], rq->cmd_type);
 
        if (blk_pc_request(rq))
                rq->cmd_flags |= REQ_QUIET;
@@ -1065,10 +1066,11 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
 static ide_startstop_t ide_cd_do_request(ide_drive_t *drive, struct request *rq,
                                        sector_t block)
 {
-       ide_debug_log(IDE_DBG_RQ, "Call %s, rq->cmd[0]: 0x%x, "
-                     "rq->cmd_type: 0x%x, block: %llu\n",
-                     __func__, rq->cmd[0], rq->cmd_type,
-                     (unsigned long long)block);
+       ide_debug_log(IDE_DBG_RQ, "cmd: 0x%x, block: %llu",
+                                 rq->cmd[0], (unsigned long long)block);
+
+       if (drive->debug_mask & IDE_DBG_RQ)
+               blk_dump_rq_flags(rq, "ide_cd_do_request");
 
        if (blk_fs_request(rq)) {
                if (cdrom_start_rw(drive, rq) == ide_stopped)
@@ -1117,7 +1119,7 @@ int cdrom_check_status(ide_drive_t *drive, struct request_sense *sense)
        struct cdrom_device_info *cdi = &info->devinfo;
        unsigned char cmd[BLK_MAX_CDB];
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        memset(cmd, 0, BLK_MAX_CDB);
        cmd[0] = GPCMD_TEST_UNIT_READY;
@@ -1145,7 +1147,7 @@ static int cdrom_read_capacity(ide_drive_t *drive, unsigned long *capacity,
        unsigned len = sizeof(capbuf);
        u32 blocklen;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        memset(cmd, 0, BLK_MAX_CDB);
        cmd[0] = GPCMD_READ_CDVD_CAPACITY;
@@ -1177,8 +1179,8 @@ static int cdrom_read_capacity(ide_drive_t *drive, unsigned long *capacity,
        *capacity = 1 + be32_to_cpu(capbuf.lba);
        *sectors_per_frame = blocklen >> SECTOR_BITS;
 
-       ide_debug_log(IDE_DBG_PROBE, "%s: cap: %lu, sectors_per_frame: %lu\n",
-                     __func__, *capacity, *sectors_per_frame);
+       ide_debug_log(IDE_DBG_PROBE, "cap: %lu, sectors_per_frame: %lu",
+                                    *capacity, *sectors_per_frame);
 
        return 0;
 }
@@ -1189,7 +1191,7 @@ static int cdrom_read_tocentry(ide_drive_t *drive, int trackno, int msf_flag,
 {
        unsigned char cmd[BLK_MAX_CDB];
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        memset(cmd, 0, BLK_MAX_CDB);
 
@@ -1219,7 +1221,7 @@ int ide_cd_read_toc(ide_drive_t *drive, struct request_sense *sense)
        long last_written;
        unsigned long sectors_per_frame = SECTORS_PER_FRAME;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        if (toc == NULL) {
                /* try to allocate space */
@@ -1381,7 +1383,7 @@ int ide_cdrom_get_capabilities(ide_drive_t *drive, u8 *buf)
        struct packet_command cgc;
        int stat, attempts = 3, size = ATAPI_CAPABILITIES_PAGE_SIZE;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        if ((drive->atapi_flags & IDE_AFLAG_FULL_CAPS_PAGE) == 0)
                size -= ATAPI_CAPABILITIES_PAGE_PAD_SIZE;
@@ -1401,7 +1403,7 @@ void ide_cdrom_update_speed(ide_drive_t *drive, u8 *buf)
        struct cdrom_info *cd = drive->driver_data;
        u16 curspeed, maxspeed;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        if (drive->atapi_flags & IDE_AFLAG_LE_SPEED_FIELDS) {
                curspeed = le16_to_cpup((__le16 *)&buf[8 + 14]);
@@ -1411,8 +1413,8 @@ void ide_cdrom_update_speed(ide_drive_t *drive, u8 *buf)
                maxspeed = be16_to_cpup((__be16 *)&buf[8 + 8]);
        }
 
-       ide_debug_log(IDE_DBG_PROBE, "%s: curspeed: %u, maxspeed: %u\n",
-                     __func__, curspeed, maxspeed);
+       ide_debug_log(IDE_DBG_PROBE, "curspeed: %u, maxspeed: %u",
+                                    curspeed, maxspeed);
 
        cd->current_speed = (curspeed + (176/2)) / 176;
        cd->max_speed = (maxspeed + (176/2)) / 176;
@@ -1446,7 +1448,7 @@ static int ide_cdrom_register(ide_drive_t *drive, int nslots)
        struct cdrom_info *info = drive->driver_data;
        struct cdrom_device_info *devinfo = &info->devinfo;
 
-       ide_debug_log(IDE_DBG_PROBE, "Call %s, nslots: %d\n", __func__, nslots);
+       ide_debug_log(IDE_DBG_PROBE, "nslots: %d", nslots);
 
        devinfo->ops = &ide_cdrom_dops;
        devinfo->speed = info->current_speed;
@@ -1469,9 +1471,8 @@ static int ide_cdrom_probe_capabilities(ide_drive_t *drive)
        mechtype_t mechtype;
        int nslots = 1;
 
-       ide_debug_log(IDE_DBG_PROBE, "Call %s, drive->media: 0x%x, "
-                     "drive->atapi_flags: 0x%lx\n", __func__, drive->media,
-                     drive->atapi_flags);
+       ide_debug_log(IDE_DBG_PROBE, "media: 0x%x, atapi_flags: 0x%lx",
+                                    drive->media, drive->atapi_flags);
 
        cdi->mask = (CDC_CD_R | CDC_CD_RW | CDC_DVD | CDC_DVD_R |
                     CDC_DVD_RAM | CDC_SELECT_DISC | CDC_PLAY_AUDIO |
@@ -1752,7 +1753,7 @@ static int ide_cdrom_setup(ide_drive_t *drive)
        char *fw_rev = (char *)&id[ATA_ID_FW_REV];
        int nslots;
 
-       ide_debug_log(IDE_DBG_PROBE, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_PROBE, "enter");
 
        blk_queue_prep_rq(drive->queue, ide_cdrom_prep_fn);
        blk_queue_dma_alignment(drive->queue, 31);
@@ -1795,7 +1796,7 @@ static void ide_cd_remove(ide_drive_t *drive)
 {
        struct cdrom_info *info = drive->driver_data;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        ide_proc_unregister_driver(drive, info->driver);
        device_del(&info->dev);
@@ -1813,7 +1814,7 @@ static void ide_cd_release(struct device *dev)
        ide_drive_t *drive = info->drive;
        struct gendisk *g = info->disk;
 
-       ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
+       ide_debug_log(IDE_DBG_FUNC, "enter");
 
        kfree(info->toc);
        if (devinfo->handle == drive)
@@ -1837,7 +1838,6 @@ static struct ide_driver ide_cdrom_driver = {
        .remove                 = ide_cd_remove,
        .version                = IDECD_VERSION,
        .do_request             = ide_cd_do_request,
-       .end_request            = ide_end_request,
 #ifdef CONFIG_IDE_PROC_FS
        .proc_entries           = ide_cd_proc_entries,
        .proc_devsets           = ide_cd_proc_devsets,
@@ -1972,9 +1972,8 @@ static int ide_cd_probe(ide_drive_t *drive)
        struct gendisk *g;
        struct request_sense sense;
 
-       ide_debug_log(IDE_DBG_PROBE, "Call %s, drive->driver_req: %s, "
-                     "drive->media: 0x%x\n", __func__, drive->driver_req,
-                     drive->media);
+       ide_debug_log(IDE_DBG_PROBE, "driver_req: %s, media: 0x%x",
+                                    drive->driver_req, drive->media);
 
        if (!strstr("ide-cdrom", drive->driver_req))
                goto failed;
This page took 0.035223 seconds and 5 git commands to generate.