Hi Hadar, Thank you for the patch! Yet something to improve: [auto build test ERROR on stm32/stm32-next] [also build test ERROR on sunxi/sunxi/for-next tegra/for-next linus/master v5.7-rc1 next-20200413] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Hadar-Gat/of_device-removed-include-that-caused-a-recursion-in-included-headers/20200414-032638 base: https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git stm32-next config: arm-multi_v5_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=9.3.0 make.cross ARCH=arm If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/bus/imx-weim.c: In function 'weim_parse_dt': >> drivers/bus/imx-weim.c:227:9: error: implicit declaration of function 'of_platform_default_populate' [-Werror=implicit-function-declaration] 227 | ret = of_platform_default_populate(pdev->dev.of_node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers/pinctrl/freescale/pinctrl-imx1-core.c: In function 'imx1_pinctrl_core_probe': >> drivers/pinctrl/freescale/pinctrl-imx1-core.c:639:8: error: implicit declaration of function 'of_platform_populate' [-Werror=implicit-function-declaration] 639 | ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); | ^~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/of_platform_default_populate +227 drivers/bus/imx-weim.c 85bf6d4e4b100e Huang Shijie 2013-05-28 189 4a92f07816ba30 Sascha Hauer 2019-08-14 190 static int weim_parse_dt(struct platform_device *pdev, void __iomem *base) 85bf6d4e4b100e Huang Shijie 2013-05-28 191 { 3f98b6baad63b1 Alexander Shiyan 2013-06-29 192 const struct of_device_id *of_id = of_match_device(weim_id_table, 3f98b6baad63b1 Alexander Shiyan 2013-06-29 193 &pdev->dev); 3f98b6baad63b1 Alexander Shiyan 2013-06-29 194 const struct imx_weim_devtype *devtype = of_id->data; 85bf6d4e4b100e Huang Shijie 2013-05-28 195 struct device_node *child; 52c47b63412b09 Alison Chaiken 2015-02-18 196 int ret, have_child = 0; c7995bcb36ef61 Sven Van Asbroeck 2018-12-17 197 struct cs_timing_state ts = {}; 77266e722feabb Sven Van Asbroeck 2019-07-12 198 u32 reg; 85bf6d4e4b100e Huang Shijie 2013-05-28 199 8d9ee21e98205e Shawn Guo 2014-02-11 200 if (devtype == &imx50_weim_devtype) { 8d9ee21e98205e Shawn Guo 2014-02-11 201 ret = imx_weim_gpr_setup(pdev); 8d9ee21e98205e Shawn Guo 2014-02-11 202 if (ret) 8d9ee21e98205e Shawn Guo 2014-02-11 203 return ret; 8d9ee21e98205e Shawn Guo 2014-02-11 204 } 8d9ee21e98205e Shawn Guo 2014-02-11 205 77266e722feabb Sven Van Asbroeck 2019-07-12 206 if (of_property_read_bool(pdev->dev.of_node, "fsl,burst-clk-enable")) { 77266e722feabb Sven Van Asbroeck 2019-07-12 207 if (devtype->wcr_bcm) { 77266e722feabb Sven Van Asbroeck 2019-07-12 208 reg = readl(base + devtype->wcr_offset); 77266e722feabb Sven Van Asbroeck 2019-07-12 209 writel(reg | devtype->wcr_bcm, 77266e722feabb Sven Van Asbroeck 2019-07-12 210 base + devtype->wcr_offset); 77266e722feabb Sven Van Asbroeck 2019-07-12 211 } else { 77266e722feabb Sven Van Asbroeck 2019-07-12 212 dev_err(&pdev->dev, "burst clk mode not supported.\n"); 77266e722feabb Sven Van Asbroeck 2019-07-12 213 return -EINVAL; 77266e722feabb Sven Van Asbroeck 2019-07-12 214 } 77266e722feabb Sven Van Asbroeck 2019-07-12 215 } 77266e722feabb Sven Van Asbroeck 2019-07-12 216 33b96d2c957921 Fabio Estevam 2016-02-22 217 for_each_available_child_of_node(pdev->dev.of_node, child) { c7995bcb36ef61 Sven Van Asbroeck 2018-12-17 218 ret = weim_timing_setup(&pdev->dev, child, base, devtype, &ts); 52c47b63412b09 Alison Chaiken 2015-02-18 219 if (ret) 9c0982d809fd81 Rob Herring 2017-07-18 220 dev_warn(&pdev->dev, "%pOF set timing failed.\n", 9c0982d809fd81 Rob Herring 2017-07-18 221 child); 52c47b63412b09 Alison Chaiken 2015-02-18 222 else 52c47b63412b09 Alison Chaiken 2015-02-18 223 have_child = 1; 85bf6d4e4b100e Huang Shijie 2013-05-28 224 } 85bf6d4e4b100e Huang Shijie 2013-05-28 225 52c47b63412b09 Alison Chaiken 2015-02-18 226 if (have_child) 39ec8d3809fdf5 Kefeng Wang 2016-06-01 @227 ret = of_platform_default_populate(pdev->dev.of_node, 26651c4376454b Liu Ying 2014-07-04 228 NULL, &pdev->dev); 85bf6d4e4b100e Huang Shijie 2013-05-28 229 if (ret) 9c0982d809fd81 Rob Herring 2017-07-18 230 dev_err(&pdev->dev, "%pOF fail to create devices.\n", 9c0982d809fd81 Rob Herring 2017-07-18 231 pdev->dev.of_node); 85bf6d4e4b100e Huang Shijie 2013-05-28 232 return ret; 85bf6d4e4b100e Huang Shijie 2013-05-28 233 } 85bf6d4e4b100e Huang Shijie 2013-05-28 234 :::::: The code at line 227 was first introduced by commit :::::: 39ec8d3809fdf5228f9cb9fa3d3f2bfb4ee57956 bus: imx-weim: use of_platform_default_populate() to populate default bus :::::: TO: Kefeng Wang :::::: CC: Rob Herring --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org