Every user of this function either uses component_compare_of or
something equivalent. Most of them immediately put the device node as
well. Convert these users to component_match_add_of and remove
drm_of_component_match_add.

Signed-off-by: Sean Anderson <sean.ander...@seco.com>
---

 .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
 drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
 drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
 drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
 drivers/gpu/drm/drm_of.c                      | 29 +++----------------
 drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
 drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
 drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
 drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
 drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
 include/drm/drm_of.h                          | 12 --------
 14 files changed, 33 insertions(+), 88 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
index 9fce4239d4ad..e5bf439b799f 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
@@ -103,10 +103,8 @@ static void komeda_add_slave(struct device *master,
        struct device_node *remote;
 
        remote = of_graph_get_remote_node(np, port, endpoint);
-       if (remote) {
-               drm_of_component_match_add(master, match, component_compare_of, 
remote);
-               of_node_put(remote);
-       }
+       if (remote)
+               component_match_add_of(master, match, remote);
 }
 
 static int komeda_platform_probe(struct platform_device *pdev)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index a032003c340c..18e58863a2f1 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -352,11 +352,6 @@ static const struct component_master_ops hdlcd_master_ops 
= {
        .unbind         = hdlcd_drm_unbind,
 };
 
-static int compare_dev(struct device *dev, void *data)
-{
-       return dev->of_node == data;
-}
-
 static int hdlcd_probe(struct platform_device *pdev)
 {
        struct device_node *port;
@@ -367,9 +362,7 @@ static int hdlcd_probe(struct platform_device *pdev)
        if (!port)
                return -ENODEV;
 
-       drm_of_component_match_add(&pdev->dev, &match, compare_dev, port);
-       of_node_put(port);
-
+       component_match_add_of(&pdev->dev, &match, port);
        return component_master_add_with_match(&pdev->dev, &hdlcd_master_ops,
                                               match);
 }
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 1d0b0c54ccc7..aace8b87c6d3 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -926,13 +926,6 @@ static const struct component_master_ops malidp_master_ops 
= {
        .unbind = malidp_unbind,
 };
 
-static int malidp_compare_dev(struct device *dev, void *data)
-{
-       struct device_node *np = data;
-
-       return dev->of_node == np;
-}
-
 static int malidp_platform_probe(struct platform_device *pdev)
 {
        struct device_node *port;
@@ -946,9 +939,7 @@ static int malidp_platform_probe(struct platform_device 
*pdev)
        if (!port)
                return -ENODEV;
 
-       drm_of_component_match_add(&pdev->dev, &match, malidp_compare_dev,
-                                  port);
-       of_node_put(port);
+       component_match_add_of(&pdev->dev, &match, port);
        return component_master_add_with_match(&pdev->dev, &malidp_master_ops,
                                               match);
 }
diff --git a/drivers/gpu/drm/armada/armada_drv.c 
b/drivers/gpu/drm/armada/armada_drv.c
index 0643887800b4..c0211ad7a45d 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -184,10 +184,12 @@ static void armada_add_endpoints(struct device *dev,
 
        for_each_endpoint_of_node(dev_node, ep) {
                remote = of_graph_get_remote_port_parent(ep);
-               if (remote && of_device_is_available(remote))
-                       drm_of_component_match_add(dev, match, 
component_compare_of,
-                                                  remote);
-               of_node_put(remote);
+               if (remote) {
+                       if (of_device_is_available(remote))
+                               component_match_add_of(dev, match, remote);
+                       else
+                               of_node_put(remote);
+               }
        }
 }
 
diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
index 7bbcb999bb75..0a474729ddf6 100644
--- a/drivers/gpu/drm/drm_of.c
+++ b/drivers/gpu/drm/drm_of.c
@@ -78,24 +78,6 @@ uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_of_find_possible_crtcs);
 
-/**
- * drm_of_component_match_add - Add a component helper OF node match rule
- * @master: master device
- * @matchptr: component match pointer
- * @compare: compare function used for matching component
- * @node: of_node
- */
-void drm_of_component_match_add(struct device *master,
-                               struct component_match **matchptr,
-                               int (*compare)(struct device *, void *),
-                               struct device_node *node)
-{
-       of_node_get(node);
-       component_match_add_release(master, matchptr, component_release_of,
-                                   compare, node);
-}
-EXPORT_SYMBOL_GPL(drm_of_component_match_add);
-
 /**
  * drm_of_component_probe - Generic probe function for a component based master
  * @dev: master device containing the OF node
@@ -130,10 +112,9 @@ int drm_of_component_probe(struct device *dev,
                        break;
 
                if (of_device_is_available(port->parent))
-                       drm_of_component_match_add(dev, &match, compare_of,
-                                                  port);
-
-               of_node_put(port);
+                       component_match_add_of(dev, &match, port);
+               else
+                       of_node_put(port);
        }
 
        if (i == 0) {
@@ -171,9 +152,7 @@ int drm_of_component_probe(struct device *dev,
                                continue;
                        }
 
-                       drm_of_component_match_add(dev, &match, compare_of,
-                                                  remote);
-                       of_node_put(remote);
+                       component_match_add_of(dev, &match, remote);
                }
                of_node_put(port);
        }
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c 
b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
index 1d2b4fb4bcf8..4a0dba34a6e7 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
@@ -590,8 +590,8 @@ static int etnaviv_pdev_probe(struct platform_device *pdev)
                        if (!first_node)
                                first_node = core_node;
 
-                       drm_of_component_match_add(&pdev->dev, &match,
-                                                  component_compare_of, 
core_node);
+                       of_node_get(core_node);
+                       component_match_add_of(&pdev->dev, &match, core_node);
                }
        } else {
                char **names = dev->platform_data;
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c 
b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index 73ee7f25f734..fc736759274f 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -273,8 +273,7 @@ static int kirin_drm_platform_probe(struct platform_device 
*pdev)
        if (!remote)
                return -ENODEV;
 
-       drm_of_component_match_add(dev, &match, component_compare_of, remote);
-       of_node_put(remote);
+       component_match_add_of(dev, &match, remote);
 
        return component_master_add_with_match(dev, &kirin_drm_ops, match);
 }
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c 
b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index ab0515d2c420..75a19e6b85c0 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -1445,8 +1445,7 @@ static int ingenic_drm_probe(struct platform_device *pdev)
        if (!np)
                return ingenic_drm_bind(dev, false);
 
-       drm_of_component_match_add(dev, &match, component_compare_of, np);
-       of_node_put(np);
+       component_match_add_of(dev, &match, np);
 
        return component_master_add_with_match(dev, &ingenic_master_ops, match);
 }
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c 
b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 91f58db5915f..9ca265129659 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -779,8 +779,8 @@ static int mtk_drm_probe(struct platform_device *pdev)
                    comp_type == MTK_DSI) {
                        dev_info(dev, "Adding component match for %pOF\n",
                                 node);
-                       drm_of_component_match_add(dev, &match, 
component_compare_of,
-                                                  node);
+                       of_node_get(node);
+                       component_match_add_of(dev, &match, node);
                }
 
                ret = mtk_ddp_comp_init(node, &private->ddp_comp[comp_id], 
comp_id);
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 28034c21f6bc..1152da3d58dc 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -5,6 +5,7 @@
  * Author: Rob Clark <robdcl...@gmail.com>
  */
 
