diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-04-13 15:21:56 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-04-13 15:21:56 -0700 |
commit | 4413ad01e27eb989f4b19bb5b038328c220a383d (patch) | |
tree | d4a54ae82e8e14c0d4b3572f514c7e316c1e8fec /drivers/of | |
parent | 531f27ad5e3a85128a9668c9063c58fc35d4e89b (diff) | |
parent | 1a50d9403fb90cbe4dea0ec9fd0351d2ecbd8924 (diff) | |
download | lwn-4413ad01e27eb989f4b19bb5b038328c220a383d.tar.gz lwn-4413ad01e27eb989f4b19bb5b038328c220a383d.zip |
Merge tag 'devicetree-fixes-for-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree fixes from Rob Herring:
- Fix interaction between fw_devlink and DT overlays causing devices to
not be probed
- Fix the compatible string for loongson,cpu-interrupt-controller
* tag 'devicetree-fixes-for-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
treewide: Fix probing of devices in DT overlays
dt-bindings: interrupt-controller: loongarch: Fix mismatched compatible
Diffstat (limited to 'drivers/of')
-rw-r--r-- | drivers/of/dynamic.c | 1 | ||||
-rw-r--r-- | drivers/of/platform.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index 07d93753b12f..e311d406b170 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -226,6 +226,7 @@ static void __of_attach_node(struct device_node *np) np->sibling = np->parent->child; np->parent->child = np; of_node_clear_flag(np, OF_DETACHED); + np->fwnode.flags |= FWNODE_FLAG_NOT_DEVICE; } /** diff --git a/drivers/of/platform.c b/drivers/of/platform.c index b2bd2e783445..78ae84187449 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -737,6 +737,11 @@ static int of_platform_notify(struct notifier_block *nb, if (of_node_check_flag(rd->dn, OF_POPULATED)) return NOTIFY_OK; + /* + * Clear the flag before adding the device so that fw_devlink + * doesn't skip adding consumers to this device. + */ + rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE; /* pdev_parent may be NULL when no bus platform device */ pdev_parent = of_find_device_by_node(rd->dn->parent); pdev = of_platform_device_create(rd->dn, NULL, |