Loading drivers/gpu/drm/omapdrm/dss/dss.c +22 −3 Original line number Diff line number Diff line Loading @@ -1339,9 +1339,15 @@ static int dss_component_compare(struct device *dev, void *data) return dev == child; } struct dss_component_match_data { struct device *dev; struct component_match **match; }; static int dss_add_child_component(struct device *dev, void *data) { struct component_match **match = data; struct dss_component_match_data *cmatch = data; struct component_match **match = cmatch->match; /* * HACK Loading @@ -1352,7 +1358,17 @@ static int dss_add_child_component(struct device *dev, void *data) if (strstr(dev_name(dev), "rfbi")) return 0; component_match_add(dev->parent, match, dss_component_compare, dev); /* * Handle possible interconnect target modules defined within the DSS. * The DSS components can be children of an interconnect target module * after the device tree has been updated for the module data. * See also omapdss_boot_init() for compatible fixup. */ if (strstr(dev_name(dev), "target-module")) return device_for_each_child(dev, cmatch, dss_add_child_component); component_match_add(cmatch->dev, match, dss_component_compare, dev); return 0; } Loading Loading @@ -1395,6 +1411,7 @@ static int dss_probe_hardware(struct dss_device *dss) static int dss_probe(struct platform_device *pdev) { const struct soc_device_attribute *soc; struct dss_component_match_data cmatch; struct component_match *match = NULL; struct resource *dss_mem; struct dss_device *dss; Loading Loading @@ -1472,7 +1489,9 @@ static int dss_probe(struct platform_device *pdev) omapdss_gather_components(&pdev->dev); device_for_each_child(&pdev->dev, &match, dss_add_child_component); cmatch.dev = &pdev->dev; cmatch.match = &match; device_for_each_child(&pdev->dev, &cmatch, dss_add_child_component); r = component_master_add_with_match(&pdev->dev, &dss_component_ops, match); if (r) Loading drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c +17 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading Loading
drivers/gpu/drm/omapdrm/dss/dss.c +22 −3 Original line number Diff line number Diff line Loading @@ -1339,9 +1339,15 @@ static int dss_component_compare(struct device *dev, void *data) return dev == child; } struct dss_component_match_data { struct device *dev; struct component_match **match; }; static int dss_add_child_component(struct device *dev, void *data) { struct component_match **match = data; struct dss_component_match_data *cmatch = data; struct component_match **match = cmatch->match; /* * HACK Loading @@ -1352,7 +1358,17 @@ static int dss_add_child_component(struct device *dev, void *data) if (strstr(dev_name(dev), "rfbi")) return 0; component_match_add(dev->parent, match, dss_component_compare, dev); /* * Handle possible interconnect target modules defined within the DSS. * The DSS components can be children of an interconnect target module * after the device tree has been updated for the module data. * See also omapdss_boot_init() for compatible fixup. */ if (strstr(dev_name(dev), "target-module")) return device_for_each_child(dev, cmatch, dss_add_child_component); component_match_add(cmatch->dev, match, dss_component_compare, dev); return 0; } Loading Loading @@ -1395,6 +1411,7 @@ static int dss_probe_hardware(struct dss_device *dss) static int dss_probe(struct platform_device *pdev) { const struct soc_device_attribute *soc; struct dss_component_match_data cmatch; struct component_match *match = NULL; struct resource *dss_mem; struct dss_device *dss; Loading Loading @@ -1472,7 +1489,9 @@ static int dss_probe(struct platform_device *pdev) omapdss_gather_components(&pdev->dev); device_for_each_child(&pdev->dev, &match, dss_add_child_component); cmatch.dev = &pdev->dev; cmatch.match = &match; device_for_each_child(&pdev->dev, &cmatch, dss_add_child_component); r = component_master_add_with_match(&pdev->dev, &dss_component_ops, match); if (r) Loading
drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c +17 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading