diff options
Diffstat (limited to 'drivers/ide/pci/it8213.c')
-rw-r--r-- | drivers/ide/pci/it8213.c | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/drivers/ide/pci/it8213.c b/drivers/ide/pci/it8213.c index 76e91ff9420b..ecf4ce078dce 100644 --- a/drivers/ide/pci/it8213.c +++ b/drivers/ide/pci/it8213.c | |||
@@ -48,15 +48,15 @@ static u8 it8213_dma_2_pio (u8 xfer_rate) { | |||
48 | } | 48 | } |
49 | } | 49 | } |
50 | 50 | ||
51 | /* | 51 | /** |
52 | * it8213_tune_pio - tune a drive | 52 | * it8213_set_pio_mode - set host controller for PIO mode |
53 | * @drive: drive to tune | 53 | * @drive: drive |
54 | * @pio: desired PIO mode | 54 | * @pio: PIO mode number |
55 | * | 55 | * |
56 | * Set the interface PIO mode. | 56 | * Set the interface PIO mode. |
57 | */ | 57 | */ |
58 | 58 | ||
59 | static void it8213_tune_pio(ide_drive_t *drive, const u8 pio) | 59 | static void it8213_set_pio_mode(ide_drive_t *drive, const u8 pio) |
60 | { | 60 | { |
61 | ide_hwif_t *hwif = HWIF(drive); | 61 | ide_hwif_t *hwif = HWIF(drive); |
62 | struct pci_dev *dev = hwif->pci_dev; | 62 | struct pci_dev *dev = hwif->pci_dev; |
@@ -105,21 +105,15 @@ static void it8213_tune_pio(ide_drive_t *drive, const u8 pio) | |||
105 | spin_unlock_irqrestore(&tune_lock, flags); | 105 | spin_unlock_irqrestore(&tune_lock, flags); |
106 | } | 106 | } |
107 | 107 | ||
108 | static void it8213_set_pio_mode(ide_drive_t *drive, const u8 pio) | ||
109 | { | ||
110 | it8213_tune_pio(drive, pio); | ||
111 | ide_config_drive_speed(drive, XFER_PIO_0 + pio); | ||
112 | } | ||
113 | |||
114 | /** | 108 | /** |
115 | * it8213_tune_chipset - set controller timings | 109 | * it8213_set_dma_mode - set host controller for DMA mode |
116 | * @drive: Drive to set up | 110 | * @drive: drive |
117 | * @speed: speed we want to achieve | 111 | * @speed: DMA mode |
118 | * | 112 | * |
119 | * Tune the ITE chipset for the desired mode. | 113 | * Tune the ITE chipset for the DMA mode. |
120 | */ | 114 | */ |
121 | 115 | ||
122 | static int it8213_tune_chipset(ide_drive_t *drive, const u8 speed) | 116 | static void it8213_set_dma_mode(ide_drive_t *drive, const u8 speed) |
123 | { | 117 | { |
124 | ide_hwif_t *hwif = HWIF(drive); | 118 | ide_hwif_t *hwif = HWIF(drive); |
125 | struct pci_dev *dev = hwif->pci_dev; | 119 | struct pci_dev *dev = hwif->pci_dev; |
@@ -152,7 +146,7 @@ static int it8213_tune_chipset(ide_drive_t *drive, const u8 speed) | |||
152 | case XFER_SW_DMA_2: | 146 | case XFER_SW_DMA_2: |
153 | break; | 147 | break; |
154 | default: | 148 | default: |
155 | return -1; | 149 | return; |
156 | } | 150 | } |
157 | 151 | ||
158 | if (speed >= XFER_UDMA_0) { | 152 | if (speed >= XFER_UDMA_0) { |
@@ -182,9 +176,7 @@ static int it8213_tune_chipset(ide_drive_t *drive, const u8 speed) | |||
182 | pci_write_config_byte(dev, 0x55, (u8) reg55 & ~w_flag); | 176 | pci_write_config_byte(dev, 0x55, (u8) reg55 & ~w_flag); |
183 | } | 177 | } |
184 | 178 | ||
185 | it8213_tune_pio(drive, it8213_dma_2_pio(speed)); | 179 | it8213_set_pio_mode(drive, it8213_dma_2_pio(speed)); |
186 | |||
187 | return ide_config_drive_speed(drive, speed); | ||
188 | } | 180 | } |
189 | 181 | ||
190 | /** | 182 | /** |
@@ -220,7 +212,7 @@ static void __devinit init_hwif_it8213(ide_hwif_t *hwif) | |||
220 | { | 212 | { |
221 | u8 reg42h = 0; | 213 | u8 reg42h = 0; |
222 | 214 | ||
223 | hwif->speedproc = &it8213_tune_chipset; | 215 | hwif->set_dma_mode = &it8213_set_dma_mode; |
224 | hwif->set_pio_mode = &it8213_set_pio_mode; | 216 | hwif->set_pio_mode = &it8213_set_pio_mode; |
225 | 217 | ||
226 | hwif->autodma = 0; | 218 | hwif->autodma = 0; |