Let's save ourselves some hassle and use the devm variant of of_platform_populate() do we don't need to worry about manually depopulating. Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx> --- drivers/gpu/drm/msm/msm_drv.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index f6ce40bf3699..78b09fde9e29 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -1208,7 +1208,7 @@ static int add_display_components(struct device *dev, if (of_device_is_compatible(dev->of_node, "qcom,mdss") || of_device_is_compatible(dev->of_node, "qcom,sdm845-mdss") || of_device_is_compatible(dev->of_node, "qcom,sc7180-mdss")) { - ret = of_platform_populate(dev->of_node, NULL, NULL, dev); + ret = devm_of_platform_populate(dev); if (ret) { DRM_DEV_ERROR(dev, "failed to populate children devices\n"); return ret; @@ -1217,7 +1217,6 @@ static int add_display_components(struct device *dev, mdp_dev = device_find_child(dev, NULL, compare_name_mdp); if (!mdp_dev) { DRM_DEV_ERROR(dev, "failed to find MDSS MDP node\n"); - of_platform_depopulate(dev); return -ENODEV; } @@ -1232,8 +1231,6 @@ static int add_display_components(struct device *dev, } ret = add_components_mdp(mdp_dev, matchptr); - if (ret) - of_platform_depopulate(dev); return ret; } @@ -1300,30 +1297,21 @@ static int msm_pdev_probe(struct platform_device *pdev) ret = add_gpu_components(&pdev->dev, &match); if (ret) - goto fail; + return ret; /* on all devices that I am aware of, iommu's which can map * any address the cpu can see are used: */ ret = dma_set_mask_and_coherent(&pdev->dev, ~0); if (ret) - goto fail; - - ret = component_master_add_with_match(&pdev->dev, &msm_drm_ops, match); - if (ret) - goto fail; - - return 0; + return ret; -fail: - of_platform_depopulate(&pdev->dev); - return ret; + return component_master_add_with_match(&pdev->dev, &msm_drm_ops, match); } static int msm_pdev_remove(struct platform_device *pdev) { component_master_del(&pdev->dev, &msm_drm_ops); - of_platform_depopulate(&pdev->dev); return 0; } -- 2.27.0.383.g050319c2ae-goog