aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/amd74xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/amd74xx.c')
-rw-r--r--drivers/ide/pci/amd74xx.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/ide/pci/amd74xx.c b/drivers/ide/pci/amd74xx.c
index 9abbde3c798..1088ba86cd1 100644
--- a/drivers/ide/pci/amd74xx.c
+++ b/drivers/ide/pci/amd74xx.c
@@ -266,16 +266,12 @@ static int amd_set_drive(ide_drive_t *drive, const u8 speed)
266} 266}
267 267
268/* 268/*
269 * amd74xx_tune_drive() is a callback from upper layers for 269 * amd_set_pio_mode() is a callback from upper layers for PIO-only tuning.
270 * PIO-only tuning.
271 */ 270 */
272 271
273static void amd74xx_tune_drive(ide_drive_t *drive, u8 pio) 272static void amd_set_pio_mode(ide_drive_t *drive, const u8 pio)
274{ 273{
275 if (pio == 255) 274 amd_set_drive(drive, XFER_PIO_0 + pio);
276 pio = ide_get_best_pio_mode(drive, 255, 5);
277
278 amd_set_drive(drive, XFER_PIO_0 + min_t(byte, pio, 5));
279} 275}
280 276
281static int amd74xx_ide_dma_check(ide_drive_t *drive) 277static int amd74xx_ide_dma_check(ide_drive_t *drive)
@@ -283,7 +279,7 @@ static int amd74xx_ide_dma_check(ide_drive_t *drive)
283 u8 speed = ide_max_dma_mode(drive); 279 u8 speed = ide_max_dma_mode(drive);
284 280
285 if (speed == 0) { 281 if (speed == 0) {
286 amd74xx_tune_drive(drive, 255); 282 ide_set_max_pio(drive);
287 return -1; 283 return -1;
288 } 284 }
289 285
@@ -409,7 +405,7 @@ static void __devinit init_hwif_amd74xx(ide_hwif_t *hwif)
409 405
410 hwif->autodma = 0; 406 hwif->autodma = 0;
411 407
412 hwif->tuneproc = &amd74xx_tune_drive; 408 hwif->set_pio_mode = &amd_set_pio_mode;
413 hwif->speedproc = &amd_set_drive; 409 hwif->speedproc = &amd_set_drive;
414 410
415 for (i = 0; i < 2; i++) { 411 for (i = 0; i < 2; i++) {