]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
ide: execute_drive_cmd() cleanup
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 25 Jan 2008 21:17:09 +0000 (22:17 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 25 Jan 2008 21:17:09 +0000 (22:17 +0100)
* Rename 'args' variable in 'if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE)'
  block to 'task'.

* execute_drive_cmd() is used only for REQ_TYPE_ATA_{CMD,TASK,TASKFILE} so
  we can move the common code out from 'if (rq->cmd_type == REQ_TYPE_ATA_CMD)'
  and 'if (rq->cmd_type == REQ_TYPE_ATA_TASK)' blocks.

There should be no functionality changes caused by this patch.

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

index c5d81df02007de21f360aac8e4281e6ccee785a6..98aafc5cc5ba7ab1c44b8eea05136af6e05d9e84 100644 (file)
@@ -867,13 +867,15 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
                struct request *rq)
 {
        ide_hwif_t *hwif = HWIF(drive);
+       u8 *args = rq->buffer;
+
        if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
-               ide_task_t *args = rq->special;
+               ide_task_t *task = rq->special;
  
-               if (!args)
+               if (task == NULL)
                        goto done;
 
-               hwif->data_phase = args->data_phase;
+               hwif->data_phase = task->data_phase;
 
                switch (hwif->data_phase) {
                case TASKFILE_MULTI_OUT:
@@ -886,19 +888,20 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
                        break;
                }
 
-               if (args->tf_flags & IDE_TFLAG_FLAGGED)
-                       return flagged_taskfile(drive, args);
+               if (task->tf_flags & IDE_TFLAG_FLAGGED)
+                       return flagged_taskfile(drive, task);
 
-               args->tf_flags |= IDE_TFLAG_OUT_TF;
+               task->tf_flags |= IDE_TFLAG_OUT_TF;
                if (drive->addressing == 1)
-                       args->tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB);
+                       task->tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB);
 
-               return do_rw_taskfile(drive, args);
-       } else if (rq->cmd_type == REQ_TYPE_ATA_TASK) {
-               u8 *args = rq->buffer;
-               if (!args)
-                       goto done;
+               return do_rw_taskfile(drive, task);
+       }
+
+       if (args == NULL)
+               goto done;
+
+       if (rq->cmd_type == REQ_TYPE_ATA_TASK) {
 #ifdef DEBUG
                printk("%s: DRIVE_TASK_CMD ", drive->name);
                printk("cmd=0x%02x ", args[0]);
@@ -915,13 +918,7 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
                hwif->OUTB(args[4], IDE_LCYL_REG);
                hwif->OUTB(args[5], IDE_HCYL_REG);
                hwif->OUTB((args[6] & 0xEF)|drive->select.all, IDE_SELECT_REG);
-               ide_cmd(drive, args[0], &drive_cmd_intr);
-               return ide_started;
-       } else if (rq->cmd_type == REQ_TYPE_ATA_CMD) {
-               u8 *args = rq->buffer;
-
-               if (!args)
-                       goto done;
+       } else { /* rq->cmd_type == REQ_TYPE_ATA_CMD */
 #ifdef DEBUG
                printk("%s: DRIVE_CMD ", drive->name);
                printk("cmd=0x%02x ", args[0]);
@@ -937,10 +934,11 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
                        hwif->OUTB(0xc2, IDE_HCYL_REG);
                } else
                        hwif->OUTB(args[1], IDE_NSECTOR_REG);
-               ide_cmd(drive, args[0], &drive_cmd_intr);
-               return ide_started;
        }
 
+       ide_cmd(drive, args[0], &drive_cmd_intr);
+       return ide_started;
+
 done:
        /*
         * NULL is actually a valid way of waiting for