]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/ide/pci/cmd640.c
ide: add ide_pio_cycle_time() helper (take 2)
[karo-tx-linux.git] / drivers / ide / pci / cmd640.c
index 61b5f9c0b2f4da7620b8655b43afed4d580bc460..9f67ffc434212d7837e7ca4257ad47ee574ac6ba 100644 (file)
@@ -98,7 +98,6 @@
  *                      (patch courtesy of Zoltan Hidvegi)
  */
 
-#undef REALLY_SLOW_IO          /* most systems can safely undef this */
 #define CMD640_PREFETCH_MASKS 1
 
 //#define CMD640_DUMP_REGS
@@ -634,9 +633,8 @@ static void cmd640_set_mode (unsigned int index, u8 pio_mode, unsigned int cycle
  */
 static void cmd640_tune_drive (ide_drive_t *drive, u8 mode_wanted)
 {
+       unsigned int index = 0, cycle_time;
        u8 b;
-       ide_pio_data_t  d;
-       unsigned int index = 0;
 
        while (drive != cmd_drives[index]) {
                if (++index > 3) {
@@ -663,16 +661,14 @@ static void cmd640_tune_drive (ide_drive_t *drive, u8 mode_wanted)
                        return;
        }
 
-       (void) ide_get_best_pio_mode (drive, mode_wanted, 5, &d);
-       cmd640_set_mode (index, d.pio_mode, d.cycle_time);
+       mode_wanted = ide_get_best_pio_mode(drive, mode_wanted, 5, NULL);
+       cycle_time = ide_pio_cycle_time(drive, mode_wanted);
+       cmd640_set_mode(index, mode_wanted, cycle_time);
+
+       printk("%s: selected cmd640 PIO mode%d (%dns)",
+               drive->name, mode_wanted, cycle_time);
 
-       printk ("%s: selected cmd640 PIO mode%d (%dns)%s",
-               drive->name,
-               d.pio_mode,
-               d.cycle_time,
-               d.overridden ? " (overriding vendor mode)" : "");
        display_clocks(index);
-       return;
 }
 
 #endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */