ide: change ->set_pio_mode method parameters
[cascardo/linux.git] / drivers / ide / it8172.c
index 0d266a5..9dfdc87 100644 (file)
 
 #define DRV_NAME "IT8172"
 
-static void it8172_set_pio_mode(ide_drive_t *drive, const u8 pio)
+static void it8172_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive)
 {
-       ide_hwif_t *hwif        = drive->hwif;
        struct pci_dev *dev     = to_pci_dev(hwif->dev);
        u16 drive_enables;
        u32 drive_timing;
+       const u8 pio = drive->pio_mode - XFER_PIO_0;
 
        /*
         * The highest value of DIOR/DIOW pulse width and recovery time
@@ -98,14 +98,14 @@ static void it8172_set_dma_mode(ide_drive_t *drive, const u8 speed)
                pci_write_config_byte(dev, 0x4a, reg4a | u_speed);
        } else {
                const u8 mwdma_to_pio[] = { 0, 3, 4 };
-               u8 pio;
 
                pci_write_config_byte(dev, 0x48, reg48 & ~u_flag);
                pci_write_config_byte(dev, 0x4a, reg4a & ~a_speed);
 
-               pio = mwdma_to_pio[speed - XFER_MW_DMA_0];
+               drive->pio_mode =
+                       mwdma_to_pio[speed - XFER_MW_DMA_0] + XFER_PIO_0;
 
-               it8172_set_pio_mode(drive, pio);
+               it8172_set_pio_mode(hwif, drive);
        }
 }