summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <b.zolnierkiewicz@elka.pw.edu.pl>2004-03-14 15:47:52 -0800
committerJeff Garzik <jgarzik@redhat.com>2004-03-14 15:47:52 -0800
commit890abeb9bbcd8f02c04b7662ba108ba79a9488e1 (patch)
tree090e39585b8c5d601bb3e3ceacd0e69afe8ac14b
parent65ea2fa1066fb36c3628d9945aa8ab8a9fc57fa3 (diff)
[PATCH] ide-disk.c: cleanup get_command()
-rw-r--r--drivers/ide/ide-disk.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 88652dff6561..25fc035a3165 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -569,28 +569,27 @@ ide_startstop_t __ide_do_rw_disk (ide_drive_t *drive, struct request *rq, sector
}
EXPORT_SYMBOL_GPL(__ide_do_rw_disk);
-static task_ioreg_t get_command (ide_drive_t *drive, int cmd)
+static u8 get_command(ide_drive_t *drive, int cmd)
{
- int lba48bit = (drive->addressing == 1) ? 1 : 0;
-
- if ((cmd == READ) && drive->using_tcq)
- return lba48bit ? WIN_READDMA_QUEUED_EXT : WIN_READDMA_QUEUED;
- if ((cmd == READ) && (drive->using_dma))
- return (lba48bit) ? WIN_READDMA_EXT : WIN_READDMA;
- else if ((cmd == READ) && (drive->mult_count))
- return (lba48bit) ? WIN_MULTREAD_EXT : WIN_MULTREAD;
- else if (cmd == READ)
- return (lba48bit) ? WIN_READ_EXT : WIN_READ;
- else if ((cmd == WRITE) && drive->using_tcq)
- return lba48bit ? WIN_WRITEDMA_QUEUED_EXT : WIN_WRITEDMA_QUEUED;
- else if ((cmd == WRITE) && (drive->using_dma))
- return (lba48bit) ? WIN_WRITEDMA_EXT : WIN_WRITEDMA;
- else if ((cmd == WRITE) && (drive->mult_count))
- return (lba48bit) ? WIN_MULTWRITE_EXT : WIN_MULTWRITE;
- else if (cmd == WRITE)
- return (lba48bit) ? WIN_WRITE_EXT : WIN_WRITE;
- else
- return WIN_NOP;
+ unsigned int lba48 = (drive->addressing == 1) ? 1 : 0;
+
+ if (cmd == READ) {
+ if (drive->using_tcq)
+ return lba48 ? WIN_READDMA_QUEUED_EXT : WIN_READDMA_QUEUED;
+ if (drive->using_dma)
+ return lba48 ? WIN_READDMA_EXT : WIN_READDMA;
+ if (drive->mult_count)
+ return lba48 ? WIN_MULTREAD_EXT : WIN_MULTREAD;
+ return lba48 ? WIN_READ_EXT : WIN_READ;
+ } else {
+ if (drive->using_tcq)
+ return lba48 ? WIN_WRITEDMA_QUEUED_EXT : WIN_WRITEDMA_QUEUED;
+ if (drive->using_dma)
+ return lba48 ? WIN_WRITEDMA_EXT : WIN_WRITEDMA;
+ if (drive->mult_count)
+ return lba48 ? WIN_MULTWRITE_EXT : WIN_MULTWRITE;
+ return lba48 ? WIN_WRITE_EXT : WIN_WRITE;
+ }
}
static ide_startstop_t chs_rw_disk (ide_drive_t *drive, struct request *rq, unsigned long block)