diff options
-rw-r--r-- | arch/powerpc/kernel/pci_64.c | 16 | ||||
-rw-r--r-- | include/asm-powerpc/dma-mapping.h | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index bf06926f677d..f5c4628698b9 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -69,6 +69,22 @@ struct dma_mapping_ops *get_pci_dma_ops(void) | |||
69 | } | 69 | } |
70 | EXPORT_SYMBOL(get_pci_dma_ops); | 70 | EXPORT_SYMBOL(get_pci_dma_ops); |
71 | 71 | ||
72 | |||
73 | int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | ||
74 | { | ||
75 | return dma_set_mask(&dev->dev, mask); | ||
76 | } | ||
77 | |||
78 | int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | ||
79 | { | ||
80 | int rc; | ||
81 | |||
82 | rc = dma_set_mask(&dev->dev, mask); | ||
83 | dev->dev.coherent_dma_mask = dev->dma_mask; | ||
84 | |||
85 | return rc; | ||
86 | } | ||
87 | |||
72 | static void fixup_broken_pcnet32(struct pci_dev* dev) | 88 | static void fixup_broken_pcnet32(struct pci_dev* dev) |
73 | { | 89 | { |
74 | if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) { | 90 | if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) { |
diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h index ff52013c0e2d..e974876e18d2 100644 --- a/include/asm-powerpc/dma-mapping.h +++ b/include/asm-powerpc/dma-mapping.h | |||
@@ -87,6 +87,9 @@ static inline int dma_supported(struct device *dev, u64 mask) | |||
87 | return dma_ops->dma_supported(dev, mask); | 87 | return dma_ops->dma_supported(dev, mask); |
88 | } | 88 | } |
89 | 89 | ||
90 | /* We have our own implementation of pci_set_dma_mask() */ | ||
91 | #define HAVE_ARCH_PCI_SET_DMA_MASK | ||
92 | |||
90 | static inline int dma_set_mask(struct device *dev, u64 dma_mask) | 93 | static inline int dma_set_mask(struct device *dev, u64 dma_mask) |
91 | { | 94 | { |
92 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); | 95 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); |