diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-02-16 20:40:26 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-02-16 20:40:26 -0500 |
commit | 3608b5d71a52c053787dbad6af20c25f7e0b75a9 (patch) | |
tree | 5bd6ac777d32d8426e65e3c31cc1587674771e8c /drivers/ide/pci/it821x.c | |
parent | 9ef5791e1be91007951477b8ed1530ac1166a8e7 (diff) |
ide: add ide_set_dma() helper (v2)
* add ide_set_dma() helper and make ide_hwif_t.ide_dma_check return
-1 when DMA needs to be disabled (== need to call ->ide_dma_off_quietly)
0 when DMA needs to be enabled (== need to call ->ide_dma_on)
1 when DMA setting shouldn't be changed
* fix IDE code to use ide_set_dma() instead if using ->ide_dma_check directly
v2:
* updated for scc_pata
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/it821x.c')
-rw-r--r-- | drivers/ide/pci/it821x.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/ide/pci/it821x.c b/drivers/ide/pci/it821x.c index e9bad185968a..35ee17df3f8d 100644 --- a/drivers/ide/pci/it821x.c +++ b/drivers/ide/pci/it821x.c | |||
@@ -520,14 +520,12 @@ static int config_chipset_for_dma (ide_drive_t *drive) | |||
520 | 520 | ||
521 | static int it821x_config_drive_for_dma (ide_drive_t *drive) | 521 | static int it821x_config_drive_for_dma (ide_drive_t *drive) |
522 | { | 522 | { |
523 | ide_hwif_t *hwif = drive->hwif; | 523 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) |
524 | return 0; | ||
524 | 525 | ||
525 | if (ide_use_dma(drive)) { | ||
526 | if (config_chipset_for_dma(drive)) | ||
527 | return hwif->ide_dma_on(drive); | ||
528 | } | ||
529 | config_it821x_chipset_for_pio(drive, 1); | 526 | config_it821x_chipset_for_pio(drive, 1); |
530 | return hwif->ide_dma_off_quietly(drive); | 527 | |
528 | return -1; | ||
531 | } | 529 | } |
532 | 530 | ||
533 | /** | 531 | /** |
@@ -612,7 +610,7 @@ static void __devinit it821x_fixups(ide_hwif_t *hwif) | |||
612 | #ifdef CONFIG_IDEDMA_ONLYDISK | 610 | #ifdef CONFIG_IDEDMA_ONLYDISK |
613 | if (drive->media == ide_disk) | 611 | if (drive->media == ide_disk) |
614 | #endif | 612 | #endif |
615 | hwif->ide_dma_check(drive); | 613 | ide_set_dma(drive); |
616 | } else { | 614 | } else { |
617 | /* Non RAID volume. Fixups to stop the core code | 615 | /* Non RAID volume. Fixups to stop the core code |
618 | doing unsupported things */ | 616 | doing unsupported things */ |