diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:07 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:07 -0400 |
commit | 5f8b6c34854a966fe5eb7241fde0419d47d5d408 (patch) | |
tree | 052afd508d9cd314f503d938182db55355f1b392 /drivers/ide/pci/alim15x3.c | |
parent | 9adf768a398745c539623210502b521e671c59d7 (diff) |
ide: add ->mwdma_mask and ->swdma_mask to ide_pci_device_t (take 2)
* Add ->mwdma_mask and ->swdma_mask to ide_pci_device_t.
* Set ide_hwif_t DMA masks using DMA masks from ide_pci_device_t in
setup-pci.c::ide_pci_setup_ports() (iff DMA base is valid and ->init_hwif
method may still override them).
* Convert IDE PCI host drivers to use ide_pci_device_t DMA masks.
While at it:
* Use ATA_{UDMA,MWDMA,SWDMA}* defines.
* hpt34x.c: add separate ide_pci_device_t instances for HPT343 and HPT345.
* serverworks.c: fix DMA masks being set before checking DMA base.
v2:
* Add missing masks to DECLARE_GENERIC_PCI_DEV() macro.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/alim15x3.c')
-rw-r--r-- | drivers/ide/pci/alim15x3.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c index 79f572572ffb..9a295e214d57 100644 --- a/drivers/ide/pci/alim15x3.c +++ b/drivers/ide/pci/alim15x3.c | |||
@@ -684,16 +684,13 @@ static void __devinit init_hwif_common_ali15x3 (ide_hwif_t *hwif) | |||
684 | if (m5229_revision <= 0x20) | 684 | if (m5229_revision <= 0x20) |
685 | hwif->ultra_mask = 0x00; /* no udma */ | 685 | hwif->ultra_mask = 0x00; /* no udma */ |
686 | else if (m5229_revision < 0xC2) | 686 | else if (m5229_revision < 0xC2) |
687 | hwif->ultra_mask = 0x07; /* udma0-2 */ | 687 | hwif->ultra_mask = ATA_UDMA2; |
688 | else if (m5229_revision == 0xC2 || m5229_revision == 0xC3) | 688 | else if (m5229_revision == 0xC2 || m5229_revision == 0xC3) |
689 | hwif->ultra_mask = 0x1f; /* udma0-4 */ | 689 | hwif->ultra_mask = ATA_UDMA4; |
690 | else if (m5229_revision == 0xC4) | 690 | else if (m5229_revision == 0xC4) |
691 | hwif->ultra_mask = 0x3f; /* udma0-5 */ | 691 | hwif->ultra_mask = ATA_UDMA5; |
692 | else | 692 | else |
693 | hwif->ultra_mask = 0x7f; /* udma0-6 */ | 693 | hwif->ultra_mask = ATA_UDMA6; |
694 | |||
695 | hwif->mwdma_mask = 0x07; | ||
696 | hwif->swdma_mask = 0x07; | ||
697 | 694 | ||
698 | hwif->dma_setup = &ali15x3_dma_setup; | 695 | hwif->dma_setup = &ali15x3_dma_setup; |
699 | 696 | ||
@@ -779,6 +776,8 @@ static ide_pci_device_t ali15x3_chipset __devinitdata = { | |||
779 | .init_dma = init_dma_ali15x3, | 776 | .init_dma = init_dma_ali15x3, |
780 | .host_flags = IDE_HFLAG_BOOTABLE, | 777 | .host_flags = IDE_HFLAG_BOOTABLE, |
781 | .pio_mask = ATA_PIO5, | 778 | .pio_mask = ATA_PIO5, |
779 | .swdma_mask = ATA_SWDMA2, | ||
780 | .mwdma_mask = ATA_MWDMA2, | ||
782 | }; | 781 | }; |
783 | 782 | ||
784 | /** | 783 | /** |