]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/tegra: Use simple encoder
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 5 Mar 2020 15:59:43 +0000 (16:59 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 2 Apr 2020 12:16:45 +0000 (14:16 +0200)
The tegra driver uses empty implementations for its encoders. Replace
the code with the generic simple encoder.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20200305155950.2705-16-tzimmermann@suse.de
drivers/gpu/drm/tegra/drm.h
drivers/gpu/drm/tegra/dsi.c
drivers/gpu/drm/tegra/hdmi.c
drivers/gpu/drm/tegra/output.c
drivers/gpu/drm/tegra/rgb.c
drivers/gpu/drm/tegra/sor.c

index ed99b67deb292c15e0deb5b59216bd00c7ceadfb..804869799305321fabdbc8eb57066fb579c8f54f 100644 (file)
@@ -152,8 +152,6 @@ enum drm_connector_status
 tegra_output_connector_detect(struct drm_connector *connector, bool force);
 void tegra_output_connector_destroy(struct drm_connector *connector);
 
-void tegra_output_encoder_destroy(struct drm_encoder *encoder);
-
 /* from dpaux.c */
 struct drm_dp_aux *drm_dp_aux_find_by_of_node(struct device_node *np);
 enum drm_connector_status drm_dp_aux_detect(struct drm_dp_aux *aux);
index 30626fcf61eb116d5c8f14e701d13a526f593eb7..38beab9ab4f8c0921f2c3840b38a4528bbdf27ce 100644 (file)
@@ -22,6 +22,7 @@
 #include <drm/drm_file.h>
 #include <drm/drm_mipi_dsi.h>
 #include <drm/drm_panel.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "dc.h"
 #include "drm.h"
@@ -815,10 +816,6 @@ static const struct drm_connector_helper_funcs tegra_dsi_connector_helper_funcs
        .mode_valid = tegra_dsi_connector_mode_valid,
 };
 
-static const struct drm_encoder_funcs tegra_dsi_encoder_funcs = {
-       .destroy = tegra_output_encoder_destroy,
-};
-
 static void tegra_dsi_unprepare(struct tegra_dsi *dsi)
 {
        int err;
@@ -1049,9 +1046,8 @@ static int tegra_dsi_init(struct host1x_client *client)
                                         &tegra_dsi_connector_helper_funcs);
                dsi->output.connector.dpms = DRM_MODE_DPMS_OFF;
 
-               drm_encoder_init(drm, &dsi->output.encoder,
-                                &tegra_dsi_encoder_funcs,
-                                DRM_MODE_ENCODER_DSI, NULL);
+               drm_simple_encoder_init(drm, &dsi->output.encoder,
+                                       DRM_MODE_ENCODER_DSI);
                drm_encoder_helper_add(&dsi->output.encoder,
                                       &tegra_dsi_encoder_helper_funcs);
 
index 4ee993b1634d9ef6a62ca88b2bdf6121be9288a0..c4c8348df09030a95e70a85a8e740440390af233 100644 (file)
@@ -22,6 +22,7 @@
 #include <drm/drm_file.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_probe_helper.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "hda.h"
 #include "hdmi.h"
@@ -1127,10 +1128,6 @@ tegra_hdmi_connector_helper_funcs = {
        .mode_valid = tegra_hdmi_connector_mode_valid,
 };
 
-static const struct drm_encoder_funcs tegra_hdmi_encoder_funcs = {
-       .destroy = tegra_output_encoder_destroy,
-};
-
 static void tegra_hdmi_encoder_disable(struct drm_encoder *encoder)
 {
        struct tegra_output *output = encoder_to_output(encoder);
@@ -1436,8 +1433,8 @@ static int tegra_hdmi_init(struct host1x_client *client)
                                 &tegra_hdmi_connector_helper_funcs);
        hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF;
 
-       drm_encoder_init(drm, &hdmi->output.encoder, &tegra_hdmi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS, NULL);
+       drm_simple_encoder_init(drm, &hdmi->output.encoder,
+                               DRM_MODE_ENCODER_TMDS);
        drm_encoder_helper_add(&hdmi->output.encoder,
                               &tegra_hdmi_encoder_helper_funcs);
 
index a264259b97a26b85fb7fd1d203e9ab93a68bd2f5..e36e5e7c2f694dfe627b1c720d959509041735ce 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_panel.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "drm.h"
 #include "dc.h"
@@ -79,11 +80,6 @@ void tegra_output_connector_destroy(struct drm_connector *connector)
        drm_connector_cleanup(connector);
 }
 
-void tegra_output_encoder_destroy(struct drm_encoder *encoder)
-{
-       drm_encoder_cleanup(encoder);
-}
-
 static irqreturn_t hpd_irq(int irq, void *data)
 {
        struct tegra_output *output = data;
index 4be4dfd4a68a3e31bd085900eccd46541459b08b..0562a7eb793f31c6bb0e4dc9c0ae35efe1d2f5f3 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_panel.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "drm.h"
 #include "dc.h"
@@ -110,10 +111,6 @@ static const struct drm_connector_helper_funcs tegra_rgb_connector_helper_funcs
        .mode_valid = tegra_rgb_connector_mode_valid,
 };
 
-static const struct drm_encoder_funcs tegra_rgb_encoder_funcs = {
-       .destroy = tegra_output_encoder_destroy,
-};
-
 static void tegra_rgb_encoder_disable(struct drm_encoder *encoder)
 {
        struct tegra_output *output = encoder_to_output(encoder);
@@ -281,8 +278,7 @@ int tegra_dc_rgb_init(struct drm_device *drm, struct tegra_dc *dc)
                                 &tegra_rgb_connector_helper_funcs);
        output->connector.dpms = DRM_MODE_DPMS_OFF;
 
-       drm_encoder_init(drm, &output->encoder, &tegra_rgb_encoder_funcs,
-                        DRM_MODE_ENCODER_LVDS, NULL);
+       drm_simple_encoder_init(drm, &output->encoder, DRM_MODE_ENCODER_LVDS);
        drm_encoder_helper_add(&output->encoder,
                               &tegra_rgb_encoder_helper_funcs);
 
index 47c1d133069a01d316be5896422a07dbce6c41c4..8495ea921b3cd8c2d03489264552a0aa2b0103f9 100644 (file)
@@ -23,6 +23,7 @@
 #include <drm/drm_file.h>
 #include <drm/drm_panel.h>
 #include <drm/drm_scdc_helper.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "dc.h"
 #include "dp.h"
@@ -1796,10 +1797,6 @@ static const struct drm_connector_helper_funcs tegra_sor_connector_helper_funcs
        .mode_valid = tegra_sor_connector_mode_valid,
 };
 
-static const struct drm_encoder_funcs tegra_sor_encoder_funcs = {
-       .destroy = tegra_output_encoder_destroy,
-};
-
 static int
 tegra_sor_encoder_atomic_check(struct drm_encoder *encoder,
                               struct drm_crtc_state *crtc_state,
@@ -3093,8 +3090,7 @@ static int tegra_sor_init(struct host1x_client *client)
                                 &tegra_sor_connector_helper_funcs);
        sor->output.connector.dpms = DRM_MODE_DPMS_OFF;
 
-       drm_encoder_init(drm, &sor->output.encoder, &tegra_sor_encoder_funcs,
-                        encoder, NULL);
+       drm_simple_encoder_init(drm, &sor->output.encoder, encoder);
        drm_encoder_helper_add(&sor->output.encoder, helpers);
 
        drm_connector_attach_encoder(&sor->output.connector,