|
@@ -345,16 +345,16 @@ static int ide_scan_pio_blacklist (char *model)
|
|
|
|
|
|
/**
|
|
|
* ide_get_best_pio_mode - get PIO mode from drive
|
|
|
- * @driver: drive to consider
|
|
|
+ * @drive: drive to consider
|
|
|
* @mode_wanted: preferred mode
|
|
|
- * @max_mode: highest allowed
|
|
|
- * @d: pio data
|
|
|
+ * @max_mode: highest allowed mode
|
|
|
+ * @d: PIO data
|
|
|
*
|
|
|
* This routine returns the recommended PIO settings for a given drive,
|
|
|
* based on the drive->id information and the ide_pio_blacklist[].
|
|
|
- * This is used by most chipset support modules when "auto-tuning".
|
|
|
*
|
|
|
- * Drive PIO mode auto selection
|
|
|
+ * Drive PIO mode is auto-selected if 255 is passed as mode_wanted.
|
|
|
+ * This is used by most chipset support modules when "auto-tuning".
|
|
|
*/
|
|
|
|
|
|
u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_pio_data_t *d)
|
|
@@ -367,6 +367,7 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
|
|
|
|
|
|
if (mode_wanted != 255) {
|
|
|
pio_mode = mode_wanted;
|
|
|
+ use_iordy = (pio_mode > 2);
|
|
|
} else if (!drive->id) {
|
|
|
pio_mode = 0;
|
|
|
} else if ((pio_mode = ide_scan_pio_blacklist(id->model)) != -1) {
|
|
@@ -396,19 +397,12 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#if 0
|
|
|
- if (drive->id->major_rev_num & 0x0004) printk("ATA-2 ");
|
|
|
-#endif
|
|
|
-
|
|
|
/*
|
|
|
* Conservative "downgrade" for all pre-ATA2 drives
|
|
|
*/
|
|
|
if (pio_mode && pio_mode < 4) {
|
|
|
pio_mode--;
|
|
|
overridden = 1;
|
|
|
-#if 0
|
|
|
- use_iordy = (pio_mode > 2);
|
|
|
-#endif
|
|
|
if (cycle_time && cycle_time < ide_pio_timings[pio_mode].cycle_time)
|
|
|
cycle_time = 0; /* use standard timing */
|
|
|
}
|