The driver only registered as a component master when connected
to a tda998x device, but that driver is now not only a component
but also a drm_bridge. Since drm_bridges are also handled, it
serves no purpose to register as a component master for the
special case of tda998x (which is no longer special).

Signed-off-by: Peter Rosin <p...@axentia.se>
---
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c     | 11 ------
 drivers/gpu/drm/tilcdc/tilcdc_drv.c      | 67 +++-----------------------------
 drivers/gpu/drm/tilcdc/tilcdc_drv.h      |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_external.c | 51 ------------------------
 drivers/gpu/drm/tilcdc/tilcdc_external.h |  4 +-
 5 files changed, 6 insertions(+), 128 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c 
b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index 8bf6bb93dc79..b410939a3458 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -1030,17 +1030,6 @@ int tilcdc_crtc_create(struct drm_device *dev)
                goto fail;
 
        drm_crtc_helper_add(crtc, &tilcdc_crtc_helper_funcs);
-
-       if (priv->is_componentized) {
-               crtc->port = of_graph_get_port_by_id(dev->dev->of_node, 0);
-               if (!crtc->port) { /* This should never happen */
-                       dev_err(dev->dev, "Port node not found in %pOF\n",
-                               dev->dev->of_node);
-                       ret = -EINVAL;
-                       goto fail;
-               }
-       }
-
        priv->crtc = crtc;
        return 0;
 
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 1afde61f1247..d9d2e86c9430 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -17,7 +17,6 @@
 
 /* LCDC DRM driver, based on da8xx-fb */
 
-#include <linux/component.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/suspend.h>
 #include <drm/drm_atomic.h>
@@ -246,9 +245,6 @@ static int tilcdc_init(struct drm_driver *ddrv, struct 
device *dev)
        platform_set_drvdata(pdev, ddev);
        drm_mode_config_init(ddev);
 
-       priv->is_componentized =
-               tilcdc_get_external_components(dev, NULL) > 0;
-
        priv->wq = alloc_ordered_workqueue("tilcdc", 0);
        if (!priv->wq) {
                ret = -ENOMEM;
@@ -363,19 +359,9 @@ static int tilcdc_init(struct drm_driver *ddrv, struct 
device *dev)
        }
        modeset_init(ddev);
 
