From: Park Junsung <[email protected]>

remove drm_simple_encoder_init which is noted as a unnecessary
intermediate layer in the TODO list
and inline it into drm_encoder_init.

to achieve this,
declare and define drm_encoder_funcs with the static keyword.

has been verified by module compilation with no errors on modified area.

Signed-off-by: Park Junsung <[email protected]>
---
 drivers/gpu/drm/qxl/qxl_display.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_display.c 
b/drivers/gpu/drm/qxl/qxl_display.c
index a026bd35ef48..52d9bb46ea95 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -44,6 +44,10 @@
 #include "qxl_drv.h"
 #include "qxl_object.h"
 
+static const struct drm_encoder_funcs drm_encoder_funcs_cleanup = {
+       .destroy = drm_encoder_cleanup,
+};
+
 static bool qxl_head_enabled(struct qxl_head *head)
 {
        return head->width && head->height;
@@ -1169,10 +1173,11 @@ static int qdev_output_init(struct drm_device *dev, int 
num_output)
        drm_connector_init(dev, &qxl_output->base,
                           &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL);
 
-       ret = drm_simple_encoder_init(dev, &qxl_output->enc,
-                                     DRM_MODE_ENCODER_VIRTUAL);
+       ret = drm_encoder_init(dev, &qxl_output->enc,
+                              &drm_encoder_funcs_cleanup,
+                              DRM_MODE_ENCODER_VIRTUAL, NULL);
        if (ret) {
-               drm_err(dev, "drm_simple_encoder_init() failed, error %d\n",
+               drm_err(dev, "drm_encoder_init() failed, error %d\n",
                        ret);
                goto err_drm_connector_cleanup;
        }
-- 
2.53.0

Reply via email to