Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <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>

authored by

Konrad Dybcio and committed by
Rob Herring (Arm)
47026c4f 7f623466

+4 -3
+4 -3
drivers/of/address.c
··· 1032 1032 static bool of_mmio_is_nonposted(const struct device_node *np) 1033 1033 { 1034 1034 struct device_node *parent __free(device_node) = of_get_parent(np); 1035 - if (!parent) 1036 - return false; 1037 1035 1038 - return of_property_read_bool(parent, "nonposted-mmio"); 1036 + if (of_property_read_bool(np, "nonposted-mmio")) 1037 + return true; 1038 + 1039 + return parent && of_property_read_bool(parent, "nonposted-mmio"); 1039 1040 } 1040 1041 1041 1042 static int __of_address_to_resource(struct device_node *dev, int index, int bar_no,