mirror of https://gitee.com/openkylin/linux.git
powerpc/pasemi: Fix coherent_dma_mask for dma engine
Commit 817820b022
("powerpc/iommu: Support "hybrid" iommu/direct DMA
ops for coherent_mask < dma_mask) adds a check of coherent_dma_mask for
dma allocations.
Unfortunately current PASemi code does not set this value for the DMA
engine, which ends up with the default value of 0xffffffff, the result
is on a PASemi system with >2Gb ram and iommu enabled the the onboard
ethernet stops working due to an inability to allocate memory. Add an
initialisation to pci_dma_dev_setup_pasemi().
Signed-off-by: Darren Stevens <darren@stevens-zone.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
29b4817d40
commit
416f37d081
|
@ -187,6 +187,11 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev)
|
||||||
if (dev->vendor == 0x1959 && dev->device == 0xa007 &&
|
if (dev->vendor == 0x1959 && dev->device == 0xa007 &&
|
||||||
!firmware_has_feature(FW_FEATURE_LPAR)) {
|
!firmware_has_feature(FW_FEATURE_LPAR)) {
|
||||||
dev->dev.archdata.dma_ops = &dma_direct_ops;
|
dev->dev.archdata.dma_ops = &dma_direct_ops;
|
||||||
|
/*
|
||||||
|
* Set the coherent DMA mask to prevent the iommu
|
||||||
|
* being used unnecessarily
|
||||||
|
*/
|
||||||
|
dev->dev.coherent_dma_mask = DMA_BIT_MASK(44);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue