linux/of.h declares a set of variables providing addresses of certain key OF nodes. The pointers being variables can't profit from stubs provided for when CONFIG_OF is disabled which means that drivers accessing these variables can't profit from CONFIG_COMPILE_TEST=y coverage.
There are drivers under drivers/soc/ that access the of_root node. This series introduces a new OF helper for reading the machine compatible string, exports an existing SoC helper that reads the machine string from the root node and finally replaces all direct accesses to of_root with new or already existing helper functions. Merging strategy: other than patch 1, everything else can go via the SoC tree. I suggest Rob taking patch 1 for v7.0 through the OF tree and the rest can be picked up after v7.0-rc1 is tagged. Signed-off-by: Bartosz Golaszewski <[email protected]> --- Bartosz Golaszewski (8): of: provide of_machine_get_compatible() base: soc: order includes alphabetically base: soc: export soc_device_get_machine() soc: fsl: guts: don't access of_root directly soc: imx8m: don't access of_root directly soc: imx9: don't access of_root directly soc: renesas: don't access of_root directly soc: sunxi: mbus: don't access of_root directly drivers/base/soc.c | 26 ++++++++++++++------------ drivers/of/base.c | 13 +++++++++++++ drivers/soc/fsl/guts.c | 12 +++--------- drivers/soc/imx/soc-imx8m.c | 11 +++-------- drivers/soc/imx/soc-imx9.c | 4 ++-- drivers/soc/renesas/renesas-soc.c | 7 ++++++- drivers/soc/sunxi/sunxi_mbus.c | 2 +- include/linux/of.h | 2 ++ include/linux/sys_soc.h | 10 ++++++++++ 9 files changed, 54 insertions(+), 33 deletions(-) --- base-commit: 46fe65a2c28ecf5df1a7475aba1f08ccf4c0ac1b change-id: 20260119-soc-of-root-77c86c54010f Best regards, -- Bartosz Golaszewski <[email protected]>
