aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/meson/meson_drv.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 3ee4d4a4ecba..b59c7570f4cb 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -388,8 +388,10 @@ static int meson_probe_remote(struct platform_device *pdev,
388 remote_node = of_graph_get_remote_port_parent(ep); 388 remote_node = of_graph_get_remote_port_parent(ep);
389 if (!remote_node || 389 if (!remote_node ||
390 remote_node == parent || /* Ignore parent endpoint */ 390 remote_node == parent || /* Ignore parent endpoint */
391 !of_device_is_available(remote_node)) 391 !of_device_is_available(remote_node)) {
392 of_node_put(remote_node);
392 continue; 393 continue;
394 }
393 395
394 count += meson_probe_remote(pdev, match, remote, remote_node); 396 count += meson_probe_remote(pdev, match, remote, remote_node);
395 397
@@ -408,10 +410,13 @@ static int meson_drv_probe(struct platform_device *pdev)
408 410
409 for_each_endpoint_of_node(np, ep) { 411 for_each_endpoint_of_node(np, ep) {
410 remote = of_graph_get_remote_port_parent(ep); 412 remote = of_graph_get_remote_port_parent(ep);
411 if (!remote || !of_device_is_available(remote)) 413 if (!remote || !of_device_is_available(remote)) {
414 of_node_put(remote);
412 continue; 415 continue;
416 }
413 417
414 count += meson_probe_remote(pdev, &match, np, remote); 418 count += meson_probe_remote(pdev, &match, np, remote);
419 of_node_put(remote);
415 } 420 }
416 421
417 if (count && !match) 422 if (count && !match)