drm/omap: remove legacy DSS device operations
authorSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 15 Dec 2020 10:46:14 +0000 (12:46 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 15 Dec 2020 14:08:25 +0000 (16:08 +0200)
All DSS devices have been converted to bridge API, so
the device operations are always NULL. This removes
the device ops function pointers and all code using it.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201215104657.802264-42-tomi.valkeinen@ti.com
drivers/gpu/drm/omapdrm/dss/base.c
drivers/gpu/drm/omapdrm/dss/dss.c
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/omapdrm/omap_connector.c
drivers/gpu/drm/omapdrm/omap_encoder.c

index 68c5d05..fb8b6a6 100644 (file)
@@ -161,8 +161,6 @@ int omapdss_device_connect(struct dss_device *dss,
                           struct omap_dss_device *src,
                           struct omap_dss_device *dst)
 {
-       int ret;
-
        dev_dbg(&dss->pdev->dev, "connect(%s, %s)\n",
                src ? dev_name(src->dev) : "NULL",
                dst ? dev_name(dst->dev) : "NULL");
@@ -181,14 +179,6 @@ int omapdss_device_connect(struct dss_device *dss,
 
        dst->dss = dss;
 
-       if (dst->ops && dst->ops->connect) {
-               ret = dst->ops->connect(src, dst);
-               if (ret < 0) {
-                       dst->dss = NULL;
-                       return ret;
-               }
-       }
-
        return 0;
 }
 EXPORT_SYMBOL_GPL(omapdss_device_connect);
@@ -212,66 +202,10 @@ void omapdss_device_disconnect(struct omap_dss_device *src,
                return;
        }
 
-       WARN_ON(dst->state != OMAP_DSS_DISPLAY_DISABLED);
-
-       if (dst->ops && dst->ops->disconnect)
-               dst->ops->disconnect(src, dst);
        dst->dss = NULL;
 }
 EXPORT_SYMBOL_GPL(omapdss_device_disconnect);
 
-void omapdss_device_pre_enable(struct omap_dss_device *dssdev)
-{
-       if (!dssdev)
-               return;
-
-       omapdss_device_pre_enable(dssdev->next);
-
-       if (dssdev->ops && dssdev->ops->pre_enable)
-               dssdev->ops->pre_enable(dssdev);
-}
-EXPORT_SYMBOL_GPL(omapdss_device_pre_enable);
-
-void omapdss_device_enable(struct omap_dss_device *dssdev)
-{
-       if (!dssdev)
-               return;
-
-       if (dssdev->ops && dssdev->ops->enable)
-               dssdev->ops->enable(dssdev);
-
-       omapdss_device_enable(dssdev->next);
-
-       dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-}
-EXPORT_SYMBOL_GPL(omapdss_device_enable);
-
-void omapdss_device_disable(struct omap_dss_device *dssdev)
-{
-       if (!dssdev)
-               return;
-
-       omapdss_device_disable(dssdev->next);
-
-       if (dssdev->ops && dssdev->ops->disable)
-               dssdev->ops->disable(dssdev);
-}
-EXPORT_SYMBOL_GPL(omapdss_device_disable);
-
-void omapdss_device_post_disable(struct omap_dss_device *dssdev)
-{
-       if (!dssdev)
-               return;
-
-       if (dssdev->ops && dssdev->ops->post_disable)
-               dssdev->ops->post_disable(dssdev);
-
-       omapdss_device_post_disable(dssdev->next);
-
-       dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-EXPORT_SYMBOL_GPL(omapdss_device_post_disable);
-
 /* -----------------------------------------------------------------------------
  * Components Handling
  */
index 0556711..6dd40d7 100644 (file)
@@ -1568,15 +1568,7 @@ static int dss_remove(struct platform_device *pdev)
 
 static void dss_shutdown(struct platform_device *pdev)
 {
-       struct omap_dss_device *dssdev = NULL;
-
        DSSDBG("shutdown\n");
-
-       for_each_dss_output(dssdev) {
-               if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE &&
-                   dssdev->ops && dssdev->ops->disable)
-                       dssdev->ops->disable(dssdev);
-       }
 }
 
 static int dss_runtime_suspend(struct device *dev)
index 7e50a34..208697f 100644 (file)
@@ -123,11 +123,6 @@ enum omap_dss_dsi_mode {
        OMAP_DSS_DSI_VIDEO_MODE,
 };
 
-enum omap_dss_display_state {
-       OMAP_DSS_DISPLAY_DISABLED = 0,
-       OMAP_DSS_DISPLAY_ACTIVE,
-};
-
 enum omap_dss_rotation_type {
        OMAP_DSS_ROT_NONE       = 0,
        OMAP_DSS_ROT_TILER      = 1 << 0,
@@ -284,24 +279,6 @@ struct omapdss_dsi_ops {
 };
 
 struct omap_dss_device_ops {
-       int (*connect)(struct omap_dss_device *dssdev,
-                       struct omap_dss_device *dst);
-       void (*disconnect)(struct omap_dss_device *dssdev,
-                       struct omap_dss_device *dst);
-
-       void (*pre_enable)(struct omap_dss_device *dssdev);
-       void (*enable)(struct omap_dss_device *dssdev);
-       void (*disable)(struct omap_dss_device *dssdev);
-       void (*post_disable)(struct omap_dss_device *dssdev);
-
-       int (*check_timings)(struct omap_dss_device *dssdev,
-                            struct drm_display_mode *mode);
-       void (*set_timings)(struct omap_dss_device *dssdev,
-                           const struct drm_display_mode *mode);
-
-       int (*get_modes)(struct omap_dss_device *dssdev,
-                        struct drm_connector *connector);
-
        const struct omapdss_dsi_ops dsi;
 };
 
@@ -345,8 +322,6 @@ struct omap_dss_device {
        unsigned long ops_flags;
        u32 bus_flags;
 
-       enum omap_dss_display_state state;
-
        /* OMAP DSS output specific fields */
 
        /* DISPC channel for this output */
@@ -377,10 +352,6 @@ int omapdss_device_connect(struct dss_device *dss,
                           struct omap_dss_device *dst);
 void omapdss_device_disconnect(struct omap_dss_device *src,
                               struct omap_dss_device *dst);
-void omapdss_device_pre_enable(struct omap_dss_device *dssdev);
-void omapdss_device_enable(struct omap_dss_device *dssdev);
-void omapdss_device_disable(struct omap_dss_device *dssdev);
-void omapdss_device_post_disable(struct omap_dss_device *dssdev);
 
 int omap_dss_get_num_overlay_managers(void);
 
@@ -400,11 +371,6 @@ int omap_dispc_unregister_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
 int omapdss_compat_init(void);
 void omapdss_compat_uninit(void);
 
-static inline bool omapdss_device_is_enabled(struct omap_dss_device *dssdev)
-{
-       return dssdev->state == OMAP_DSS_DISPLAY_ACTIVE;
-}
-
 enum dss_writeback_channel {
        DSS_WB_LCD1_MGR =       0,
        DSS_WB_LCD2_MGR =       1,
index 47719b9..9d14a31 100644 (file)
@@ -43,24 +43,8 @@ static void omap_connector_destroy(struct drm_connector *connector)
 
 static int omap_connector_get_modes(struct drm_connector *connector)
 {
-       struct omap_connector *omap_connector = to_omap_connector(connector);
-       struct omap_dss_device *dssdev = NULL;
-       struct omap_dss_device *d;
-
        DBG("%s", connector->name);
 
-       /*
-        * If the display pipeline reports modes (e.g. with a fixed resolution
-        * panel or an analog TV output), query it.
-        */
-       for (d = omap_connector->output; d; d = d->next) {
-               if (d->ops_flags & OMAP_DSS_DEVICE_OP_MODES)
-                       dssdev = d;
-       }
-
-       if (dssdev)
-               return dssdev->ops->get_modes(dssdev, connector);
-
        /* We can't retrieve modes. The KMS core will add the default modes. */
        return 0;
 }
@@ -69,19 +53,6 @@ enum drm_mode_status omap_connector_mode_fixup(struct omap_dss_device *dssdev,
                                        const struct drm_display_mode *mode,
                                        struct drm_display_mode *adjusted_mode)
 {
-       int ret;
-
-       drm_mode_copy(adjusted_mode, mode);
-
-       for (; dssdev; dssdev = dssdev->next) {
-               if (!dssdev->ops || !dssdev->ops->check_timings)
-                       continue;
-
-               ret = dssdev->ops->check_timings(dssdev, adjusted_mode);
-               if (ret)
-                       return MODE_BAD;
-       }
-
        return MODE_OK;
 }
 
index 8ec4206..e378c87 100644 (file)
@@ -115,60 +115,6 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder,
 
        /* Set timings for all devices in the display pipeline. */
        dss_mgr_set_timings(output, &vm);
-
-       for (dssdev = output; dssdev; dssdev = dssdev->next) {
-               if (dssdev->ops && dssdev->ops->set_timings)
-                       dssdev->ops->set_timings(dssdev, adjusted_mode);
-       }
-}
-
-static void omap_encoder_disable(struct drm_encoder *encoder)
-{
-       struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
-       struct omap_dss_device *dssdev = omap_encoder->output;
-       struct drm_device *dev = encoder->dev;
-
-       dev_dbg(dev->dev, "disable(%s)\n", dssdev->name);
-
-       /*
-        * Disable the chain of external devices, starting at the one at the
-        * internal encoder's output.
-        */
-       omapdss_device_disable(dssdev->next);
-
-       /* Disable the internal encoder. This will disable the DSS output. */
-       if (dssdev->ops && dssdev->ops->disable)
-               dssdev->ops->disable(dssdev);
-       dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-
-       /*
-        * Perform the post-disable operations on the chain of external devices
-        * to complete the display pipeline disable.
-        */
-       omapdss_device_post_disable(dssdev->next);
-}
-
-static void omap_encoder_enable(struct drm_encoder *encoder)
-{
-       struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
-       struct omap_dss_device *dssdev = omap_encoder->output;
-       struct drm_device *dev = encoder->dev;
-
-       dev_dbg(dev->dev, "enable(%s)\n", dssdev->name);
-
-       /* Prepare the chain of external devices for pipeline enable. */
-       omapdss_device_pre_enable(dssdev->next);
-
-       /* Enable the internal encoder. This will enable the DSS output. */
-       if (dssdev->ops && dssdev->ops->enable)
-               dssdev->ops->enable(dssdev);
-       dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-       /*
-        * Enable the chain of external devices, starting at the one at the
-        * internal encoder's output.
-        */
-       omapdss_device_enable(dssdev->next);
 }
 
 static int omap_encoder_atomic_check(struct drm_encoder *encoder,
@@ -191,8 +137,6 @@ static int omap_encoder_atomic_check(struct drm_encoder *encoder,
 
 static const struct drm_encoder_helper_funcs omap_encoder_helper_funcs = {
        .mode_set = omap_encoder_mode_set,
-       .disable = omap_encoder_disable,
-       .enable = omap_encoder_enable,
        .atomic_check = omap_encoder_atomic_check,
 };