-       if (priv->is_componentized) {
-               ret = component_bind_all(dev, ddev);
-               if (ret < 0)
-                       goto init_failed;
-
-               ret = tilcdc_add_component_encoder(ddev);
-               if (ret < 0)
-                       goto init_failed;
-       } else {
-               ret = tilcdc_attach_external_device(ddev);
-               if (ret)
-                       goto init_failed;
-       }
+       ret = tilcdc_attach_external_device(ddev);
+       if (ret)
+               goto init_failed;
 
        if (!priv->external_connector &&
            ((priv->num_encoders == 0) || (priv->num_connectors == 0))) {
@@ -586,63 +572,20 @@ static const struct dev_pm_ops tilcdc_pm_ops = {
        SET_SYSTEM_SLEEP_PM_OPS(tilcdc_pm_suspend, tilcdc_pm_resume)
 };
 
-/*
- * Platform driver:
- */
-static int tilcdc_bind(struct device *dev)
-{
-       return tilcdc_init(&tilcdc_driver, dev);
-}
-
-static void tilcdc_unbind(struct device *dev)
-{
-       struct drm_device *ddev = dev_get_drvdata(dev);
-
-       /* Check if a subcomponent has already triggered the unloading. */
-       if (!ddev->dev_private)
-               return;
-
-       tilcdc_fini(dev_get_drvdata(dev));
-}
-
-static const struct component_master_ops tilcdc_comp_ops = {
-       .bind = tilcdc_bind,
-       .unbind = tilcdc_unbind,
-};
-
 static int tilcdc_pdev_probe(struct platform_device *pdev)
 {
-       struct component_match *match = NULL;
-       int ret;
-
        /* bail out early if no DT data: */
        if (!pdev->dev.of_node) {
                dev_err(&pdev->dev, "device-tree data is missing\n");
                return -ENXIO;
        }
 
-       ret = tilcdc_get_external_components(&pdev->dev, &match);
-       if (ret < 0)
-               return ret;
-       else if (ret == 0)
-               return tilcdc_init(&tilcdc_driver, &pdev->dev);
-       else
-               return component_master_add_with_match(&pdev->dev,
-                                                      &tilcdc_comp_ops,
-                                                      match);
+       return tilcdc_init(&tilcdc_driver, &pdev->dev);
 }
 
 static int tilcdc_pdev_remove(struct platform_device *pdev)
 {
-       int ret;
-
-       ret = tilcdc_get_external_components(&pdev->dev, NULL);
-       if (ret < 0)
-               return ret;
-       else if (ret == 0)
-               tilcdc_fini(platform_get_drvdata(pdev));
-       else
-               component_master_del(&pdev->dev, &tilcdc_comp_ops);
+       tilcdc_fini(platform_get_drvdata(pdev));
 
        return 0;
 }
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.h 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
index ead512216669..c47a2b6e2a3a 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.h
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.h
@@ -92,7 +92,6 @@ struct tilcdc_drm_private {
        const struct drm_connector_helper_funcs *connector_funcs;
 
        bool is_registered;
-       bool is_componentized;
 };
 
 /* Sub-module for display.  Since we don't know at compile time what panels
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.c 
b/drivers/gpu/drm/tilcdc/tilcdc_external.c
index 711c7b3289d3..1471f5f8cb5c 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_external.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_external.c
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/component.h>
 #include <linux/of_graph.h>
 #include <drm/drm_of.h>
 
@@ -116,33 +115,6 @@ struct drm_connector *tilcdc_encoder_find_connector(struct 
drm_device *ddev,
        return NULL;
 }
 
-int tilcdc_add_component_encoder(struct drm_device *ddev)
-{
-       struct tilcdc_drm_private *priv = ddev->dev_private;
-       struct drm_connector *connector;
-       struct drm_encoder *encoder;
-
-       list_for_each_entry(encoder, &ddev->mode_config.encoder_list, head)
-               if (encoder->possible_crtcs & (1 << priv->crtc->index))
-                       break;
-
-       if (!encoder) {
-               dev_err(ddev->dev, "%s: No suitable encoder found\n", __func__);
-               return -ENODEV;
-       }
-
-       connector = tilcdc_encoder_find_connector(ddev, encoder);
-
-       if (!connector)
-               return -ENODEV;
-
-       /* Only tda998x is supported at the moment. */
-       tilcdc_crtc_set_simulate_vesa_sync(priv->crtc, true);
-       tilcdc_crtc_set_panel_info(priv->crtc, &panel_info_tda998x);
-
-       return tilcdc_add_external_connector(ddev, connector);
-}
-
 void tilcdc_remove_external_device(struct drm_device *dev)
 {
        struct tilcdc_drm_private *priv = dev->dev_private;
@@ -221,26 +193,3 @@ 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)
-{
-       struct device_node *node;
-
-       node = of_graph_get_remote_node(dev->of_node, 0, 0);
-
-       if (!of_device_is_compatible(node, "nxp,tda998x")) {
-               of_node_put(node);
-               return 0;
-       }
-
-       if (match)
-               drm_of_component_match_add(dev, match, dev_match_of, node);
-       of_node_put(node);
-       return 1;
-}
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.h 
b/drivers/gpu/drm/tilcdc/tilcdc_external.h
index 763d18f006c7..1df237e227c9 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_external.h
+++ b/drivers/gpu/drm/tilcdc/tilcdc_external.h
@@ -18,9 +18,7 @@
 #ifndef __TILCDC_EXTERNAL_H__
 #define __TILCDC_EXTERNAL_H__
 
-int tilcdc_add_component_encoder(struct drm_device *dev);
 void tilcdc_remove_external_device(struct drm_device *dev);
-int tilcdc_get_external_components(struct device *dev,
-                                  struct component_match **match);
 int tilcdc_attach_external_device(struct drm_device *ddev);
+
 #endif /* __TILCDC_SLAVE_H__ */
-- 
2.11.0

Reply via email to