diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-07-19 19:11:58 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-07-19 19:11:58 -0400 |
commit | 6a824c92db4d606c324272c4eed366fb71672440 (patch) | |
tree | 72b398062fd582b85507b665120f0a5315548eaf /drivers/ide/ide-timing.h | |
parent | 2134758d2a5429325cee4d4ce8959af5314eeba1 (diff) |
ide: remove ide_find_best_pio_mode()
* Add ->host_flags to ide_hwif_t to store ide_pci_device_t.host_flags,
assign it in setup-pci.c:ide_pci_setup_ports().
* Add IDE_HFLAG_PIO_NO_{BLACKLIST,DOWNGRADE} to ide_pci_device_t.host_flags
and teach ide_get_best_pio_mode() about them. Also remove needless
!drive->id check while at it (drive->id is always present).
* Convert amd74xx, via82cxxx and ide-timing.h to use ide_get_best_pio_mode()
and then remove no longer needed ide_find_best_pio_mode().
There should be no functionality changes caused by this patch.
Acked-by: Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-timing.h')
-rw-r--r-- | drivers/ide/ide-timing.h | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/ide/ide-timing.h b/drivers/ide/ide-timing.h index 9b5afebafbf4..daffbb9797e1 100644 --- a/drivers/ide/ide-timing.h +++ b/drivers/ide/ide-timing.h | |||
@@ -106,21 +106,6 @@ static struct ide_timing ide_timing[] = { | |||
106 | #define XFER_EPIO 0x01 | 106 | #define XFER_EPIO 0x01 |
107 | #define XFER_PIO 0x00 | 107 | #define XFER_PIO 0x00 |
108 | 108 | ||
109 | static short ide_find_best_pio_mode(ide_drive_t *drive) | ||
110 | { | ||
111 | struct hd_driveid *id = drive->id; | ||
112 | short best = 0; | ||
113 | |||
114 | /* EIDE PIO modes */ | ||
115 | if ((id->field_valid & 2) && (id->capability & 8)) { | ||
116 | if ((best = (drive->id->eide_pio_modes & 4) ? XFER_PIO_5 : | ||
117 | (drive->id->eide_pio_modes & 2) ? XFER_PIO_4 : | ||
118 | (drive->id->eide_pio_modes & 1) ? XFER_PIO_3 : 0)) return best; | ||
119 | } | ||
120 | |||
121 | return XFER_PIO_0 + min_t(u8, id->tPIO, 2); | ||
122 | } | ||
123 | |||
124 | static void ide_timing_quantize(struct ide_timing *t, struct ide_timing *q, int T, int UT) | 109 | static void ide_timing_quantize(struct ide_timing *t, struct ide_timing *q, int T, int UT) |
125 | { | 110 | { |
126 | q->setup = EZ(t->setup * 1000, T); | 111 | q->setup = EZ(t->setup * 1000, T); |
@@ -210,7 +195,8 @@ static int ide_timing_compute(ide_drive_t *drive, short speed, struct ide_timing | |||
210 | */ | 195 | */ |
211 | 196 | ||
212 | if ((speed & XFER_MODE) != XFER_PIO) { | 197 | if ((speed & XFER_MODE) != XFER_PIO) { |
213 | ide_timing_compute(drive, ide_find_best_pio_mode(drive), &p, T, UT); | 198 | u8 pio = ide_get_best_pio_mode(drive, 255, 5); |
199 | ide_timing_compute(drive, XFER_PIO_0 + pio, &p, T, UT); | ||
214 | ide_timing_merge(&p, t, t, IDE_TIMING_ALL); | 200 | ide_timing_merge(&p, t, t, IDE_TIMING_ALL); |
215 | } | 201 | } |
216 | 202 | ||