On Fri, Nov 15, 2019 at 07:48:23PM +0530, Kishon Vijay Abraham I wrote: > I think the fix on 5.3 was useful for platform drivers (where the platform > driver will set dma_set_mask as 32bits) even when the system itself supports LPAE. Well, we can also use the bus_dma_mask for PCI(e) root port quirks, as we do that for the VIA ones on x86. But I think the OF parsing code is missing something here, and Robin did plan to look into that. > We should find a way to set the DMA mask of of the PCI device based on the DMA > mask of the PCI controller in the SoC. One option would be to change the > pci_drivers all over the kernel to set DMA mask to be based on the DMA mask of > the PCI controller (the PCI device hierarchy should get a reference to the > device pointer of the PCI controller). Or is there a better way to handle this? No. The driver sets the device capabilities. bus_dma_mask handles the system limitations.