summaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-io.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz2008-01-25 22:17:09 +0100
committerBartlomiej Zolnierkiewicz2008-01-25 22:17:09 +0100
commit21d535c91362a1a3bbb299b2e7214c1a6971ef95 (patch)
tree0f9cd3b473caec8d926770ba565b2e8261c289bd /drivers/ide/ide-io.c
parentide: fix registers loading order for IDE_NSECTOR_REG in execute_drive_cmd() (diff)
downloadkernel-qcow2-linux-21d535c91362a1a3bbb299b2e7214c1a6971ef95.tar.gz
kernel-qcow2-linux-21d535c91362a1a3bbb299b2e7214c1a6971ef95.tar.xz
kernel-qcow2-linux-21d535c91362a1a3bbb299b2e7214c1a6971ef95.zip
ide: execute_drive_cmd() cleanup
* 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>
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r--drivers/ide/ide-io.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index c5d81df02007..98aafc5cc5ba 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -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