On Tue, Mar 04, 2025 at 01:08:16PM -0600, Bjorn Helgaas wrote: > On Tue, Mar 04, 2025 at 12:49:36PM -0500, Frank Li wrote: > > Remove artpec6_pcie_cpu_addr_fixup() as the DT bus fabric should provide correct > > address translation. Set use_parent_dt_ranges to allow the DWC core driver to > > fetch address translation from the device tree. > > Shouldn't we be able to detect platforms where DT doesn't describe the > translation correctly? E.g., by running .cpu_addr_fixup() on a > res.start value and comparing the result to the parent_bus_addr()? > Then we could complain about it if they don't match. Can't detect because: There are case, driver have not provide .cpu_addr_fixup, but dts still be wrong. such as bus@10000000 { ranges = <0xdeaddead 0x1000000 size>; pci@90000000 { reg = <...>, <0xdeaddead>; reg-names = <...>, <config>; } }; above dts can work with current driver, but parent bus address 0xdeaddead is totally fake address. We can't detect this case because no .cpu_addr_fixup() at all. Frank > > Bjorn