diff options
Diffstat (limited to 'drivers/ide/pci/pdc202xx_new.c')
-rw-r--r-- | drivers/ide/pci/pdc202xx_new.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c index 236a03144a2..b13a06c5cb2 100644 --- a/drivers/ide/pci/pdc202xx_new.c +++ b/drivers/ide/pci/pdc202xx_new.c | |||
@@ -282,19 +282,13 @@ static int config_chipset_for_dma(ide_drive_t *drive) | |||
282 | static int pdcnew_config_drive_xfer_rate(ide_drive_t *drive) | 282 | static int pdcnew_config_drive_xfer_rate(ide_drive_t *drive) |
283 | { | 283 | { |
284 | ide_hwif_t *hwif = HWIF(drive); | 284 | ide_hwif_t *hwif = HWIF(drive); |
285 | struct hd_driveid *id = drive->id; | ||
286 | 285 | ||
287 | drive->init_speed = 0; | 286 | drive->init_speed = 0; |
288 | 287 | ||
289 | if ((id->capability & 1) && drive->autodma) { | 288 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) |
290 | 289 | return hwif->ide_dma_on(drive); | |
291 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) | ||
292 | return hwif->ide_dma_on(drive); | ||
293 | |||
294 | goto fast_ata_pio; | ||
295 | 290 | ||
296 | } else if ((id->capability & 8) || (id->field_valid & 2)) { | 291 | if (ide_use_fast_pio(drive)) { |
297 | fast_ata_pio: | ||
298 | hwif->tuneproc(drive, 255); | 292 | hwif->tuneproc(drive, 255); |
299 | return hwif->ide_dma_off_quietly(drive); | 293 | return hwif->ide_dma_off_quietly(drive); |
300 | } | 294 | } |