aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/sc1200.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/sc1200.c')
-rw-r--r--drivers/ide/pci/sc1200.c14
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 */
281static void sc1200_tuneproc (ide_drive_t *drive, byte pio) /* mode=255 means "autotune" */ 281
282static 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