+#include <linux/component.h>
 #include <linux/dma-mapping.h>
 #include <linux/fault-inject.h>
 #include <linux/kthread.h>
@@ -1148,10 +1149,9 @@ static int add_components_mdp(struct device *master_dev,
                        continue;
 
                if (of_device_is_available(intf))
-                       drm_of_component_match_add(master_dev, matchptr,
-                                                  component_compare_of, intf);
-
-               of_node_put(intf);
+                       component_match_add_of(master_dev, matchptr, intf);
+               else
+                       of_node_put(intf);
        }
 
        return 0;
@@ -1180,9 +1180,9 @@ static int add_gpu_components(struct device *dev,
                return 0;
 
        if (of_device_is_available(np))
-               drm_of_component_match_add(dev, matchptr, component_compare_of, 
np);
-
-       of_node_put(np);
+               component_match_add_of(dev, matchptr, np);
+       else
+               of_node_put(np);
 
        return 0;
 }
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 7abf010a3293..3ae4b73dfa92 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -238,8 +238,7 @@ static int sti_platform_probe(struct platform_device *pdev)
        child_np = of_get_next_available_child(node, NULL);
 
        while (child_np) {
-               drm_of_component_match_add(dev, &match, component_compare_of,
-                                          child_np);
+               component_match_add_of(dev, &match, child_np);
                child_np = of_get_next_available_child(node, child_np);
        }
 
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c 
b/drivers/gpu/drm/sun4i/sun4i_drv.c
index d06ffd99d86e..a67c2010c7a2 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -323,7 +323,8 @@ static int sun4i_drv_add_endpoints(struct device *dev,
             of_device_is_available(node))) {
                /* Add current component */
                DRM_DEBUG_DRIVER("Adding component %pOF\n", node);
-               drm_of_component_match_add(dev, match, component_compare_of, 
node);
+               of_node_get(node);
+               component_match_add_of(dev, match, node);
                count++;
        }
 
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.c 
b/drivers/gpu/drm/tilcdc/tilcdc_external.c
index 3b86d002ef62..0138ce02a64f 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_external.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_external.c
@@ -155,11 +155,6 @@ int tilcdc_attach_external_device(struct drm_device *ddev)
        return ret;
 }
 
-static int dev_match_of(struct device *dev, void *data)
-{
-       return dev->of_node == data;
-}
-
 int tilcdc_get_external_components(struct device *dev,
                                   struct component_match **match)
 {
@@ -173,7 +168,8 @@ int tilcdc_get_external_components(struct device *dev,
        }
 
        if (match)
-               drm_of_component_match_add(dev, match, dev_match_of, node);
-       of_node_put(node);
+               component_match_add_of(dev, match, node);
+       else
+               of_node_put(node);
        return 1;
 }
diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h
index 10ab58c40746..685c44dc1dae 100644
--- a/include/drm/drm_of.h
+++ b/include/drm/drm_of.h
@@ -33,10 +33,6 @@ uint32_t drm_of_crtc_port_mask(struct drm_device *dev,
                            struct device_node *port);
 uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
                                    struct device_node *port);
-void drm_of_component_match_add(struct device *master,
-                               struct component_match **matchptr,
-                               int (*compare)(struct device *, void *),
-                               struct device_node *node);
 int drm_of_component_probe(struct device *dev,
                           int (*compare_of)(struct device *, void *),
                           const struct component_master_ops *m_ops);
@@ -69,14 +65,6 @@ static inline uint32_t drm_of_find_possible_crtcs(struct 
drm_device *dev,
        return 0;
 }
 
-static inline void
-drm_of_component_match_add(struct device *master,
-                          struct component_match **matchptr,
-                          int (*compare)(struct device *, void *),
-                          struct device_node *node)
-{
-}
-
 static inline int
 drm_of_component_probe(struct device *dev,
                       int (*compare_of)(struct device *, void *),
-- 
2.35.1.1320.gc452695387.dirty

Reply via email to