diff options
Diffstat (limited to 'drivers/ide/pci/sc1200.c')
-rw-r--r-- | drivers/ide/pci/sc1200.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c index 059071cd2d49..f9f5ed906577 100644 --- a/drivers/ide/pci/sc1200.c +++ b/drivers/ide/pci/sc1200.c | |||
@@ -272,19 +272,20 @@ static int sc1200_ide_dma_end (ide_drive_t *drive) | |||
272 | } | 272 | } |
273 | 273 | ||
274 | /* | 274 | /* |
275 | * sc1200_tuneproc() handles selection/setting of PIO modes | 275 | * sc1200_set_pio_mode() handles setting of PIO modes |
276 | * for both the chipset and drive. | 276 | * for both the chipset and drive. |
277 | * | 277 | * |
278 | * All existing BIOSs for this chipset guarantee that all drives | 278 | * All existing BIOSs for this chipset guarantee that all drives |
279 | * will have valid default PIO timings set up before we get here. | 279 | * will have valid default PIO timings set up before we get here. |
280 | */ | 280 | */ |
281 | static void sc1200_tuneproc (ide_drive_t *drive, byte pio) /* mode=255 means "autotune" */ | 281 | |
282 | static void sc1200_set_pio_mode(ide_drive_t *drive, const u8 pio) | ||
282 | { | 283 | { |
283 | ide_hwif_t *hwif = HWIF(drive); | 284 | ide_hwif_t *hwif = HWIF(drive); |
284 | int mode = -1; | 285 | int mode = -1; |
285 | 286 | ||
286 | /* | 287 | /* |
287 | * bad abuse of ->tuneproc interface | 288 | * bad abuse of ->set_pio_mode interface |
288 | */ | 289 | */ |
289 | switch (pio) { | 290 | switch (pio) { |
290 | case 200: mode = XFER_UDMA_0; break; | 291 | case 200: mode = XFER_UDMA_0; break; |
@@ -302,9 +303,6 @@ static void sc1200_tuneproc (ide_drive_t *drive, byte pio) /* mode=255 means "au | |||
302 | return; | 303 | return; |
303 | } | 304 | } |
304 | 305 | ||
305 | pio = ide_get_best_pio_mode(drive, pio, 4); | ||
306 | printk("SC1200: %s: setting PIO mode%d\n", drive->name, pio); | ||
307 | |||
308 | if (sc1200_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0) | 306 | if (sc1200_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0) |
309 | sc1200_tunepio(drive, pio); | 307 | sc1200_tunepio(drive, pio); |
310 | } | 308 | } |
@@ -420,7 +418,8 @@ static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif) | |||
420 | hwif->ide_dma_end = &sc1200_ide_dma_end; | 418 | hwif->ide_dma_end = &sc1200_ide_dma_end; |
421 | if (!noautodma) | 419 | if (!noautodma) |
422 | hwif->autodma = 1; | 420 | hwif->autodma = 1; |
423 | hwif->tuneproc = &sc1200_tuneproc; | 421 | |
422 | hwif->set_pio_mode = &sc1200_set_pio_mode; | ||
424 | hwif->speedproc = &sc1200_tune_chipset; | 423 | hwif->speedproc = &sc1200_tune_chipset; |
425 | } | 424 | } |
426 | hwif->atapi_dma = 1; | 425 | hwif->atapi_dma = 1; |
@@ -436,6 +435,7 @@ static ide_pci_device_t sc1200_chipset __devinitdata = { | |||
436 | .init_hwif = init_hwif_sc1200, | 435 | .init_hwif = init_hwif_sc1200, |
437 | .autodma = AUTODMA, | 436 | .autodma = AUTODMA, |
438 | .bootable = ON_BOARD, | 437 | .bootable = ON_BOARD, |
438 | .host_flags = IDE_HFLAG_ABUSE_DMA_MODES, | ||
439 | .pio_mask = ATA_PIO4, | 439 | .pio_mask = ATA_PIO4, |
440 | }; | 440 | }; |
441 | 441 | ||