Enhance the probing sequence by using the ports property of the
display-subsystem node.
That done, it becomes possible to handle the display-substem node
outside of the soc node within the device-tree and not have each IP
blocks as children of the display-subsystem node.
Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
---
drivers/gpu/drm/sti/sti_drv.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 42f21ab91957b38cb9aef012b6ee7f4ae1683edf..9d6a7c8fa0759c0b6fedf87169b18cff3684be46 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -231,9 +231,6 @@ static const struct component_master_ops sti_ops = {
static int sti_platform_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- struct device_node *node = dev->of_node;
- struct device_node *child_np;
- struct component_match *match = NULL;
int ret;
ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
@@ -242,15 +239,7 @@ static int sti_platform_probe(struct platform_device *pdev)
devm_of_platform_populate(dev);
- child_np = of_get_next_available_child(node, NULL);
-
- while (child_np) {
- drm_of_component_match_add(dev, &match, component_compare_of,
- child_np);
- child_np = of_get_next_available_child(node, child_np);
- }
-
- return component_master_add_with_match(dev, &sti_ops, match);
+ return drm_of_component_probe(dev, component_compare_of, &sti_ops);
}
static void sti_platform_remove(struct platform_device *pdev)
--
2.50.1
Hello Raphael,
Thanks for this patch.
On Thu, Jul 17, 2025 at 09:15:33PM +0200, Raphael Gallais-Pou wrote:
> Enhance the probing sequence by using the ports property of the
> display-subsystem node.
>
> That done, it becomes possible to handle the display-substem node
> outside of the soc node within the device-tree and not have each IP
> blocks as children of the display-subsystem node.
>
> Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
> ---
> drivers/gpu/drm/sti/sti_drv.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 42f21ab91957b38cb9aef012b6ee7f4ae1683edf..9d6a7c8fa0759c0b6fedf87169b18cff3684be46 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -231,9 +231,6 @@ static const struct component_master_ops sti_ops = {
> static int sti_platform_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> - struct device_node *node = dev->of_node;
> - struct device_node *child_np;
> - struct component_match *match = NULL;
> int ret;
>
> ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
> @@ -242,15 +239,7 @@ static int sti_platform_probe(struct platform_device *pdev)
>
> devm_of_platform_populate(dev);
>
> - child_np = of_get_next_available_child(node, NULL);
> -
> - while (child_np) {
> - drm_of_component_match_add(dev, &match, component_compare_of,
> - child_np);
> - child_np = of_get_next_available_child(node, child_np);
> - }
> -
> - return component_master_add_with_match(dev, &sti_ops, match);
> + return drm_of_component_probe(dev, component_compare_of, &sti_ops);
> }
>
> static void sti_platform_remove(struct platform_device *pdev)
>
> --
> 2.50.1
>
Acked-by: Alain Volmat <alain.volmat@foss.st.com>
Best regards
Alain
© 2016 - 2026 Red Hat, Inc.