diff options
Diffstat (limited to 'drivers/ide/it8172.c')
-rw-r--r-- | drivers/ide/it8172.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/ide/it8172.c b/drivers/ide/it8172.c index 0d266a5b524d..9dfdc8741a7b 100644 --- a/drivers/ide/it8172.c +++ b/drivers/ide/it8172.c | |||
@@ -37,12 +37,12 @@ | |||
37 | 37 | ||
38 | #define DRV_NAME "IT8172" | 38 | #define DRV_NAME "IT8172" |
39 | 39 | ||
40 | static void it8172_set_pio_mode(ide_drive_t *drive, const u8 pio) | 40 | static void it8172_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) |
41 | { | 41 | { |
42 | ide_hwif_t *hwif = drive->hwif; | ||
43 | struct pci_dev *dev = to_pci_dev(hwif->dev); | 42 | struct pci_dev *dev = to_pci_dev(hwif->dev); |
44 | u16 drive_enables; | 43 | u16 drive_enables; |
45 | u32 drive_timing; | 44 | u32 drive_timing; |
45 | const u8 pio = drive->pio_mode - XFER_PIO_0; | ||
46 | 46 | ||
47 | /* | 47 | /* |
48 | * The highest value of DIOR/DIOW pulse width and recovery time | 48 | * 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) | |||
98 | pci_write_config_byte(dev, 0x4a, reg4a | u_speed); | 98 | pci_write_config_byte(dev, 0x4a, reg4a | u_speed); |
99 | } else { | 99 | } else { |
100 | const u8 mwdma_to_pio[] = { 0, 3, 4 }; | 100 | const u8 mwdma_to_pio[] = { 0, 3, 4 }; |
101 | u8 pio; | ||
102 | 101 | ||
103 | pci_write_config_byte(dev, 0x48, reg48 & ~u_flag); | 102 | pci_write_config_byte(dev, 0x48, reg48 & ~u_flag); |
104 | pci_write_config_byte(dev, 0x4a, reg4a & ~a_speed); | 103 | pci_write_config_byte(dev, 0x4a, reg4a & ~a_speed); |
105 | 104 | ||
106 | pio = mwdma_to_pio[speed - XFER_MW_DMA_0]; | 105 | drive->pio_mode = |
106 | mwdma_to_pio[speed - XFER_MW_DMA_0] + XFER_PIO_0; | ||
107 | 107 | ||
108 | it8172_set_pio_mode(drive, pio); | 108 | it8172_set_pio_mode(hwif, drive); |
109 | } | 109 | } |
110 | } | 110 | } |
111 | 111 | ||