]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] ide-disk.c: cleanup get_command()
authorBartlomiej Zolnierkiewicz <b.zolnierkiewicz@elka.pw.edu.pl>
Sun, 14 Mar 2004 23:47:52 +0000 (15:47 -0800)
committerJeff Garzik <jgarzik@redhat.com>
Sun, 14 Mar 2004 23:47:52 +0000 (15:47 -0800)
drivers/ide/ide-disk.c

index 88652dff656116ae3e49ec86224160794a8ba5cc..25fc035a316579008c6f9dd39d465b63574af6aa 100644 (file)
@@ -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)