On 9/30/19 2:52 PM, Robin Murphy wrote: > On 30/09/2019 13:40, Marek Vasut wrote: >> On 9/27/19 2:24 AM, Rob Herring wrote: >>> This series fixes several issues related to 'dma-ranges'. Primarily, >>> 'dma-ranges' in a PCI bridge node does correctly set dma masks for PCI >>> devices not described in the DT. A common case needing dma-ranges is a >>> 32-bit PCIe bridge on a 64-bit system. This affects several platforms >>> including Broadcom, NXP, Renesas, and Arm Juno. There's been several >>> attempts to fix these issues, most recently earlier this week[1]. >>> >>> In the process, I found several bugs in the address translation. It >>> appears that things have happened to work as various DTs happen to use >>> 1:1 addresses. >>> >>> First 3 patches are just some clean-up. The 4th patch adds a unittest >>> exhibiting the issues. Patches 5-9 rework how of_dma_configure() works >>> making it work on either a struct device child node or a struct >>> device_node parent node so that it works on bus leaf nodes like PCI >>> bridges. Patches 10 and 11 fix 2 issues with address translation for >>> dma-ranges. >>> >>> My testing on this has been with QEMU virt machine hacked up to set PCI >>> dma-ranges and the unittest. Nicolas reports this series resolves the >>> issues on Rpi4 and NXP Layerscape platforms. >> >> With the following patches applied: >> https://patchwork.ozlabs.org/patch/1144870/ >> https://patchwork.ozlabs.org/patch/1144871/ > > Can you try it without those additional patches? This series aims to > make the parsing work properly generically, such that we shouldn't need > to add an additional PCI-specific version of almost the same code. Seems to work even without those. -- Best regards, Marek Vasut