]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
of: address: Allow to specify nonposted-mmio per-device
authorKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Wed, 19 Mar 2025 14:25:58 +0000 (15:25 +0100)
committerRob Herring (Arm) <robh@kernel.org>
Fri, 21 Mar 2025 16:27:56 +0000 (11:27 -0500)
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 <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250319-topic-nonposted_mmio-v1-2-dfb886fbd15f@oss.qualcomm.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/address.c

index 0ed35a4f92053bcd985da11d9fa6b4f8c6a39d29..cb2212b1337590c84d2c851f7d0d5e1832d5a0b4 100644 (file)
@@ -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,