@@ -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;
}
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@chromium.org> --- drivers/gpu/drm/msm/msm_drv.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-)