aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/sis5513.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/sis5513.c')
-rw-r--r--drivers/ide/pci/sis5513.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c
index e71552e64ae4..4fff663a6432 100644
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -670,23 +670,15 @@ static int config_chipset_for_dma (ide_drive_t *drive)
670static int sis5513_config_xfer_rate(ide_drive_t *drive) 670static int sis5513_config_xfer_rate(ide_drive_t *drive)
671{ 671{
672 ide_hwif_t *hwif = HWIF(drive); 672 ide_hwif_t *hwif = HWIF(drive);
673 struct hd_driveid *id = drive->id;
674 673
675 config_art_rwp_pio(drive, 5); 674 config_art_rwp_pio(drive, 5);
676 675
677 drive->init_speed = 0; 676 drive->init_speed = 0;
678 677
679 if (id && (id->capability & 1) && drive->autodma) { 678 if (ide_use_dma(drive) && config_chipset_for_dma(drive))
679 return hwif->ide_dma_on(drive);
680 680
681 if (ide_use_dma(drive)) { 681 if (ide_use_fast_pio(drive)) {
682 if (config_chipset_for_dma(drive))
683 return hwif->ide_dma_on(drive);
684 }
685
686 goto fast_ata_pio;
687
688 } else if ((id->capability & 8) || (id->field_valid & 2)) {
689fast_ata_pio:
690 sis5513_tune_drive(drive, 5); 682 sis5513_tune_drive(drive, 5);
691 return hwif->ide_dma_off_quietly(drive); 683 return hwif->ide_dma_off_quietly(drive);
692 } 684 }