summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2020-03-03 07:41:01 -0800
committerTony Lindgren <tony@atomide.com>2020-03-03 07:41:01 -0800
commite28bb32b6d9931f325bf0f9678a690bf333e6838 (patch)
tree179c77872add458fbb704ab628892d418e32236d /drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
parent7324a7a0d5e232551eedad69fea3e4b91973d7c6 (diff)
parentcef766300353613aa273791f70b3125d1f0420ae (diff)
Merge branch 'omap-for-v5.7/dss-probe' into omap-for-v5.7/ti-sysc
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
index 31502857f013..09beda9f5023 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
@@ -183,9 +183,24 @@ static const struct of_device_id omapdss_of_fixups_whitelist[] __initconst = {
{},
};
+static void __init omapdss_find_children(struct device_node *np)
+{
+ struct device_node *child;
+
+ for_each_available_child_of_node(np, child) {
+ if (!of_find_property(child, "compatible", NULL))
+ continue;
+
+ omapdss_walk_device(child, true);
+
+ if (of_device_is_compatible(child, "ti,sysc"))
+ omapdss_find_children(child);
+ }
+}
+
static int __init omapdss_boot_init(void)
{
- struct device_node *dss, *child;
+ struct device_node *dss;
INIT_LIST_HEAD(&dss_conv_list);
@@ -195,13 +210,7 @@ static int __init omapdss_boot_init(void)
return 0;
omapdss_walk_device(dss, true);
-
- for_each_available_child_of_node(dss, child) {
- if (!of_find_property(child, "compatible", NULL))
- continue;
-
- omapdss_walk_device(child, true);
- }
+ omapdss_find_children(dss);
while (!list_empty(&dss_conv_list)) {
struct dss_conv_node *n;