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/generic.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/generic.c')
-rw-r--r-- | drivers/ide/pci/generic.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c index 88fa2963d1e3..51165832e7f2 100644 --- a/drivers/ide/pci/generic.c +++ b/drivers/ide/pci/generic.c | |||
@@ -65,13 +65,6 @@ static void __devinit init_hwif_generic (ide_hwif_t *hwif) | |||
65 | default: | 65 | default: |
66 | break; | 66 | break; |
67 | } | 67 | } |
68 | |||
69 | if (!(hwif->dma_base)) | ||
70 | return; | ||
71 | |||
72 | hwif->ultra_mask = 0x7f; | ||
73 | hwif->mwdma_mask = 0x07; | ||
74 | hwif->swdma_mask = 0x07; | ||
75 | } | 68 | } |
76 | 69 | ||
77 | #define DECLARE_GENERIC_PCI_DEV(name_str, dma_setting) \ | 70 | #define DECLARE_GENERIC_PCI_DEV(name_str, dma_setting) \ |
@@ -81,6 +74,9 @@ static void __devinit init_hwif_generic (ide_hwif_t *hwif) | |||
81 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | \ | 74 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | \ |
82 | dma_setting | \ | 75 | dma_setting | \ |
83 | IDE_HFLAG_BOOTABLE, \ | 76 | IDE_HFLAG_BOOTABLE, \ |
77 | .swdma_mask = ATA_SWDMA2, \ | ||
78 | .mwdma_mask = ATA_MWDMA2, \ | ||
79 | .udma_mask = ATA_UDMA6, \ | ||
84 | } | 80 | } |
85 | 81 | ||
86 | static ide_pci_device_t generic_chipsets[] __devinitdata = { | 82 | static ide_pci_device_t generic_chipsets[] __devinitdata = { |
@@ -92,6 +88,9 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
92 | .enablebits = {{0x43,0x08,0x08}, {0x47,0x08,0x08}}, | 88 | .enablebits = {{0x43,0x08,0x08}, {0x47,0x08,0x08}}, |
93 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | | 89 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | |
94 | IDE_HFLAG_BOOTABLE, | 90 | IDE_HFLAG_BOOTABLE, |
91 | .swdma_mask = ATA_SWDMA2, | ||
92 | .mwdma_mask = ATA_MWDMA2, | ||
93 | .udma_mask = ATA_UDMA6, | ||
95 | }, | 94 | }, |
96 | 95 | ||
97 | /* 2 */ DECLARE_GENERIC_PCI_DEV("SAMURAI", 0), | 96 | /* 2 */ DECLARE_GENERIC_PCI_DEV("SAMURAI", 0), |
@@ -108,6 +107,9 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
108 | .init_hwif = init_hwif_generic, | 107 | .init_hwif = init_hwif_generic, |
109 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | | 108 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | |
110 | IDE_HFLAG_OFF_BOARD, | 109 | IDE_HFLAG_OFF_BOARD, |
110 | .swdma_mask = ATA_SWDMA2, | ||
111 | .mwdma_mask = ATA_MWDMA2, | ||
112 | .udma_mask = ATA_UDMA6, | ||
111 | }, | 113 | }, |
112 | 114 | ||
113 | /* 11 */ DECLARE_GENERIC_PCI_DEV("Piccolo0102", IDE_HFLAG_NO_AUTODMA), | 115 | /* 11 */ DECLARE_GENERIC_PCI_DEV("Piccolo0102", IDE_HFLAG_NO_AUTODMA), |
@@ -119,6 +121,9 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
119 | .init_hwif = init_hwif_generic, | 121 | .init_hwif = init_hwif_generic, |
120 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | | 122 | .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | |
121 | IDE_HFLAG_OFF_BOARD, | 123 | IDE_HFLAG_OFF_BOARD, |
124 | .swdma_mask = ATA_SWDMA2, | ||
125 | .mwdma_mask = ATA_MWDMA2, | ||
126 | .udma_mask = ATA_UDMA6, | ||
122 | } | 127 | } |
123 | }; | 128 | }; |
124 | 129 | ||