On 9/13/19 5:29 PM, Rob Herring wrote: >> The of_empty_ranges_quirk() returns a mix of boolean and signed integer >> types, which cannot work well. Replace that with boolean only and fix >> usage logic in of_translate_one() -- the check should trigger when the >> ranges are NULL and the quirk is applicable on the hardware. > > Just moving to boolean has seemed like weak justification for this > churn, but now that I've seen your work on PCI dma-ranges it makes a > bit more sense. > > We do have a problem that unlike 'ranges', 'dma-ranges' being missing > probably needs to be treated as 1:1 translation. I can't really > picture a case where dma-ranges would be used with a non-translatable > address. Perhaps a module with optional DMA and the DMA is not hooked > up. That could be expressed with dma-ranges with a 0 size or a > different compatible. So your v1 patch was perhaps correct change in > behavior, but only for dma-ranges. (I've written one that works in > both cases). Is that posted somewhere ? The controller node /soc/pcie@fe000000/ already has dma-ranges [1] though, so I wonder if it's the PCIe translation patches which need to be updated then ? [1] https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm64/boot/dts/renesas/r8a7795.dtsi#L2653 -- Best regards, Marek Vasut