From: Konrad Dybcio Date: Wed, 19 Mar 2025 14:25:58 +0000 (+0100) Subject: of: address: Allow to specify nonposted-mmio per-device X-Git-Tag: v6.15-rc1~115^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=47026c4ffedd2cd664e3f70f63c4149c56355f37;p=thirdparty%2Flinux.git of: address: Allow to specify nonposted-mmio per-device Certain IP blocks may strictly require/expect a nE mapping to function correctly, while others may be fine without it (which is preferred for performance reasons). Allow specifying nonposted-mmio on a per-device basis. Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20250319-topic-nonposted_mmio-v1-2-dfb886fbd15f@oss.qualcomm.com Signed-off-by: Rob Herring (Arm) --- diff --git a/drivers/of/address.c b/drivers/of/address.c index 0ed35a4f92053..cb2212b133759 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -1032,10 +1032,11 @@ EXPORT_SYMBOL_GPL(of_dma_is_coherent); static bool of_mmio_is_nonposted(const struct device_node *np) { struct device_node *parent __free(device_node) = of_get_parent(np); - if (!parent) - return false; - return of_property_read_bool(parent, "nonposted-mmio"); + if (of_property_read_bool(np, "nonposted-mmio")) + return true; + + return parent && of_property_read_bool(parent, "nonposted-mmio"); } static int __of_address_to_resource(struct device_node *dev, int index, int bar_no,