Remove ide_use_fast_pio() and just re-tune PIO unconditionally if DMA tuning
has failed in ->ide_dma_check. All host drivers using ide_use_fast_pio() set
drive->autotune so PIO is always tuned anyway and in some cases we _really_
need to re-tune PIO because PIO and DMA timings are shared.
Acked-by: Sergei Shtylyov <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
return min(speed, mode);
}
-int ide_use_fast_pio(ide_drive_t *drive)
-{
- struct hd_driveid *id = drive->id;
-
- if ((id->capability & 1) && drive->autodma)
- return 1;
-
- if ((id->capability & 8) || (id->field_valid & 2))
- return 1;
-
- return 0;
-}
-
-EXPORT_SYMBOL_GPL(ide_use_fast_pio);
-
/*
* Standard (generic) timings for PIO modes, from ATA2 specification.
* These timings are for access to the IDE data port register *only*.
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return -1;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
if (ide_tune_dma(drive))
return 0;
- if (ide_use_fast_pio(drive))
- ide_set_max_pio(drive);
+ ide_set_max_pio(drive);
return -1;
}
extern char *ide_xfer_verbose(u8 xfer_rate);
extern void ide_toggle_bounce(ide_drive_t *drive, int on);
extern int ide_set_xfer_rate(ide_drive_t *drive, u8 rate);
-int ide_use_fast_pio(ide_drive_t *);
static inline int ide_dev_has_iordy(struct hd_driveid *id)
{