aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/cs5530.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/cs5530.c')
-rw-r--r--drivers/ide/pci/cs5530.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c
index 518f430c1529..1588a323c5d0 100644
--- a/drivers/ide/pci/cs5530.c
+++ b/drivers/ide/pci/cs5530.c
@@ -71,19 +71,18 @@ static void cs5530_tunepio(ide_drive_t *drive, u8 pio)
71} 71}
72 72
73/** 73/**
74 * cs5530_tuneproc - select/set PIO modes 74 * cs5530_set_pio_mode - set PIO mode
75 * @drive: drive
76 * @pio: PIO mode number
75 * 77 *
76 * cs5530_tuneproc() handles selection/setting of PIO modes 78 * Handles setting of PIO mode for both the chipset and drive.
77 * for both the chipset and drive.
78 * 79 *
79 * The ide_init_cs5530() routine guarantees that all drives 80 * The init_hwif_cs5530() routine guarantees that all drives
80 * will have valid default PIO timings set up before we get here. 81 * will have valid default PIO timings set up before we get here.
81 */ 82 */
82 83
83static void cs5530_tuneproc (ide_drive_t *drive, u8 pio) /* pio=255 means "autotune" */ 84static void cs5530_set_pio_mode(ide_drive_t *drive, const u8 pio)
84{ 85{
85 pio = ide_get_best_pio_mode(drive, pio, 4);
86
87 if (cs5530_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0) 86 if (cs5530_set_xfer_mode(drive, XFER_PIO_0 + pio) == 0)
88 cs5530_tunepio(drive, pio); 87 cs5530_tunepio(drive, pio);
89} 88}
@@ -306,7 +305,7 @@ static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif)
306 if (hwif->mate) 305 if (hwif->mate)
307 hwif->serialized = hwif->mate->serialized = 1; 306 hwif->serialized = hwif->mate->serialized = 1;
308 307
309 hwif->tuneproc = &cs5530_tuneproc; 308 hwif->set_pio_mode = &cs5530_set_pio_mode;
310 hwif->speedproc = &cs5530_tune_chipset; 309 hwif->speedproc = &cs5530_tune_chipset;
311 310
312 basereg = CS5530_BASEREG(hwif); 311 basereg = CS5530_BASEREG(hwif);