drm/omap: Remove supported output check in CRTC connect handler
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 6 Mar 2018 22:22:10 +0000 (00:22 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 3 Sep 2018 13:13:28 +0000 (16:13 +0300)
The CRTC connect handler checks whether the DSS output supports the
DISPC channel assigned to it. As the channel is assigned to the output
by the output driver a failure there could only result from a driver
bug. All the output drivers have been verified and they are always
assigned a DISPC channel that is supported on the SoC they run on. The
check can thus be removed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/dss/dispc.c
drivers/gpu/drm/omapdrm/dss/dss.c
drivers/gpu/drm/omapdrm/dss/dss.h
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/omapdrm/omap_crtc.c

index 84f274c4a4cbf2d19841cc296913dbbeb0a0e76b..da95dbfdf790802364c7b0fd8a33fc3d119a8bdc 100644 (file)
@@ -2904,13 +2904,6 @@ static int dispc_ovl_enable(struct dispc_device *dispc,
        return 0;
 }
 
-static enum omap_dss_output_id
-dispc_mgr_get_supported_outputs(struct dispc_device *dispc,
-                               enum omap_channel channel)
-{
-       return dss_get_supported_outputs(dispc->dss, channel);
-}
-
 static void dispc_lcd_enable_signal_polarity(struct dispc_device *dispc,
                                             bool act_high)
 {
@@ -4742,7 +4735,6 @@ static const struct dispc_ops dispc_ops = {
        .mgr_set_lcd_config = dispc_mgr_set_lcd_config,
        .mgr_set_timings = dispc_mgr_set_timings,
        .mgr_setup = dispc_mgr_setup,
-       .mgr_get_supported_outputs = dispc_mgr_get_supported_outputs,
        .mgr_gamma_size = dispc_mgr_gamma_size,
        .mgr_set_gamma = dispc_mgr_set_gamma,
 
index 7245dd3423e6c3a9db0cc6613ea53cd683ea1352..b473aff466d7bce316e2305396f08062f6a6710e 100644 (file)
@@ -678,12 +678,6 @@ unsigned long dss_get_max_fck_rate(struct dss_device *dss)
        return dss->feat->fck_freq_max;
 }
 
-enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
-                                                 enum omap_channel channel)
-{
-       return dss->feat->outputs[channel];
-}
-
 static int dss_setup_default_clock(struct dss_device *dss)
 {
        unsigned long max_dss_fck, prate;
index 0305eaf2c30c4a32aebe2ec3c1285227d3ce0c37..ee06051933c5b23634b6168ce90855cc61e4fbd1 100644 (file)
@@ -317,8 +317,6 @@ void dss_runtime_put(struct dss_device *dss);
 
 unsigned long dss_get_dispc_clk_rate(struct dss_device *dss);
 unsigned long dss_get_max_fck_rate(struct dss_device *dss);
-enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
-                                                 enum omap_channel channel);
 int dss_dpi_select_source(struct dss_device *dss, int port,
                          enum omap_channel channel);
 void dss_select_hdmi_venc_clk_source(struct dss_device *dss,
index a732a4a0dc363cfd45655f66ec5ef9910836ebb1..8ef0ac3d1d441e9914a7cbca6b32d1aa98d9c8e7 100644 (file)
@@ -640,8 +640,6 @@ struct dispc_ops {
                                const struct videomode *vm);
        void (*mgr_setup)(struct dispc_device *dispc, enum omap_channel channel,
                          const struct omap_overlay_manager_info *info);
-       enum omap_dss_output_id (*mgr_get_supported_outputs)(
-                       struct dispc_device *dispc, enum omap_channel channel);
        u32 (*mgr_gamma_size)(struct dispc_device *dispc,
                              enum omap_channel channel);
        void (*mgr_set_gamma)(struct dispc_device *dispc,
index 5a56c8e02179587de5e477523f3e8becaf6ed54e..90917d040ddb914ae4af046f1625201e4ee457d5 100644 (file)
@@ -114,12 +114,6 @@ static int omap_crtc_dss_connect(struct omap_drm_private *priv,
                enum omap_channel channel,
                struct omap_dss_device *dst)
 {
-       const struct dispc_ops *dispc_ops = priv->dispc_ops;
-       struct dispc_device *dispc = priv->dispc;
-
-       if (!(dispc_ops->mgr_get_supported_outputs(dispc, channel) & dst->id))
-               return -EINVAL;
-
        dst->dispc_channel_connected = true;
 
        return 0;