Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 416f37d0 authored by Darren Stevens's avatar Darren Stevens Committed by Michael Ellerman
Browse files

powerpc/pasemi: Fix coherent_dma_mask for dma engine



Commit 817820b0 ("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: default avatarDarren Stevens <darren@stevens-zone.net>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 29b4817d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -187,6 +187,11 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev)
	if (dev->vendor == 0x1959 && dev->device == 0xa007 &&
	    !firmware_has_feature(FW_FEATURE_LPAR)) {
		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;
	}
#endif