diff options
Diffstat (limited to 'drivers/ide/pci/jmicron.c')
-rw-r--r-- | drivers/ide/pci/jmicron.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ide/pci/jmicron.c b/drivers/ide/pci/jmicron.c index f07bbbed1778..53f25500c22b 100644 --- a/drivers/ide/pci/jmicron.c +++ b/drivers/ide/pci/jmicron.c | |||
@@ -147,7 +147,9 @@ static int config_chipset_for_dma (ide_drive_t *drive) | |||
147 | { | 147 | { |
148 | u8 speed = ide_dma_speed(drive, jmicron_ratemask(drive)); | 148 | u8 speed = ide_dma_speed(drive, jmicron_ratemask(drive)); |
149 | 149 | ||
150 | config_jmicron_chipset_for_pio(drive, !speed); | 150 | if (!speed) |
151 | return 0; | ||
152 | |||
151 | jmicron_tune_chipset(drive, speed); | 153 | jmicron_tune_chipset(drive, speed); |
152 | return ide_dma_enable(drive); | 154 | return ide_dma_enable(drive); |
153 | } | 155 | } |
@@ -162,14 +164,12 @@ static int config_chipset_for_dma (ide_drive_t *drive) | |||
162 | 164 | ||
163 | static int jmicron_config_drive_for_dma (ide_drive_t *drive) | 165 | static int jmicron_config_drive_for_dma (ide_drive_t *drive) |
164 | { | 166 | { |
165 | ide_hwif_t *hwif = drive->hwif; | 167 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) |
168 | return 0; | ||
166 | 169 | ||
167 | if (ide_use_dma(drive)) { | ||
168 | if (config_chipset_for_dma(drive)) | ||
169 | return hwif->ide_dma_on(drive); | ||
170 | } | ||
171 | config_jmicron_chipset_for_pio(drive, 1); | 170 | config_jmicron_chipset_for_pio(drive, 1); |
172 | return hwif->ide_dma_off_quietly(drive); | 171 | |
172 | return -1; | ||
173 | } | 173 | } |
174 | 174 | ||
175 | /** | 175 | /** |