ide: drop "PIO data" argument from ide_get_best_pio_mode()
* Drop no longer needed "PIO data" argument from ide_get_best_pio_mode() and convert all users accordingly. * Remove no longer needed ide_pio_data_t. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
e5fa4b2968
commit
2134758d2a
|
@ -277,7 +277,6 @@ EXPORT_SYMBOL_GPL(ide_pio_cycle_time);
|
||||||
* @drive: drive to consider
|
* @drive: drive to consider
|
||||||
* @mode_wanted: preferred mode
|
* @mode_wanted: preferred mode
|
||||||
* @max_mode: highest allowed mode
|
* @max_mode: highest allowed mode
|
||||||
* @d: PIO data
|
|
||||||
*
|
*
|
||||||
* This routine returns the recommended PIO settings for a given drive,
|
* This routine returns the recommended PIO settings for a given drive,
|
||||||
* based on the drive->id information and the ide_pio_blacklist[].
|
* based on the drive->id information and the ide_pio_blacklist[].
|
||||||
|
@ -286,7 +285,7 @@ EXPORT_SYMBOL_GPL(ide_pio_cycle_time);
|
||||||
* This is used by most chipset support modules when "auto-tuning".
|
* 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)
|
u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode)
|
||||||
{
|
{
|
||||||
int pio_mode;
|
int pio_mode;
|
||||||
struct hd_driveid* id = drive->id;
|
struct hd_driveid* id = drive->id;
|
||||||
|
@ -335,9 +334,6 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
|
||||||
if (pio_mode > max_mode)
|
if (pio_mode > max_mode)
|
||||||
pio_mode = max_mode;
|
pio_mode = max_mode;
|
||||||
|
|
||||||
if (d)
|
|
||||||
d->pio_mode = pio_mode;
|
|
||||||
|
|
||||||
return pio_mode;
|
return pio_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ static void ali14xx_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int bus_speed = system_bus_clock();
|
int bus_speed = system_bus_clock();
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, ALI_MAX_PIO, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, ALI_MAX_PIO);
|
||||||
|
|
||||||
/* calculate timing, according to PIO mode */
|
/* calculate timing, according to PIO mode */
|
||||||
time1 = ide_pio_cycle_time(drive, pio);
|
time1 = ide_pio_cycle_time(drive, pio);
|
||||||
|
|
|
@ -71,7 +71,7 @@ static void tune_dtc2278 (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
|
|
||||||
if (pio >= 3) {
|
if (pio >= 3) {
|
||||||
spin_lock_irqsave(&ide_lock, flags);
|
spin_lock_irqsave(&ide_lock, flags);
|
||||||
|
|
|
@ -208,7 +208,7 @@ static u8 ht_pio2timings(ide_drive_t *drive, u8 pio)
|
||||||
if (pio) {
|
if (pio) {
|
||||||
unsigned int cycle_time;
|
unsigned int cycle_time;
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 5, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 5);
|
||||||
cycle_time = ide_pio_cycle_time(drive, pio);
|
cycle_time = ide_pio_cycle_time(drive, pio);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -258,7 +258,7 @@ static void qd6580_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
int recovery_time = 415; /* worst case values from the dos driver */
|
int recovery_time = 415; /* worst case values from the dos driver */
|
||||||
|
|
||||||
if (drive->id && !qd_find_disk_type(drive, &active_time, &recovery_time)) {
|
if (drive->id && !qd_find_disk_type(drive, &active_time, &recovery_time)) {
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
cycle_time = ide_pio_cycle_time(drive, pio);
|
cycle_time = ide_pio_cycle_time(drive, pio);
|
||||||
|
|
||||||
switch (pio) {
|
switch (pio) {
|
||||||
|
|
|
@ -110,7 +110,7 @@ static void tune_umc (ide_drive_t *drive, u8 pio)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
ide_hwgroup_t *hwgroup = ide_hwifs[HWIF(drive)->index^1].hwgroup;
|
ide_hwgroup_t *hwgroup = ide_hwifs[HWIF(drive)->index^1].hwgroup;
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
printk("%s: setting umc8672 to PIO mode%d (speed %d)\n",
|
printk("%s: setting umc8672 to PIO mode%d (speed %d)\n",
|
||||||
drive->name, pio, pio_to_umc[pio]);
|
drive->name, pio, pio_to_umc[pio]);
|
||||||
spin_lock_irqsave(&ide_lock, flags);
|
spin_lock_irqsave(&ide_lock, flags);
|
||||||
|
|
|
@ -106,7 +106,7 @@ static void auide_tune_drive(ide_drive_t *drive, byte pio)
|
||||||
u8 speed;
|
u8 speed;
|
||||||
|
|
||||||
/* get the best pio mode for the drive */
|
/* get the best pio mode for the drive */
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
|
|
||||||
printk(KERN_INFO "%s: setting Au1XXX IDE to PIO mode%d\n",
|
printk(KERN_INFO "%s: setting Au1XXX IDE to PIO mode%d\n",
|
||||||
drive->name, pio);
|
drive->name, pio);
|
||||||
|
|
|
@ -142,7 +142,7 @@ static int aec6260_tune_chipset (ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void aec62xx_tune_drive (ide_drive_t *drive, u8 pio)
|
static void aec62xx_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void) HWIF(drive)->speedproc(drive, pio + XFER_PIO_0);
|
(void) HWIF(drive)->speedproc(drive, pio + XFER_PIO_0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -295,7 +295,6 @@ static int ali_get_info (char *buffer, char **addr, off_t offset, int count)
|
||||||
|
|
||||||
static u8 ali15x3_tune_pio (ide_drive_t *drive, u8 pio)
|
static u8 ali15x3_tune_pio (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
ide_pio_data_t d;
|
|
||||||
ide_hwif_t *hwif = HWIF(drive);
|
ide_hwif_t *hwif = HWIF(drive);
|
||||||
struct pci_dev *dev = hwif->pci_dev;
|
struct pci_dev *dev = hwif->pci_dev;
|
||||||
int s_time, a_time, c_time;
|
int s_time, a_time, c_time;
|
||||||
|
@ -307,7 +306,7 @@ static u8 ali15x3_tune_pio (ide_drive_t *drive, u8 pio)
|
||||||
u8 cd_dma_fifo = 0;
|
u8 cd_dma_fifo = 0;
|
||||||
int unit = drive->select.b.unit & 1;
|
int unit = drive->select.b.unit & 1;
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 5, &d);
|
pio = ide_get_best_pio_mode(drive, pio, 5);
|
||||||
s_time = ide_pio_timings[pio].setup_time;
|
s_time = ide_pio_timings[pio].setup_time;
|
||||||
a_time = ide_pio_timings[pio].active_time;
|
a_time = ide_pio_timings[pio].active_time;
|
||||||
if ((s_clc = (s_time * bus_speed + 999) / 1000) >= 8)
|
if ((s_clc = (s_time * bus_speed + 999) / 1000) >= 8)
|
||||||
|
|
|
@ -155,7 +155,7 @@ static void atiixp_tune_pio(ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
static void atiixp_tuneproc(ide_drive_t *drive, u8 pio)
|
static void atiixp_tuneproc(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
atiixp_tune_pio(drive, pio);
|
atiixp_tune_pio(drive, pio);
|
||||||
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -661,7 +661,7 @@ static void cmd640_tune_drive (ide_drive_t *drive, u8 mode_wanted)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mode_wanted = ide_get_best_pio_mode(drive, mode_wanted, 5, NULL);
|
mode_wanted = ide_get_best_pio_mode(drive, mode_wanted, 5);
|
||||||
cycle_time = ide_pio_cycle_time(drive, mode_wanted);
|
cycle_time = ide_pio_cycle_time(drive, mode_wanted);
|
||||||
cmd640_set_mode(index, mode_wanted, cycle_time);
|
cmd640_set_mode(index, mode_wanted, cycle_time);
|
||||||
|
|
||||||
|
|
|
@ -226,7 +226,7 @@ static u8 cmd64x_tune_pio (ide_drive_t *drive, u8 mode_wanted)
|
||||||
static const u8 setup_values[] = {0x40, 0x40, 0x40, 0x80, 0, 0xc0};
|
static const u8 setup_values[] = {0x40, 0x40, 0x40, 0x80, 0, 0xc0};
|
||||||
static const u8 arttim_regs[4] = {ARTTIM0, ARTTIM1, ARTTIM23, ARTTIM23};
|
static const u8 arttim_regs[4] = {ARTTIM0, ARTTIM1, ARTTIM23, ARTTIM23};
|
||||||
|
|
||||||
pio_mode = ide_get_best_pio_mode(drive, mode_wanted, 5, NULL);
|
pio_mode = ide_get_best_pio_mode(drive, mode_wanted, 5);
|
||||||
cycle_time = ide_pio_cycle_time(drive, pio_mode);
|
cycle_time = ide_pio_cycle_time(drive, pio_mode);
|
||||||
|
|
||||||
cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)\n",
|
cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)\n",
|
||||||
|
|
|
@ -126,7 +126,7 @@ static int cs5520_tune_chipset(ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void cs5520_tune_drive(ide_drive_t *drive, u8 pio)
|
static void cs5520_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
cs5520_tune_chipset(drive, (XFER_PIO_0 + pio));
|
cs5520_tune_chipset(drive, (XFER_PIO_0 + pio));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ static void cs5530_tunepio(ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
static void cs5530_tuneproc (ide_drive_t *drive, u8 pio) /* pio=255 means "autotune" */
|
static void cs5530_tuneproc (ide_drive_t *drive, u8 pio) /* pio=255 means "autotune" */
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
|
|
||||||
if (cs5530_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0)
|
if (cs5530_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0)
|
||||||
cs5530_tunepio(drive, pio);
|
cs5530_tunepio(drive, pio);
|
||||||
|
|
|
@ -89,7 +89,7 @@ static void cs5535_set_speed(ide_drive_t *drive, u8 speed)
|
||||||
|
|
||||||
pioa = speed - XFER_PIO_0;
|
pioa = speed - XFER_PIO_0;
|
||||||
piob = ide_get_best_pio_mode(&(drive->hwif->drives[!unit]),
|
piob = ide_get_best_pio_mode(&(drive->hwif->drives[!unit]),
|
||||||
255, 4, NULL);
|
255, 4);
|
||||||
cmd = pioa < piob ? pioa : piob;
|
cmd = pioa < piob ? pioa : piob;
|
||||||
|
|
||||||
/* Write the speed of the current drive */
|
/* Write the speed of the current drive */
|
||||||
|
@ -159,7 +159,7 @@ static void cs5535_tuneproc(ide_drive_t *drive, u8 xferspeed)
|
||||||
/* cs5535 max pio is pio 4, best_pio will check the blacklist.
|
/* cs5535 max pio is pio 4, best_pio will check the blacklist.
|
||||||
i think we don't need to rate_filter the incoming xferspeed
|
i think we don't need to rate_filter the incoming xferspeed
|
||||||
since we know we're only going to choose pio */
|
since we know we're only going to choose pio */
|
||||||
xferspeed = ide_get_best_pio_mode(drive, xferspeed, 4, NULL);
|
xferspeed = ide_get_best_pio_mode(drive, xferspeed, 4);
|
||||||
ide_config_drive_speed(drive, modes[xferspeed]);
|
ide_config_drive_speed(drive, modes[xferspeed]);
|
||||||
cs5535_set_speed(drive, xferspeed);
|
cs5535_set_speed(drive, xferspeed);
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ static int cs5535_dma_check(ide_drive_t *drive)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ide_use_fast_pio(drive)) {
|
if (ide_use_fast_pio(drive)) {
|
||||||
speed = ide_get_best_pio_mode(drive, 255, 4, NULL);
|
speed = ide_get_best_pio_mode(drive, 255, 4);
|
||||||
cs5535_set_drive(drive, speed);
|
cs5535_set_drive(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -330,7 +330,7 @@ static void cy82c693_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
#endif /* CY82C693_DEBUG_LOGS */
|
#endif /* CY82C693_DEBUG_LOGS */
|
||||||
|
|
||||||
/* first let's calc the pio modes */
|
/* first let's calc the pio modes */
|
||||||
pio = ide_get_best_pio_mode(drive, pio, CY82C693_MAX_PIO, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, CY82C693_MAX_PIO);
|
||||||
|
|
||||||
#if CY82C693_DEBUG_INFO
|
#if CY82C693_DEBUG_INFO
|
||||||
printk (KERN_INFO "%s: Selected PIO mode %d\n", drive->name, pio);
|
printk (KERN_INFO "%s: Selected PIO mode %d\n", drive->name, pio);
|
||||||
|
|
|
@ -80,7 +80,7 @@ static int hpt34x_tune_chipset (ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void hpt34x_tune_drive (ide_drive_t *drive, u8 pio)
|
static void hpt34x_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 5, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 5);
|
||||||
(void) hpt34x_tune_chipset(drive, (XFER_PIO_0 + pio));
|
(void) hpt34x_tune_chipset(drive, (XFER_PIO_0 + pio));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -652,7 +652,7 @@ static int hpt3xx_tune_chipset(ide_drive_t *drive, u8 speed)
|
||||||
|
|
||||||
static void hpt3xx_tune_drive(ide_drive_t *drive, u8 pio)
|
static void hpt3xx_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void) hpt3xx_tune_chipset (drive, XFER_PIO_0 + pio);
|
(void) hpt3xx_tune_chipset (drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ static void it8213_tuneproc (ide_drive_t *drive, u8 pio)
|
||||||
{ 2, 1 },
|
{ 2, 1 },
|
||||||
{ 2, 3 }, };
|
{ 2, 3 }, };
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
|
|
||||||
spin_lock_irqsave(&tune_lock, flags);
|
spin_lock_irqsave(&tune_lock, flags);
|
||||||
pci_read_config_word(dev, master_port, &master_data);
|
pci_read_config_word(dev, master_port, &master_data);
|
||||||
|
@ -214,7 +214,7 @@ static int it8213_config_drive_for_dma (ide_drive_t *drive)
|
||||||
if (ide_tune_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, 255, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, 255, 4);
|
||||||
it8213_tune_chipset(drive, XFER_PIO_0 + pio);
|
it8213_tune_chipset(drive, XFER_PIO_0 + pio);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -255,7 +255,7 @@ static int it821x_tunepio(ide_drive_t *drive, u8 set_pio)
|
||||||
* on the cable.
|
* on the cable.
|
||||||
*/
|
*/
|
||||||
if (pair) {
|
if (pair) {
|
||||||
u8 pair_pio = ide_get_best_pio_mode(pair, 255, 4, NULL);
|
u8 pair_pio = ide_get_best_pio_mode(pair, 255, 4);
|
||||||
/* trim PIO to the slowest of the master/slave */
|
/* trim PIO to the slowest of the master/slave */
|
||||||
if (pair_pio < set_pio)
|
if (pair_pio < set_pio)
|
||||||
set_pio = pair_pio;
|
set_pio = pair_pio;
|
||||||
|
@ -276,7 +276,7 @@ static int it821x_tunepio(ide_drive_t *drive, u8 set_pio)
|
||||||
|
|
||||||
static void it821x_tuneproc(ide_drive_t *drive, u8 pio)
|
static void it821x_tuneproc(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void)it821x_tunepio(drive, pio);
|
(void)it821x_tunepio(drive, pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ static void jmicron_tuneproc (ide_drive_t *drive, byte mode_wanted)
|
||||||
|
|
||||||
static void config_jmicron_chipset_for_pio (ide_drive_t *drive, byte set_speed)
|
static void config_jmicron_chipset_for_pio (ide_drive_t *drive, byte set_speed)
|
||||||
{
|
{
|
||||||
u8 speed = XFER_PIO_0 + ide_get_best_pio_mode(drive, 255, 5, NULL);
|
u8 speed = XFER_PIO_0 + ide_get_best_pio_mode(drive, 255, 5);
|
||||||
if (set_speed)
|
if (set_speed)
|
||||||
(void) ide_config_drive_speed(drive, speed);
|
(void) ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,12 +147,12 @@ static void compute_pios(ide_drive_t *drive, u8 pio)
|
||||||
int d;
|
int d;
|
||||||
ide_hwif_t *hwif = HWIF(drive);
|
ide_hwif_t *hwif = HWIF(drive);
|
||||||
|
|
||||||
drive->drive_data = ide_get_best_pio_mode(drive, pio, OPTI621_MAX_PIO, NULL);
|
drive->drive_data = ide_get_best_pio_mode(drive, pio, OPTI621_MAX_PIO);
|
||||||
for (d = 0; d < 2; ++d) {
|
for (d = 0; d < 2; ++d) {
|
||||||
drive = &hwif->drives[d];
|
drive = &hwif->drives[d];
|
||||||
if (drive->present) {
|
if (drive->present) {
|
||||||
if (drive->drive_data == PIO_DONT_KNOW)
|
if (drive->drive_data == PIO_DONT_KNOW)
|
||||||
drive->drive_data = ide_get_best_pio_mode(drive, 255, OPTI621_MAX_PIO, NULL);
|
drive->drive_data = ide_get_best_pio_mode(drive, 255, OPTI621_MAX_PIO);
|
||||||
#ifdef OPTI621_DEBUG
|
#ifdef OPTI621_DEBUG
|
||||||
printk("%s: Selected PIO mode %d\n",
|
printk("%s: Selected PIO mode %d\n",
|
||||||
drive->name, drive->drive_data);
|
drive->name, drive->drive_data);
|
||||||
|
|
|
@ -219,7 +219,7 @@ static int pdcnew_tune_chipset(ide_drive_t *drive, u8 speed)
|
||||||
|
|
||||||
static void pdcnew_tune_drive(ide_drive_t *drive, u8 pio)
|
static void pdcnew_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void)pdcnew_tune_chipset(drive, XFER_PIO_0 + pio);
|
(void)pdcnew_tune_chipset(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ static int pdc202xx_tune_chipset (ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void pdc202xx_tune_drive(ide_drive_t *drive, u8 pio)
|
static void pdc202xx_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
pdc202xx_tune_chipset(drive, XFER_PIO_0 + pio);
|
pdc202xx_tune_chipset(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ static void piix_tune_pio (ide_drive_t *drive, u8 pio)
|
||||||
*/
|
*/
|
||||||
static void piix_tune_drive (ide_drive_t *drive, u8 pio)
|
static void piix_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
piix_tune_pio(drive, pio);
|
piix_tune_pio(drive, pio);
|
||||||
(void) ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
(void) ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -304,7 +304,7 @@ static void sc1200_tuneproc (ide_drive_t *drive, byte pio) /* mode=255 means "au
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
printk("SC1200: %s: setting PIO mode%d\n", drive->name, pio);
|
printk("SC1200: %s: setting PIO mode%d\n", drive->name, pio);
|
||||||
|
|
||||||
if (sc1200_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0)
|
if (sc1200_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0)
|
||||||
|
|
|
@ -210,7 +210,7 @@ static void scc_tuneproc(ide_drive_t *drive, byte mode_wanted)
|
||||||
unsigned char speed = XFER_PIO_0;
|
unsigned char speed = XFER_PIO_0;
|
||||||
int offset;
|
int offset;
|
||||||
|
|
||||||
mode_wanted = ide_get_best_pio_mode(drive, mode_wanted, 4, NULL);
|
mode_wanted = ide_get_best_pio_mode(drive, mode_wanted, 4);
|
||||||
switch (mode_wanted) {
|
switch (mode_wanted) {
|
||||||
case 4:
|
case 4:
|
||||||
speed = XFER_PIO_4;
|
speed = XFER_PIO_4;
|
||||||
|
|
|
@ -205,7 +205,7 @@ static int svwks_tune_chipset (ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void svwks_tune_drive (ide_drive_t *drive, u8 pio)
|
static void svwks_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
svwks_tune_pio(drive, pio);
|
svwks_tune_pio(drive, pio);
|
||||||
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,7 @@ static void sil_tune_pio(ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
/* trim *taskfile* PIO to the slowest of the master/slave */
|
/* trim *taskfile* PIO to the slowest of the master/slave */
|
||||||
if (pair->present) {
|
if (pair->present) {
|
||||||
u8 pair_pio = ide_get_best_pio_mode(pair, 255, 4, NULL);
|
u8 pair_pio = ide_get_best_pio_mode(pair, 255, 4);
|
||||||
|
|
||||||
if (pair_pio < tf_pio)
|
if (pair_pio < tf_pio)
|
||||||
tf_pio = pair_pio;
|
tf_pio = pair_pio;
|
||||||
|
@ -221,7 +221,7 @@ static void sil_tune_pio(ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
static void sil_tuneproc(ide_drive_t *drive, u8 pio)
|
static void sil_tuneproc(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
sil_tune_pio(drive, pio);
|
sil_tune_pio(drive, pio);
|
||||||
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -521,7 +521,7 @@ static void config_art_rwp_pio (ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
static int sis5513_tune_drive(ide_drive_t *drive, u8 pio)
|
static int sis5513_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
config_art_rwp_pio(drive, pio);
|
config_art_rwp_pio(drive, pio);
|
||||||
return ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
return ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ static u8 sl82c105_tune_pio(ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
DBG(("sl82c105_tune_pio(drive:%s, pio:%u)\n", drive->name, pio));
|
DBG(("sl82c105_tune_pio(drive:%s, pio:%u)\n", drive->name, pio));
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 5, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 5);
|
||||||
|
|
||||||
drv_ctrl = get_pio_timings(drive, pio);
|
drv_ctrl = get_pio_timings(drive, pio);
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void slc90e66_tune_pio (ide_drive_t *drive, u8 pio)
|
||||||
|
|
||||||
static void slc90e66_tune_drive (ide_drive_t *drive, u8 pio)
|
static void slc90e66_tune_drive (ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
slc90e66_tune_pio(drive, pio);
|
slc90e66_tune_pio(drive, pio);
|
||||||
(void) ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
(void) ide_config_drive_speed(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ static int tc86c001_tune_chipset(ide_drive_t *drive, u8 speed)
|
||||||
|
|
||||||
static void tc86c001_tune_drive(ide_drive_t *drive, u8 pio)
|
static void tc86c001_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void) tc86c001_tune_chipset(drive, XFER_PIO_0 + pio);
|
(void) tc86c001_tune_chipset(drive, XFER_PIO_0 + pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ static int triflex_tune_chipset(ide_drive_t *drive, u8 xferspeed)
|
||||||
|
|
||||||
static void triflex_tune_drive(ide_drive_t *drive, u8 pio)
|
static void triflex_tune_drive(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
int use_pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
int use_pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
(void) triflex_tune_chipset(drive, (XFER_PIO_0 + use_pio));
|
(void) triflex_tune_chipset(drive, (XFER_PIO_0 + use_pio));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -431,13 +431,12 @@ void m8xx_ide_init_hwif_ports (hw_regs_t *hw,
|
||||||
static void
|
static void
|
||||||
m8xx_ide_tuneproc(ide_drive_t *drive, u8 pio)
|
m8xx_ide_tuneproc(ide_drive_t *drive, u8 pio)
|
||||||
{
|
{
|
||||||
ide_pio_data_t d;
|
|
||||||
#if defined(CONFIG_IDE_8xx_PCCARD) || defined(CONFIG_IDE_8xx_DIRECT)
|
#if defined(CONFIG_IDE_8xx_PCCARD) || defined(CONFIG_IDE_8xx_DIRECT)
|
||||||
volatile pcmconf8xx_t *pcmp;
|
volatile pcmconf8xx_t *pcmp;
|
||||||
ulong timing, mask, reg;
|
ulong timing, mask, reg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, &d);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
printk("%s[%d] %s: best PIO mode: %d\n",
|
printk("%s[%d] %s: best PIO mode: %d\n",
|
||||||
|
|
|
@ -627,7 +627,7 @@ pmac_ide_tuneproc(ide_drive_t *drive, u8 pio)
|
||||||
/* which drive is it ? */
|
/* which drive is it ? */
|
||||||
timings = &pmif->timings[drive->select.b.unit & 0x01];
|
timings = &pmif->timings[drive->select.b.unit & 0x01];
|
||||||
|
|
||||||
pio = ide_get_best_pio_mode(drive, pio, 4, NULL);
|
pio = ide_get_best_pio_mode(drive, pio, 4);
|
||||||
cycle_time = ide_pio_cycle_time(drive, pio);
|
cycle_time = ide_pio_cycle_time(drive, pio);
|
||||||
|
|
||||||
switch (pmif->kind) {
|
switch (pmif->kind) {
|
||||||
|
|
|
@ -1377,12 +1377,8 @@ typedef struct ide_pio_timings_s {
|
||||||
/* active + recovery (+ setup for some chips) */
|
/* active + recovery (+ setup for some chips) */
|
||||||
} ide_pio_timings_t;
|
} ide_pio_timings_t;
|
||||||
|
|
||||||
typedef struct ide_pio_data_s {
|
|
||||||
u8 pio_mode;
|
|
||||||
} ide_pio_data_t;
|
|
||||||
|
|
||||||
unsigned int ide_pio_cycle_time(ide_drive_t *, u8);
|
unsigned int ide_pio_cycle_time(ide_drive_t *, u8);
|
||||||
extern u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_pio_data_t *d);
|
u8 ide_get_best_pio_mode(ide_drive_t *, u8, u8);
|
||||||
extern const ide_pio_timings_t ide_pio_timings[6];
|
extern const ide_pio_timings_t ide_pio_timings[6];
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue